Model for Testing in Software Testing Methodologies
The waterfall model and its derivatives were extremely popular in the 1970s, and still, it is heavily being used across many development projects. The waterfall model is possibly the most obvious and intuitive way in which software can be developed through a team effort.
The waterfall model is the oldest paradigm for software engineering. The original waterfall model proposed by Winston Royce. We can think of the waterfall model as a generic model that has been extended in many ways for catering to certain specific software development situations to realise all other software life cycle models.
V-model is a variant of the waterfall model. In this model, verification and validation, activities are carried out throughout the development life cycle, and therefore the chances of bugs in the work products considerably reduce.
This model is therefore generally considered to be suitable for use in projects concerned with the development of safety-critical software.
The prototype model is also a popular life cycle model. The prototyping model can be considered to be an extension of the waterfall model. This model suggests building a working prototype of the system, before the development of the actual software.
A prototype is a toy and crude implementation of a system. It has limited functional capabilities, low reliability, or inefficient performance as compared to the actual software.
Incremental Development Model:
This model is sometimes referred to as the model of the successive version and sometimes as the incremental model. In this life cycle model, at first, a simple working system implementing only a few basic features is built and delivered to the customer. Over many successive iterations, successive versions are implemented and delivered to the customer until the desired system is realised.
RAPID APPLICATION DEVELOPMENT (RAD):
The rapid application development (RAD) model was proposed in the early 1990s in an attempt to overcome the rigidity of the waterfall model that makes it difficult to accommodate any change requests from the customer. It proposed a few radical extensions to the waterfall model.
This model has the features of both prototyping and evolutionary models. It deploys an evolutionary delivery model to obtain and incorporate the customer feedbacks on incrementally delivered versions.
Major Goals of the RAD Model:
AGILE DEVELOPMENT MODELS
As already we have known that though the iterative waterfall model has been very popular during the 1970s and 1980s, developers face several problems while using it on present-day software projects. The main difficulties included handling change requests from customers during product development, and the unreasonably high cost and time that is incurred while developing customised applications.
Capers Jones carried out research involving 800 real-life software development projects and concluded that on average 40 per cent of the requirements is arrived after the development has already begun.
The Agile Software Development Model was proposed in the mid-1990s to overcome the serious shortcomings of the waterfall model of development identified above. The agile model was primarily designed to help a project to adapt to change requests quickly. Thus, a major aim of the Agile Models is to facilitate quick project completion.
This model gets its name from the appearance of its diagrammatic representation that looks like a spiral with many loops. The exact number of loops of the spiral is not fixed and can vary from project to project. Each loop of the spiral is called a ” phase of the software process”. The exact number of phases through which the product is developed can be varied by the project manager depending upon the project risks. The main feature of the spiral model is handling unforeseen risks that can show up much after the project has started.
Phases of the Spiral Model:
Each phase in this model is split into four sectors or quadrants. In the first quadrant, a few features of the software are identified to be taken up for immediate development based on how crucial it is to the overall software development. With each iteration around the spiral, progressively more complete versions of the software get built. In other words, the implementation of the identified features forms a phase.