The Software Development Models are basically a set of processes or methodologies that are compiled to aid in the software development process. The software development model for a particular project is selected depending upon the requirements of the software being developed.
There are many Software Development Life Cycle models and each of them is uniquely designed to support the software development process. These models specify the various phases of the life cycle model and the order in which they are to be executed.
The life cycle model selected for developing the software has a huge impact on the testing process. Depending on the model, what, where and when of the testing is planned. The life cycle model also has a great impact on the influence regression testing and majorly determines which test techniques are to be used for testing the product.
Currently, there are various software development models in use. Some of them are mentioned below
- Waterfall model
- V-model
- Incremental model
- RAD model
- Agile model
- Iterative model
- Spiral model
- Prototype model
It is extremely important to choose the right life cycle model in developing the software product or application. As already mentioned above, this majorly decides development and testing processes.
Different companies adopt different software development models depending on whichever fulfils their product requirements. But currently “Agile Model” is the one being used by most of the software developers.
Another popular life cycle model is the “Waterfall Model”, which is a very old software development model. In this model, testing is done only after the development process is complete. Due to this, there are a higher number of defects and failures reported at the end. This in turn increases the cost and time taken to fix the errors that could have been easily fixed in the early stages.
Therefore, developers prefer Agile Model these days to avoid such situations. In this model, after every phase is complete, there is a demo-able feature provided to the customer. This way the customer can first hand check whether the development is headed the right way or not.
Another popular software development life cycle model is the V-model. This model too is adopted by many companies for developing their software products or applications. In this model, verification and validation is done simultaneously, which means that the testing is done along with the development. This keeps the product in check after every phase and ensures that the right product is being developed.
Similarly, Incremental model, RAD model, Iterative model and Spiral model are also very popular life cycle model used by companies depending on the requirement of the product being developed.
Why do people always assume waterfall is done at the phase level and not at a more practical logical partitioning level (eg, functional grouping)?
Also no matter what dev method, testing needs to be incorporated throughout each phase/stage/sprint… etc, thus finding and removing them efficiently (not just at the (sic) end).