Learn V-Model in Software Testing

Tram Ho

Introducing the V-Model

In software testing, the V-Model (or V-Model ) is a highly disciplined SDLC (Software Development Life Cycle) model, in which a test phase runs in parallel with each phase of the develope. The V-model is an extension of the Waterfall in which testing is carried out in phases with serial development. It is also known as the Validation Model or the Verification Model .

  • Some Terms used in the article:
    1. SDLC (Software Development Life Cycle): also known as software development life cycle. It is a series of activities performed by Developers to design and develop into high quality software.
    2. Software Testing Life Cycle ( STLC ): also known as software testing life cycle. It includes a series of activities performed by Testers according to available methods to test whether a software product meets a set requirement or not.
    3. Waterfall Model : also known as waterfall model. It is a sequential model divided into different phases of software development activity. Each stage is designed to perform a specific activity. The test phase in the waterfall model begins only after the software has been developed.

The example helps to better understand the V-Model

Suppose, you are tasked with developing a custom client software. Regardless of the technical background or the technologies that will apply, try making a systematic prediction of the sequence of steps you will follow to accomplish this task.

The steps you come up with will typically include the following:

  • Decide on which platform to use, be it Java , PHP or .NET , with Oracle , MySQL … Anything, as long as it’s suitable for the project.
  • Check the software to verify that it has been built based on the spec provided by the customer
  • Write the source code for the software
  • Find all possible information about the design details and specifications for the software from the client.

We may need to rearrange a bit, for example, you need to find information first, then plan what technology you will work with, then code it, finally check the software. meet all the requirements yet.

And in fact, we will need more steps than this, the following table describes the steps required for the development phase of the Waterfall .

Collect requestGather as much information as possible about the design details and specifications of the software from customer wishes. This stage is simply collecting requests, nothing else to do.
DesignPlan programming languages ​​to be used such as Java, PHP, .net; databases like Oracle, MySQL, etc. Decide which one will suit the project, as well as some high-level architecture and functions.
BuildWrite source code for the software
TestedCheck the software to verify that it is built to the specifications provided by the customer.
DeploymentDeploy software in real environment
MaintenanceThis is the state when the software is ready for use, you may be asked to change (if any) by the customer.

The problem of the waterfall model – Waterfall

As you can see, the testing in this model only begins after the code has been deployed.

If you are working on a large project where complex systems are in place, it is easy to miss key details during the request phase. In such cases, a completely wrong product will be delivered to the client and you may have to restart the project OR if you manage to note the requirements correctly but make a fatal error in By designing and architecting your software, you will have to redesign the entire software to fix the error.

According to the evaluation of thousands of projects applying the waterfall model has shown that defects are introduced in the request & design process accounting for nearly half. And since this is a very early stage of the whole process, the worst consequence that happens is we need to start over all the steps if we don’t spot the problem early.

The cost of fixing a defect increases throughout the development lifecycle. And the bad luck for us is that it will increase exponentially. The earlier a defect is found in its life cycle, the easier it is to fix it.

Solution: V-Model

V-pattern was created as a solution to the problem of waterfall modeling. Instead of just testing when development ends as in the waterfall model, the V-model provides a parallel test for each step of the development process.

The V-model is essentially a combination of the SDLC software development life cycle on the left and the STLC software testing life cycle on the right.

  • Requirement Analysis will have a corresponding process called System Testing : In this step we will check the whole system overview.
  • High Level Design will have the corresponding process of Integration Testing : In this step we will check the interconnection and compatibility of software components.
  • Low Level Design will have a corresponding process called Unit Testing : In this step we will check at the function level of the software.
  • Coding does not need a corresponding testing process, in fact is not necessary because at this stage almost all technologies and technical platforms have been completely pre-tested by the manufacturers of each brand before being used. official application. So we don’t have to check again at this step, usually guaranteed by Dev.

In addition to the V-model, there are now iterative development models, in which development is done in phases, with each phase adding a function to the software. Each phase consists of a set of independent testing and development activities that are repeated at the next development stage when the current phase ends. Typical examples of the Iterative Development lifecycle are Rapid Application Development , Agile Software Development .


Currently, according to me, there are many development life cycle models. The development model chosen for a project depends on the project’s goals and directional goals. We need to pay attention as follows:

  • Testing is not a stand-alone activity and it must adapt to the development model chosen for the project.
  • In any model, testing should be performed at all levels i.e. from requirement to maintenance to ensure development can overcome problems as much as possible. right.

Thank you everyone for reading the article.


Share the news now

Source : Viblo