This tutorial explains in detail the Software/System Development Life Cycle (SDLC) like the Waterfall cycle & Iterative cycle like RAID & Agile. And further, it proceeds to explain the V-Model of testing and STLC (Software Test Life Cycle).
Video Transcript with Key Takeaways Highlighted:
Suppose, you are assigned a task, to develop a custom software for a client. Now, irrespective of your technical background, try and make an educated guess about the sequence of steps you will follow, to achieve the task.
The correct sequence would be.
Different phases of Software Development Cycle
Activities performed in each stage
Requirement Gathering stage
All these levels constitute the waterfall method of software development lifecycle. 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 increases across the development life cycle. The earlier in life cycle a defect is detected, the cheaper it is to fix it. As the say, "A stitch in time saves a nine."
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
- 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 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 of its independent set of development and testing activities.
Good examples of Development lifecycles following iterative method are Rapid Application Development, Agile Development
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 performed at all levels i.e. right from requirements until maintenance.