Thursday 19 November 2015

Software Testing Models

WATERFALL MODEL 
Once a phase of development is completed, the development proceeds to the next phase and there is no turning back.



The phases of waterfall model:
  • Analysis/requirement Gathering 
  • Designing 
  • Coding 
  • Testing 
  • Implementation
  • Maintenance

Advantages:-
  • Easy to understand and implement.
  • Phases involved in the waterfall model do not overlap with each other because every new phase starts only after the completion of previous one. 

Disadvantages
  • Backtracking of phases is not feasible.
  • Working version of the product is available only after the completion of the final phase. 
  • Not suitable to develop large projects.
  • All requirements are freeze early in the development process.
  • Customers can not give their feedback during the development process.
  • Not suitable to accommodate any kind of change. 


SPIRAL MODEL
It combines the iterative nature of the prototype model with the controlled and systematic aspects of the waterfall model to provide the potential for rapid development of incremental versions of the software. In this,the software is developed in a series of the incremental releases with the early stages being either versions of the product.


Phases
  • Customer communication task 
  • Planning task
  • Risk analysis task
  • Engineering task
  • Construction and release task
  • Customer evaluation task. 
Advantages
  • Easy monitoring project
  • Easy management of identified risks.
  • Suitable to develop high risk projects. 
Disadvantages
  • Cost involved in the development of software product is high.
  • The approach that is followed to develop software is complex.
  • This is not an appropriate model to develop low risk projects. 

INCREMENTAL MODEL 
It is an evolutionary form of waterfall model.The product is designed,implemented, integrated and finally tested as a series of incremental builds. Incremental software development model be applicable to projects where:

  • Software requirements are well defined, but complete product realization can be delayed.
  • The client is ready for the delivery of the product in part phases and the product's core functionalities are of early importance.




Advantages
  • More flexible than the waterfall model.
  • Each increment is fully tested before beginning the next.
  • Working version of the product is available early in the development process.
  • More enhanced or complete version of the product is released after every iteration.
  • Suitable to accommodate changes. 
Disadvantages
  • Each iteration involves planning overhead. 
  • Total planned testing efforts may increase. 

RAD MODEL(RAPID APPLICATION DEVELOPMENT)
It is a linear sequential development process model that follows an extremely short development cycle taking the help of the component based construction approach.The main focus of RAD Model is on the rapid prototyping of the software to support quick development.

The key features of the RAD Model are
  • Supports the re-use of software components.
  • Follows a methodology combining the features of iterative development and the benefits of software prototyping.
  • Supports less formality in product reviews and other team communication 



Advantages
  • Rapid product development.
  • Supports the usage of test automation tools, which in turn increases the quality of the product. 
Disadvantages
  • The cost involved in the development process is high.
  • Depends on the expertise of the project members in tool implementation. 

V-MODEL 
The V-Model is a software development model which can be presumed to be the extension of the waterfall model. The V-Model demonstrates the relationship between each phase of the development life cycle ant its associated phase of testing.

It has two phases
  • Verification 
  • Validation  
VERIFICATION PHASES 
  • User Requirement Analysis 
  • System Requirement Design
  • Architecture Design
  • Module Design
VALIDATION TESTING 
  • Component Testing/Unit Testing 
  • Integration Testing 
  • System Testing
  • Acceptance Testing


Advantages
  • Simple and easy to use
  • Higher chance of success over the waterfall model due to the creation of test plans/ designs early in the development process.
  • Each phase has specific deliverable. 
Disadvantages
  • Not flexible to accommodate changes.
  • Customers cannot give their feedback on the product as no working version of the product is released before implementation.