What is Waterfall Model? Pros and Cons

waterfall model

Waterfall model is a sequential one which divides software testing and development into sequential phases in which each phase is designed to perform certain acts.
It’s simple and idealistic and serves as the base for many models that are being put to practice at present. A classic waterfall model divides any project into a set of phases. One phase can only start when the previous phase ends.
Let’s have a look at the different sequential phases in a waterfall model

 
Requirement Analysis:
The capture of all the requirement from customer, deep-rooted analysis, incomplete requirement omission, brainstorming, feasibility test, etc. are carried through in this phase.
After analysis, the requirements will be documented in a software requirement specification (SRS) document which serves as a contract between customer and testing company.
System Design:
Design specification document will be created in this phase to outline the technical design required for commencing the project. For instance, frameworks, tools and programming languages, etc.
Implementation:
As per the design programs or code will be written for various purposes. And the codes will be integrated to the next phase.
Testing:
Unit tests will be conducted to make sure that the system is working as per the requirement. All functional and non-functional testing will be conducted in this phase.
During testing, if any anomalies are found it will be reported. Progress of the testing will be tracked using tools. Proper documentation of defects will be reported.
Deployment:
Product will go under the final test to ensure that the application is fully functional and can perform according to the requirement in a live environment
Maintenance:
Corrective, adaptive and predictive maintenance will be carried out in this phase. This maintenance can also be used for updating or enhancing the product.
Before moving to another stage there will be review and sign off process to make sure that goals that have been defined in the requirement phase have been met.
Waterfall model is specifically used for projects that have defined documentation, definite requirement, ample resources, specific timeline, etc.

When to use waterfall model in software testing

• When there is no change in requirement of project
• Application that needs testing is smaller in size
• When there is a stable environment
• When the resources is limited
• When there is required expertise available

Advantages and disadvantages of waterfall model

Advantages of waterfall model

  • Clear documentation and planning will ensure that large or shifting team to move towards a common goal.
  • Works well for small projects
  • Phases are easy to maintain since they are rigid and well-constructed
  • Disciplined and organized
  • Reinforces good testing habit
  • Specification change can be made easily
  • Milestones and deadlines can be defined clearly
Disadvantages of waterfall model
  • If there is any flaw the entire process has to be started again
  • Lack of adaptability
  • Ignores Mid-Process User/Client Feedback
  • Many testing models incorporate testing to the process on the other hand waterfall model movies away from testing

Conclusion
Nowadays projects are moving on to Agile and prototype models. But, for small projects waterfall model is effective if the requirement can be clearly defined.