SDLC, Waterfall & V-Model

What is SDLC?

SDLC is a Software Development Life Cycle. It is the sequence of activities carried out by Developers to design and develop high-quality software.

Though SDLC uses the term ‘Development’, it does not involve just coding tasks done by developers but also incorporates the tasks contributed by testers and stakeholders.

In SDLC, test cases are created.

What is STLC?

STLC is Software Testing Life Cycle. It consists of a series of activities carried out by Testers methodologically to test your software product.

Though STLC uses the term “testing” it does not involve just testers, in some instances, they have to involve developers as well.

In STLC Test cases are executed.

What is the Waterfall Model?

Waterfall model is a sequential model divided into different phases of software development activity. Each stage is designed for performing the specific activity during the SDLC phase. Testing phase in waterfall model starts only after implementation of the system is done.

Testing is done within the SDLC.

What is V- Model?

V- model is an extension of the waterfall model. It is pronounced as the “vee” model. Unlike the waterfall model, In V-model, there is a corresponding testing phase for each software development phase. Testing in V-model is done in parallel to SDLC stage.

Testing is done as a subproject of SDLC.

Different phases of the Software Development Cycle Activities performed in each stage
Requirement Gathering stage
  • Gather as much information as possible about the details & specifications of the desired software from the client. This is nothing but the Requirements gathering stage.
Design Stage
  • Plan the programming language like Java, PHP, .Net; database like Oracle, MySQL, etc. Which would be suited for the project, also some high-level functions & architecture.
Build Stage
  • After the design stage, it is build stage, that is nothing but actually code the software
Test Stage
  • Next, you test the software to verify that it is built as per the specifications are given by the client.
Deployment stage
  • Deploy the application in the respective environment
Maintenance stage
  • Once your system is ready to use, you may require to change the code later on as per customer request

All these levels constitute the waterfall method of the software development lifecycle.

Problem with the Waterfall Model

As you may observe, that testing in the model starts only after implementation is done.

But if you are working in the large project, where the systems are complex, it’s easy to miss out the key details in the requirements phase itself. In such cases, an entirely wrong product will be delivered to the client and you might have to start afresh with the project OR if you manage to note the requirements correctly but make serious mistakes in design and architecture of your software you will have to redesign the entire software to correct the error.

Assessments of thousands of projects have shown that defects introduced during requirements & design make up close to half of the total number of defects.

Also, the costs of fixing a defect increase across the development lifecycle. The earlier in life cycle a defect is detected, the cheaper it is to fix it. As they say, “A stitch in time saves a nine.”

Solution: The V Model

To address this concern, the V model of testing was developed where for every phase, in the Development life cycle there is a corresponding Testing phase

sdlc

  • The left side of the model is Software Development Life Cycle – SDLC
  • The right side of the model is Software Test Life Cycle – STLC
  • The entire figure looks like a V, hence the name V – model

Apart from the V model, there are iterative development models, where development is carried in phases, with each phase adding a functionality to the software. Each phase comprises its independent set of development and testing activities.

Good examples of Development lifecycles following iterative method are Rapid Application Development, Agile Development

Conclusion

There are numerous development life cycle models. Development model selected for a project depends on the aims and goals of that project.

  • Testing is not a stand-alone activity, and it has to adapt the development model chosen for the project.
  • In any model, testing should be performed at all levels i.e. right from requirements until maintenance.