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 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
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.