Lets begin the discussion with Verification since the verification usually comes before validation
What is Software Verification
Software Verification if the process of evaluating the software development process to ensure conformance to development standards and specifications
We would consider 7 points
- Software Verification has to do with verifying if you are following the right procedure in the development process. So the ques to ask is: ‘are we building the system the right way?’
- Examining the Software Development process to check the correctness and consistency of the development process.
- Verification has to do with ensuring that the models are in line with the requirements.
- Fault Checking is carried out as part of the verification process. During verification, a checklist of known faults is created and the design is examined against those fault to make sure it if fault-free.
- Verification does not apply to situations where the implementation process is automatic. An example would be when the code are generated from design model. As such verification would not be necessary.
What is Software Validation
Software validation is the process of examining the output of the design process ensure it conforms with requirements
Let’s now also examine 7 points
- Validation examines the system produced with questions such as ‘is the finished system the right one? In order words, is the system really what is expected?
- Validation is done at the end of the development process when an output have been produced. unlike verification which is carried out during the process.
- Checks if the system conforms to the user requires.
- Validation also includes examination of user’s requirement to discover possibility of faults
Verification and Validation Activities
The verification and validation activities carried out during software verification and testing includes the following:
- Requirements specification is verified by the System Engineer
- The Design Models are verified by the System Architect
- Source code verification as well as unit testing is carried out by the Developer and/Coder
- Test Engineers designs test processes and carries out unit testing.
- Integration testing and system automation is done by the Test Engineer
- Assessment of conformance to development standards is carried out by the Safety Engineer