How Verification and Validation are Different in Software Testing?
While it is the main job of testers to “Verify” that the requirement is implemented as per the need documented by the business analyst, what if the requirement itself is not aligned with the market expectation or customer need, In some projects after writing the requirements and even after finishing the whole product the customer refuses to accept it, as it doesn’t meet his own specifications and it’s a very common situation in the software industry, it’s like going to a restaurant and when you get your order and taste it you don’t find the expected taste even the presentation of your order is so great.
Verification is called “Static Testing “, it answers the question of “Are we building the product right?” , it involves different activities like business requirements, system requirements, design review, and code walkthrough, it makes sure that the system is well-engineered and error-free but it doesn’t guarantee that it’s useful for the user, Like any other human or department, Business analysts or product managers can make mistakes or can not be thorough in their research due to time/budget limitations or any other constraints.
This is where the highly skilled testers’ “Validation” approach comes in the value chain, validation is called “Dynamic Testing ” it answers the question of “Are we building the right product ?“, Validation checks whether the system addresses a real-world need.
As a smart tester, you shouldn’t be stopping at just verifying the requirement implementation but also validating whether the software application or system is in fact aligned with the typical user expectations, here you aren’t addressing that you’ve built the right system, instead, you are addressing, “Did we build the system right?” from the client perspective.
For example, if the requirement says there should be “submit” and ” cancel” buttons on the form then it is the primary job of the tester to verify that both buttons are present on the form, however beyond that tester can validate this requirement against the user expectation so that if submit button is the first button that users are expecting then tester should log it as a defect if the submit button is second in the line based on their validation .. this will improve the “quality” of the software product in the eye of the end-user.
Validating the requirements makes sure that
- The requirements are correct, complete, and consistent.
- The model can meet the requirements.
- The solutions can be built and satisfy the requirements.
- The requirements meet the stakeholder’s needs.
to wrap up, which is important to verify your software or to validate your software? Even though both terms are used interchangeably in some cases, The answer is both are important for your system health, you can not neglect to make sure that your system is well-engineered and error free, also you have to make sure that your customer is satisfied and has he needs to be implemented successfully.