Software Verification and Software Validation – What’s the Difference?

What is Software Validation?

Validation can be described as verifying that you are building what the customer wants. Software validation is the process of ensuring that your application meets functional and non-functional requirements before coding and during development. In general, validation is verifying that the customer wants a bike before you put together a car. In software, validation is verifying that the customer wants accounting software before building a data management tool. In short, validation is finding out what the customer wants before you start coding. Software validation takes place primarily during the system requirements analysis and design phase. Software validation should be done before you start writing code.

What is Software Verification?
Verification if verifying that the product is being assembled correctly, after you have determined what you are supposed to build. You are building a bike. The verification is checking that you have all of the parts of the correct sizes to build it, from the right length frame to the correctly sized seat. Software verification of an accounting tool would involve ensuring that the accounting register and check generation works per customer requirements before considering the coding complete. Software verification takes place during the implementation, integration and testing phases. Software verification should be completed before software release.

Here’s The Difference Between the Software Validation and Software Verification

Software validation is determining whether or not an interface with a website or another software application is necessary. Software verification is ensuring that the interface works appropriately after it is “built”. When software requirements creep or expand beyond their original scope, a new requirement for software interface is added. After the new software interface is built, it must be verified to ensure that information flows between the two applications without errors.

Common Causes of Confusion

Scope creep of a project, the addition of new requirements, essentially moves the software validation phase into the software verification phase. Adding new software requirements adds cost and time to the software development process.

How to Avoid the Confusion

1. Include all stakeholders in the requirements definition phase.
2. Have a strict definition of the requirements definition phase. Do not let new requirements creep in once coding begins.
3. Determine where the data must come from and go as part of the typical use of the tool. If the data interface is frequently used, include the ability to transfer the data between those applications or databases a requirement and include the testing of these data transfers in software validation.
4. Focus software validation efforts on core functions over optional enhancements if crunched for time. For example, ensuring that the new brake designs work properly is more important than checking out the new sound system. If the new sound system doesn’t work, it’s only an annoyance. If the brakes fail, your customers won’t let you take them for another ride.
5. Recognize that functional applications are a requirement, not an enhancement.