• Software Testing Dictionary
  • Home

Software Testing - V-Model



Software development is driven by the principles of Software Development Life Cycle (SDLC) where every stage is conducted in a sequence in a V-shaped manner. Another name given to V-model is verification and validation. It also says that each phase in the SDLC can be concluded only after successful completion of all the testing activities of that particular phase.

What is a V-Model?

A V-Model is used to give a methodical and visible representation of the SDLC. Here, the test execution happens gradually. It involves a testing phase for every development phase in the software. For example, if a specific feature is developed, post the testing of that feature has been completed, the next stage begins. Thus it ensures that the development and testing go hand in hand before proceeding to the subsequent stages.

What are the importance of the V-Model?

The importance of the V-Model are listed below −

  • It helps in early detection of errors. By taking up the verification and validation phases during development, early testing is adopted. The defects detected at the initial stages of SDLC are less costly to fix than those detected at the later stages.
  • It enables development and testing phases to be done parallelly at every stage of SDLC. Thus, it helps to have a methodical, and balanced approach towards the entire software engineering process.
  • It prevents taking up the big bang testing approach where the testing is conducted at the end of the SDLC.
  • Since the development and testing phases go at the same time, it creates an environment of collaboration and cooperation among the various teams which ultimately help everyone to have a better understanding of the requirements, designs, development etc.
  • By adopting stringent verification and validation activities from the very initial stages of the SDLC, the software quality is enhanced to a large extent.

Different Phases of the V-Model

The testing phase in SDLC is governed by verification and validation of the software. The process of verification is conducted to check if the complete software or the system, or a part of it has been developed as per the development requirements, standards, and specifications.

The process of validation is conducted to check if the complete software or the system, or a part of it has been developed as per the user requirements. It primarily confirms if the software is able to solve the customer’s needs.

Verification Phases in V-Model

The verification phases in V-Model are listed below −

User Requirements Analysis

In this phase, the software requirements and how it shall help to solve the user’s problems are comprehended from the customer’s perspective. It involves elaborate discussions with clients to understand their specific requirements and expectations from the software. Both the functional and non-functional requirements are covered. The user acceptance test cases are created on the basis of these user requirements. The customers, project managers, business analysts mostly participate in this phase.

System Requirements

In this phase, the user requirements are converted into the features of the software. Based on these, the hardware, configurations, and resources which would be required are finalized. The system test plan is also identified. The business analysts, and developers mostly participate in this phase.

High Level Design

In this phase, the software features are broken down into various units. A high level technical design document is created by listing down all the hardware, software, programming languages, database details etc. It is created by taking the system requirements as the input. The integration test cases are created on the basis of this high level design document. The architects, developers, database administrators etc mostly participate in building high level design.

Low Level Design

In this phase, the developers come up with the detailed architecture or design(also called the low level design document, or LLD) of the individual units and their communication with other units based on the high level design document. It includes information on how the data will be managed, stored, documented, exchanged etc by following the business rules. The unit test cases are created on the basis of the low level design document.

Coding

The developers start coding for the software and its individual units as per the low level design document.

Validation Phases in V-Model

The validation phases in V-Model are listed below −

  • Unit Testing − In this phase, the unit test plans are developed and used to detect bugs in the code at the unit level.
  • Integration Testing − In this phase, individual units are integrated and then the communication among them is tested.
  • System Testing − In this phase, the complete software is tested to check if it is working as per the requirements. Both the functional and non-functional requirements are verified.
  • User Acceptance Testing − In this phase, the testing is performed in an environment which is similar to the production. It is performed to verify if the software satisfies all the customer needs and to check how it handles real life scenarios.

The below diagram displays the various phases of V-Model −

Software Testing Test Cases

When to use the V-Model?

The V-Model is used in the scenarios listed below −

  • It is used in small and not so large projects where requirements are well defined and clear.
  • It is used in projects where the acceptance criteria for the software are correctly formulated.
  • It is used in projects where there are a lot of resources available having the required technical expertise.

Advantages of the V-Model

The advantages of the V-Model are listed below −

  • It is a systematic and methodical model where each stage is handled at a time.
  • It is only adopted for small and not so large projects where the requirements are unambiguous.
  • It adopts verification and validation at every stage which increases the quality of the software.
  • Each phase has particular deliverables and reviews, so the project management can be done easily with accurate tracking.
  • Since testing is adopted from the initial stages of SDLC, bug detection and fixes are easy and cost effective.
  • It is uncomplicated.

Disadvantages of the V-Model

The disadvantages of the V-Model are listed below −

  • In an agile framework, the requirements are dynamic however, the V-Model does not have a flexible approach and can only be taken up where the requirements are clearly defined. Hence it may not be taken up in any projects where there is a slight modification of requirements.
  • It cannot be adopted for large and complex projects where there is a risk of any requirement changes.
  • It takes time as a lot of effort is spent on testing and documentation.
  • It does not have scope for iteration of any stages.
  • It requires a lot of documentation.

What are the Principles of the V-Model?

The V-Model is based on verification and validation. The principles of the V-Model are listed below −

  • Large to Small − As per this principle, the testing should be performed in a continuous manner. It should begin right from the requirement analysis phase.
  • Process and Data Integrity − As per this principle, the testing should be performed such that process and data should work together to achieve a proper project completion.
  • Scalability − As per this principle, the V-Model can be adopted in any IT project irrespective of its volume, complexity, and time taken.
  • Cross Reference − As per this principle, there should be a direct mapping between the requirements and testing tasks taken up.
  • Clear Documentation − As per this principle, there should be proper documentation done by developers, testers, and support teams.

Conclusion

This concludes our comprehensive take on the tutorial on Software Testing V Model. We’ve started with describing what is a V-Model, what are the importances of the V-Model, what are the different phases of the V-Model, when to use the V-Model, advantages and disadvantages of the V-Model, and what are the principles of the V-Model.

This equips you with in-depth knowledge of Software Testing V Model. It is wise to keep practicing what you’ve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.

Advertisements