I just need to know the answer to "What are the Types of Validation Testing?"
This question is not so easy to answer, since there are several sources and they distinguish between validation and verification and types and levels. So in an interview question, it's important to listen closely to find out what exactly is asked. Terminology and context is important.
Verification vs. validation
A main point is to distinguish between validation and verification.
According to ISTQB: what is verification:
- Verification is the check of the product against the specification ("Am I building the product right?")
- Validation is the check of the specification against the user's needs ("Am I building the right product?")
Then, there is CMMI - Verification (emphasis mine)
Verification in CMMi is a Software Quality Control (SQC) process that addresses the question: Are we building the product correctly?
This process looks at specifications, standards and guidelines to ensure that they have been correctly applied.
and CMMI - Validation (emphasis mine)
Validation in CMMi is a Software Quality Control (SQC) process that addresses the question: Are we building the correct product?
[...] the essence of the question is, when this software product is placed in its proper environment does it fulfill the goals and needs of the end user, as expressed in the requirements.
ISO 9000 also defines verification (emphasis mine)
Verification is a process. It uses objective evidence to confirm that specified requirements have been met. Whenever specified requirements have been met, a verified status is achieved.
There are many ways to verify that requirements have been met. For example you could inspect something, you could do tests, you could carry out alternative calculations, or you could examine documents before you issue them.
Validation is a process. It uses objective evidence to confirm that the requirements which define an intended use or application have been met. Whenever all requirements have been met, a validated status is established. Validation can be carried out under realistic use conditions or within a simulated use environment.
There are several ways to confirm that the requirements which define an intended use or application have been met. For example you could do tests, you could carry out alternative calculations, or you could examine documents before you issue them.
Note that in ISO 9000, the practical way of performing verification and validation overlaps ("for example you could do tests").
Four types of verification
According to Toolbox.com, the four levels are
- Component Testing, verifying a software element (unit)
- Integration Testing, verifying if the units work together
- System Testing, verifying that the system meets the requirements
- Acceptance Testing, verifying that the system satisfies accepance criteria
and the four types are
- Inspection (reviews)
- Analysis (mathematical verification)
- Testing (white-box testing)
- Demonstration (black box testing)
In comparison, ISTQB lists 8 testing levels:
- Unit testing
- Component testing
- Integration testing
- Component integration testing
- System integration testing
- System testing
- Alpha testing
- Beta testing
so it's not 100% clear if there are really only four types.
Coley Consulting thinks there are five types:
- Component testing
- Interface testing
- System testing
- Acceptance testing
- Release testing
Four types of validation
According to Tutorialspoint, validation testing in the V model has the four activities:
- Unit Testing, validating the program
- Integration Testing, validating the design
- System Testing, validating the system / architecture
- User Acceptance Testing, validating against requirements
Note how this overlaps the four levels of verification defined by Toolbox.com. It seems that the terminology is not used consistently.
An acceptable answer in an interview
In an interview, you could have answered as follows:
- explain what validation and verification are, since this this is the part with least ambiguousity
- reassure whether you understood the question correctly. Let confirm that the term is really "validation testing".
- explain that this term is only defined vaguely / differently by different sources
- explain which definition(s) you know
- ask which definition should be used in this interview question
- if you know that definition: answer the question; if you don't: state that you assume the definitions shouldn't be too different and give a definition you know