Thursday, 21 December 2017

Difference Between Software Verification and Software Validation

The two words are normally used side by side. But there is a clear difference between the two which we need to clearly know. This is especially important if you are taking a course related to Informatics, Software Engineering, and Computer Science.
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:
  1. Requirements specification is verified by the System Engineer
  2. The Design Models are verified by the System Architect
  3. Source code verification as well as unit testing is carried out by the Developer and/Coder
  4. Test Engineers designs test processes and carries out unit testing.
  5. Integration testing and system automation is done by the Test Engineer
  6. Assessment of conformance to development standards is carried out by the Safety Engineer