Monday, April 25, 2011

Verification and Validation


Verification and Validation










Software verification and validation when combined together, then it is called as V & V.

Verification and Validation (V&V) is the process of checking that a software system meets specifications and that it fulfills its intended purpose

Static Testing: Verify the conformance of a software system and its specification without executing the code. It is the process confirming that something software meets its specification.

“Verification is the checking or testing of items, including software, for conformance and consistency by evaluating the results against pre-specified requirements”

Verification: Are we building the system right?

Dynamic Testing: Validation is the process confirming that, it meets the user's requirements. Validation is the process through user can check the specification through execution of code.

Validation looks at the system correctness – i.e. is the process of checking that what has been specified is what the user actually wanted.”

Validation: Are we building the right system?

Difference between Verification and Validation: Suppose, you are going to buy a pair of shoes having number 9 for you. You have chosen a pair and seen the tag with 9 written on it. This is verification, because your requirement was to buy a pair of shoes with 9 numbers.

But when you tried to wear it and found that shoe is not fitted into your feet. After inquiry, you have found that company has tagged it 9 number by mistake. Actually it was 7 number shoe. This process is called Validation.

Example of Verification: Creating Traceability Matrix
Example of Validation: Executing Test Cases


Validation
Verification

  • Am I building the right product

  • Am I building the product right

  • Determining if the system complies with the requirements and performs functions for which it is intended and meets the organization’s goals and user needs. It is traditional and is performed at the end of the project.

  • The review of interim work steps and interim deliverables during a project to ensure they are acceptable. To determine if the system is consistent, adheres to standards, uses reliable techniques and prudent practices, and performs the selected functions in the correct manner.

  • Am I accessing the right data (in terms of the data required to satisfy the requirement)

  • Am I accessing the data right (in the right place; in the right way).

  • High level activity

  • Low level activity

  • Performed after a work product is produced against established criteria ensuring that the product integrates correctly into the environment

  • Performed during development on key artifacts, like walkthroughs, reviews and inspections, mentor feedback, training, checklists and standards

  • Determination of correctness of the final software product by a development project with respect to the user needs and requirements

  • Demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development life cycle.

Few terms involved in Verification:

1. Inspection:

Inspection involves a team of about 3-6 people, led by a leader, which formally reviews the documents and work product during various phases of the product development life cycle. The work product and related documents are presented in front of the inspection team, the member of which carry different interpretations of the presentation. The bugs that are detected during the inspection are communicated to the next level in order to take care of them.


2. Walkthroughs:

Walkthrough can be considered same as inspection without formal preparation (of any presentation or documentations). During the walkthrough meeting, the presenter/author introduces the material to all the participants in order to make them familiar with it. Even when the walkthroughs can help in finding potential bugs, they are used for knowledge sharing or communication purpose.

3. Buddy Checks:
This is the simplest type of review activity used to find out bugs in a work product during the verification. In buddy check, one person goes through the documents prepared by another person in order to find out if that person has made mistake(s) i.e. to find out bugs which the author couldn’t find previously.

The activities involved in Verification process are: Requirement Specification verification, Functional design verification, internal/system design verification and code verification (these phases can also subdivide further). Each activity makes it sure that the product is developed right way and every requirement; every specification, design code etc. is verified!





Terms used in Validation process:

1. Code Validation/Testing:

Developers as well as testers do the code validation. Unit Code Validation or Unit Testing is a type of testing, which the developers conduct in order to find out any bug in the code unit/module developed by them. Code testing other than Unit Testing can be done by testers or developers.


2. Integration Validation/Testing:

Integration testing is carried out in order to find out if different (two or more) units/modules co-ordinate properly. This test helps in finding out if there is any defect in the interface between different modules.

3. Functional Validation/Testing:
This type of testing is carried out in order to find if the system meets the functional requirements. In this type of testing, the system is validated for its functional behavior. Functional testing does not deal with internal coding of the project, in stead, it checks if the system behaves as per the expectations.

4. User Acceptance Testing or System Validation:
In this type of testing, the developed product is handed over to the user/paid testers in order to test it in real time scenario. The product is validated to find out if it works according to the system specifications and satisfies all the user requirements. As the user/paid testers use the software, it may happen that bugs that are yet undiscovered, come up, which are communicated to the developers to be fixed. This helps in improvement of the final product.





No comments:

Post a Comment