Difference between V-model and W-model | Software Testing
How are V and W models different by definition?
Software development process is a strategy in which a product is made to go through different phases such as ideation, arranging, creation and testing before the end product is conveyed.
Big difference is, as a prerequisite for Waterfall model, testing can only happen once the development of the software product is finished without any adjustments in the middle. Meaning, W model is a very straight forward successive approach in which the progress flows in just one direction.
On the other hand, V Model, also called as Verification and Validation Model, is like waterfall model that takes a successive way of execution of procedures. In that sense, we can say V-model is the alternate of W-model as steps are followed as requirements, design, implementation, verification and finally maintenance.
V-model is said the traditional model in the process of software testing. Being introduced in the 1980s, V-model is a sequential process in which the next phase begins only after the completion of the present phase. The steps in this design do not move in a linear way, but the steps are bent upwards.
1) Verification phase includes
Business requirement review is where detailed communication including exact functions and requirements is held, as well as acceptance test design planning.
System design stage involves understanding and detailing out the entire hardware and communication setup for the product. System test design is best to be planned at this stage.
Architectural design stage is where high-level design is developed. Along with understanding the technical and financial feasibility of the product before it is actually developed. Integration test is best to be planned at this stage.
Module design stage focuses on designing a detailed plan for the internal modules of the system, also known as low-level design, it is important to ensure that the design is compatible with other surrounding modules in system architecture.
2) Coding phase includes
Here, actual coding of the system modules is taken up. On the basis of system and architectural requirements of the program, the best suitable programming language is selected upon. Then the code is reviewed and optimized to ensure the delivery of best performing as well as unit testing completed by the developers.
3) Validation phase includes
Unit testing is conducted at an early stage so that the bugs are eliminated at the early stages of product development, though not all bugs can be revealed.
Integration testing is done to check whether there is a valid and proper communication within the internal modules of the system.
System testing is the testing of the entire system which is to ensure if the internal modules are configured to communicate effectively with the external systems.
Acceptance testing is done to test a product in the client’s environment to check compatibility issues.
Advantages of V model:
-Simple and explicit process to follow
-Testing starts from requirement phase itself
-All the Functional Areas can be covered
-Defects can be found at an early stage
Comparable to shift-right approach in DevOps testing, that encourages the testers to analyze and wait until changes are deployed in production, to mostly find defects in unexpected real-life situation.
With the same definition of each phase – Requirement Review, System Design, Architecture, Low-level Design, using W model helps ensure that the testing of the product begins from the very first day of the product’s development.
Advantages of the W model:
-Testing can run in parallel with development process
-No division between constructive and destructive tasks
-Often Developer is responsible for removing defects
Disadvantages of the W model
-Complex to track the progress
-Testing has equal weight and workload as many activities in the development process
It embodies the shift-left testing approach 'test early and often' to perform testing earlier in the lifecycle thereby moving left on the project timeline.
While it is true that the V model is an effective way to test and reveal results for dynamic test cycles, there is no scope for risk management and mitigation for scheduling especially. In contrast, W models are more effective in catching defects early in the delivery pipeline and enable development team to get an extensive view of testing. However, important to remember that W model is often compared to agile testing where testing happens in parallel which requires significant amount of resource throughout the product cycle.
One must pick carefully, a model that works better with available pool of resource and complexity of each project in order to convey an ideal quality product.