Testing is an integral part of software development life cycle. Various models or approaches are used in the software development process where each model has its own advantages and disadvantages. Choosing a particular model depends on the project deliverables and complexity of the project.
Now Let us go through the various software testing models and their benefits:
1. Waterfall Model
This is the most basic software development life cycle process which is followed broadly in the industry. Here the developers follow a sequence of processes where the processes flow progressively downwards towards the ultimate goal. It is like a waterfall where there are a number of phases.
These phases have their own unique functions and goals. There are, in fact, four phases – requirement gathering and analysis phase, software design, programmed implementation and testing, maintenance. All these four phases come one after another in the given order.
In the first phase all the possible system requirements for developing a particular software are noted and analyzed. This in turn depends on the software requirement specifications which includes detailed information about expectations of the end user. Based on this a Requirement Specification.
Document is created which acts an input to the next phase, i.e. software design phase. What needs to be emphasized here is that once you move into the next phase it won’t be possible to update the requirements. So you must be very thorough and careful about the end-user requirements.
2. V Model
This model is widely recognized as superior to waterfall model. Here the development and test execution activities are carried on side by side in the downhill and uphill shape. In this model, testing starts at the unit level and spreads towards integration of the entire system.
3. Agile model
In this SDLC model requirements and solutions evolve through collaboration between various cross functional teams. This is known as an iterative and incremental model.
4. Spiral model
It is more like the Agile model, but with more emphasis on risk analysis. It has four phases – planning, risk analysis, engineering and evaluation. Here gathering of requirements and risk assessment is done at the base level and every upper spiral builds on it.
5. Rational Unified Process
This model also consists of four phases, each of which is organized into a number of separate iterations. The difference with other models is that each of these iterations must separately satisfy defined criteria before the next phase is undertaken.
6. Rapid application development
This is another incremental model like the Agile model. Here the components are developed parallelly to each other. The developments are then assembled into a product.
The above mentioned software testing models are a part of the SDLC process. With the ever increasing awareness and need for information technology, has given rise to more than 100+ testing types that are used today in many big companies. These processes keep changing as per the requirements, projects and preferences.