Software Testing Waterfall Model

Software Industry follow various Software Development Life Cycle (SDLC) models to develop their software product and get profit from their investment and time. There are multiple phases involved in the development and release of software product they are requirement specification, designing, implementation of software, testing the software and maintaining it. There is no hard rule that software testing should occur only after 100 percent completion of software development. Different products require different models need to be used, we will be looking into waterfall-based software process model.

Waterfall is software development model where software process activities such as requirement analysis, design, development, testing, and maintenance of software occurs one after the another independently. Like water flowing from top mountain to lower mountain one by one. The time that is spent on requirement analysis is independent from the time spent in software development.

Below image displays the waterfall model where design occurs after requirement analysis, development phase occurs after design phase, testing phase occurs after development is complete and similarly maintenance occurs after testing phase is complete. 



software testing waterfall model


Requirement Analysis – Customers request the requirement to the software industry consultants or sales team and these consultants and sales personnel coagulate these requirements and present to the software management team. Management team will decide the new requirements that requires attention and that will fetch more return on investments.


Design – In the design phase the requirements is given to design and architecture team members who then find the appropriate method of designing the feature. The design team consists of architecture of development team, architecture from testing team also the project head. The design gets approved by stake holder if the design is considered to solve customer requirement and then gets finalised.


Development – The requirements are given to development lead where the software product starts getting developed. The development task is divided into any smaller task called software modules across the development team members. The development team members start coding the software modules and then perform some testing on these modules. The software modules are then integrated collectively and made software.


Testing – The software is then provided to multiple testing team members. The testing teams include basic verification testing teams, the functionality testing team, the integration testing team, and performance testing teams. These testing teams run test cases derived from requirement analysis or the software functionality and report the software issues to development. If development decides that it’s a valid software issue they provide the ix and again the product is given to testing team. Once the testing team verifies and validates the product then the product is deployed into production.


Usage and Maintenance – The software is then licensed and distributed to the customers based on the per-approved cost. If there is any issues with the software like requirements are not matching or customer facing errors with the software then again the requirement analysis or development phase is again invoked and testing is again done based on the new requirements. 




Software Testing Waterfall Model


The Waterfall Model can also be applied to the testing phases. The testing phases include test planning, new feature analysis, test case design, test construction, testing and recording, regression testing and release decision. Software Testing Waterfall Model can be thought of the process that can include the above phases.

software testing waterfall model

Test Planning – The Test Lead and Test Architect gets apprised about the development release planning; they get to know the new features and the existing features that are going to release for the targeted software. Test planning involves the test plan document creation

Test Plan document is made based on considering the below parameters 


  1. Test Objective
  2. When to start testing and Criteria to stop the testing
  3. The number of human testing resource that are required
  4. The amount of skilled personnel is required
  5. The trainings that need to be provided to testing team members
  6. The cost of testing a feature or no to test the feature.
  7. Test cases list
  8. Amount of Regression Tests Included
  9. Amount of Tests Cases Optimization done
  10. Profile of Testers
  11. New features that are going to test
  12. Responsibilities of Testers


After collecting all this information, the test plan is sent to team members and managers for approval. During the review process if there is any issue with any test plan documentation its again requested for modification and again it gets reviewed, once test plan is approved testing process gets started 


New Features Analysis – In this phase new software features should be understood completely this involves reading the requirement analysis documents continuous meetings with the development to understand the new requirement. After understanding the new feature thoroughly, the testing team discusses the planning of new test cases within the internal testing team members. After the new test cases are finalized its gets presented to development as part of test plan approval process. The development team and the associated stake holders shall review test test plan and provide their approval of test plan.


Test Case Design – After the regression test cases and new test cases gets derived based on software functionality the test case design process takes place. Test case design requires documenting the type of test, test functionality, the test steps that need to be executed, the test process, test case restrictions, functionalities the test case impact, documents that support test, requirement for testing, post requirement of testing, expected result are the main part of test case design documentation.


Test Case Construction – Test case construction procedure involves defining each and every step of test case execution. The expected result will also get documented for each step of test case, if the test case has two outputs the tester documents them completely. The procedure of documenting test case is repeated until all the test cases are done. Once the test case construction is done the actual software testing gets started.


Testing and Recording – This phase takes almost 90 percent of the software testing process. Test cases gets allocated to each individual based on the test milestones. Each tester gets assigned with the set of test cases and they start running the tests. Test cases may be automated or manual execution. If the tests fail testers open the defects and wait for the fixes, when fix arrives they again retest the test case and verify that the feature matches the requirement.


Regression Testing – After completion of software testing, at the end of the release there will be some buffer time planned. This buffer time will be utilized to re test some of the features that have failed or considered to be more critical to customer 

This phase will be used to validate the product completely before letting customers to use it. This phase is being used for regression tests, some testcases are opted from the above phase (Mainly the new featured test cases or the failed test cases) and testers retest them in this phase. Upon successful completion the product is then released to the customer


Release Decision – In the release decision there will be final meeting done by the release manager to review the product release. There will be release document designed that contains the list of new features, software issues that are already exists, hardware and software limitations (if any) etc will be documented and provided as part of release.

Post a Comment