As the meaning of the word verification means to verify something. In software testing, it doesn’t mean something different. In it, verification makes sure that the user/customer will get the desired product (software) with its desired specifications (functionality).
ü It is a part of the software development cycle and it is done for the beginning of the development process by software tester.
ü Software Verification is a manual process i.e. testers do it manually or we can say that design and code are checked (verified) by testers manually.
ü For software verification, reviews, inspection, meetings and walkthrough are conducted for the assessment of the plans, codes, specifications and requirements.
ü It provides the solution of the question: are we developing the product in a right manner?
Suppose you have a project of building a chair, then you will have a verification that it is strong or not, all the four legs are equal or not, if it is not so then the project is not developed in the right manner. Similar is the case with software project (product/application) to prevent it from failure due to any defect.
What does the Capability Maturity Model (CMMI) say about Verification in Software testing?
CMMI defines software verification as software evaluation process that finds whether a given development phase product can withstand the conditions imposed at the starting of that phase [IEEE-STD-610].
Benefits from Software Verification:
1. More Verification makes the software more accurate during development phase as it reduces the number of defects found.
2. More verification makes the software more stable.
3. Verification develops the product in a way that it withstands the customer requirements.
Approaches of Verification:
Software Verification follows basically two defined approaches:
1. Dynamic Verification - also known by the name of Tests/Experimentation. Bugs are found out using this.
2. Static verification- the other name is Analysis. It proves the correctness of the application.
It is dynamically done during software execution.
The tests are divided in the three categories namely,
1. When a single function or class is checked, it is called Test in small (or unit Test).
2. Test done on the group of classes is called Test in large.
3. Test done for checking software acceptance is called Acceptance Test.
In this code is checked for seeing whether software meets requirements or not.
In this measured data results and observed data results are compared with calculated expected values to see how much they withstand standard requirement.