Verification and validation is the generic name given to checking processes which ensure that the software conforms to its specification and meets the needs of the customer.The system should be verified and validated at each stage of the software development process using documents produced in earlier stages. Verification and validation thus starts with requirements reviews and continues through design and code reviews to product testing.Verification and validation are sometimes confused, but they are different activities (SQA, n.d.).
The difference between the two can be summarised as follows:
Validation: Are we building the right product?
Verification: Are we building the product right?
Every testing execution should follow some sequence and V Model is the perfect way to perform the testing approaches. In V Model there are some steps or sequences specified which should be followed during performing test approach. Once one step completes we should move to the next step. Test execution sequences are followed in V shape. In software development life cycle, V Model testing should start at the beginning of the project when requirement analysis starts. In V Model project development and testing should go parallel. Verification phase should be carried out from Software Testing Life Cycle where validation phase should be carried out from STLC.
Software isn’t perfect. If it were, then probably just one or two projects may be enough for all the software in the world. Therefore, software tends to fail overtime. Maybe some system registers were modified. Maybe trouble with libraries. Maybe that software got so big it does not work anymore. There are many reasons.
Now: many people believe that maintaining software means to fix problems the software has. But, this is not always the case. Sometimes, maintenance is non-corrective. This means, it’s focused on preventing errors rather than fixing them.
There are four types of maintenance:
Corrective: fix problems that stop the program from working.
Adaptive: modify the program in order to make it runnable on another environment.
Perfective: modify the program in order to increase performance or maintainability.
Preventive: modify the program in order to prevent possible problems.
Validation and verification are two different concepts in software engineering, each one can be abbreviated to the questions: are we building the right system? and are we building the system right?
Validation is concerned with checking that the software actually satisfies the customer’s needs and its objective is to demostrate that the product fulfills its intended use when placed in its intended enviroment, whereas verification is the process which checks if the software is functioning correctly and its objective is to ensure that work products meet their specified requirements.
User Interface Design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to access, understand and use to facilitate those actions.
The reaction or the experience of the user when ising software doesn’t only depend on the functionality and the aesthetically design, what more influences the user to feel comfortable or not is the user interface.
Gestalt Design Principles
Similarity: occurs when objects look similar to one another.
Continuation: occurs when the eye is compelled to move through one object and continue to another object.
Closure: occurs when an object is incomplete or a space is not completely enclosed.
Proximity: occurs when elements are placed close together.
Figure and Ground: The eye differentiates an object from its surrounding area. a form, silhouette or shape is naturally perceived as figure, while the surrounding area is perceived as ground.
This includes modifications and updates done in order to correct or fix problems, which are either discovered by user or concluded by user error reports.
This includes modifications applied to keep the software product up-to date and tuned to the ever changing world of technology and business environment.
This includes updates done in order to keep the software usable over long period of time. It includes new features, new user requirements for refining the software and improve its reliability and performance.
It aims to attend problems, which are not significant at this moment but may cause serious issues in future.
Analytics aims to describe, predict, improving development, maintenance, and management of software systems. Gathering information, analyzing it, and visualizing it are the main steps of various methods of doing analytics.
Analytics represent a basis of software diagnosis which helps in generating conclusions, evaluations, and findings of a software system.
First off, verification & validation are two terms that are common used in software development. They are commonly mistaken as if they were equal. Let’s begin by defining each term.
Verification is an evaluation of the process of creating a final product. It is useful to determine if the project development goes in the right track. Intermediary work is analyzed: documentation, data bases, etc.
Review of requirements
Review of design documents, including HDL and LDD
It is the process of evaluating the final product to determine if it matches the user needs. Basically all types of testing post-development are considered validation.
Prepare test requirements documents and other test specifications to analyze results.
Evaluate if these results is fit for use and reflects the project requirements.
Test for complicated values, stress, and all possible functionalities.
Check if errors exist, if they do, if a graceful message explain them.
Check business requirements, and if it is fit for it.
User Interface, often abreviated (UI), Design ensures that there are elements easy to access for what users may want to do. Accesibility is what UI design is all about, it must be understandable, and easy to do. Basically, it brings together visual, and interaction design with information architecture. Let’s do it beautiful.
Tips for a great interface
Keep it simple, avoid unnecesary elements.
Use common elements in your UI, users will feel more comfortable, and will get things done faster.
Structure the page based on importance, and consider relationships between elements and space.
Use colors and textures strategically.
The use of typography is important to create hierarchies, and make it more understandable.
Although validation and verification might mean the same, they are two different concepts that are used in software engineering. Just to avoid confusion, everything can be narrowed to this:
Validation: Are we building the right system?
Verification: Are we building the system right?
It is true that both of them require approval, but it dependes on the type of approval you need. Validation checks that what is being done, is what we need. This has to do with complying with the requirements that are proposed by the project managers. Verification, in the other hand, is to check that what we are doing, is being done the correct way. It is all about complying the requirements, so everything converges on reading the requirements the good way.
I’m might contradict myself a bit, but verification and validation do have things in common. These are processes in order to assure software quality and guess what, it also has to do with software testing and evaluation. This is a diagram of what could comprehend each of the concepts, and also what they do have in common.
Credit to Easterbrook, from here I obtained most of this content.
Open source software refers to software that is widely available. But it doesn’t stop there. With O.S.S. programmers and developers can modify and share it. And this is the most wonderful benefit from O.S.S. When software is open, people can distribute as much as they want to, but always giving credit to the author. ALWAYS.
Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.
While this doesn’t mean you can copy it and sell it as if it was yours, you can learn from it. You can grab a piece of code and use it (again, giving credit) freely. According to the ACM Code of Ethics, it is not fair to obtain a profit out of someone else’s work. You wouldn’t like, or do you ?
Talking about profit, the fact that O.S.S. is widely available doesn’t mean that it is free. Don’t worry, it is a common misconception. Some developers charge for O.S.S. and you still get all benefits from O.S.S. You can see it as a way to credit the author.