Model for Testing in Software Testing Methodologies
Model for Testing in Software Testing:
Waterfall Model:
The waterfall model and its derivatives were extremely popular in the 1970s. It is heavily being used across many development projects. It 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 was 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 realize all other software life cycle models.
V-Model:
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.
Prototyping Model:
The prototype model is also a popular life cycle model. It 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 realized.
Rapid Application Development (RAD) Model:
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 customer feedback on incrementally delivered versions.
Major Goals of the RAD Model:
i. To decrease the time taken and the cost incurred to develop software systems.
ii. To limit the costs of accommodating change requests.
iii. To reduce the communication gap between the customer and the developers.
Agile Model
As already we have known the internal waterfall model has been very popular during the 1970s and 1980s. Most 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 customized applications.
The Agile Software Development Model was proposed in the mid-1990s to overcome the serious shortcomings of the waterfall model of development. The Agile model was primarily designed to help a project adapt to chain requests quickly. Thus, a major aim of the Agile Model is Modelacilitate quick project completion.
Spiral Model:
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:
Quadrant-1: The objectives are investigated, elaborated, and analyzed. Based on this, the risks involved in meeting the phase objectives are identified. In this quadrant, alternative solutions possible for the phase under consideration are proposed.
Quadrant-2: During the second quadrant, alternative solutions are evaluated to select the best possible solution. To be able to do this, the solutions are evaluated by developing an appropriate prototype.
Quadrant-3: Activities during the third quadrant consist of developing and verifying the next level of the software. At the end of the third quadrant, the identified features have been implemented and the next version of the software is available.
Quadrant-4: Activities during the fourth quadrant concern reviewing the results of the stages traversed so far with the customer and planning the next iteration of the spiral.