Software testing life cycle

A student wrote to me: “My school is teaching Software development life cycle but my friend mentions that there is a Software testing life cycle but I could not find it in the textbook. What is it? Could you help?”

Answer: There is a Software Testing Life Cycle that defines the processes and phases in the testing of software. However, it is not an industry standard and only few testers are using it. Basically the testing life cycle consists of following phases:

1) Requirements Review: Testers review the software requirements to understand them and make sure that they are testable. (If they are not then the requirements are vague and need to be revised); this is an important activity in the software engineering principles that advocates testers must involve early in the software project and work closely with requirements engineers to make sure that software requirements are good and complete before the project starts.

2) Test Planning: Testers know what needs to be tested, and plan their testing activities such as: Prepare test strategy, test plan, test schedule and estimate the testing time. Because testers are participating early in the project, they can work closely with software architects and software designers in defining all the components of the software product, both functional and non-functional requirements. Testers also help identify the interfaces between hardware and software as well as planning how to test these requirements.

3) Test Designing: Testers begin to build test cases, test scripts and test data based on the requirements/design of the software. They also create a requirements traceability to make sure testing is complete cover all details of the software requirements. By understand the design in details, testers can develop better test cases and test data for the project.

4) Test Environment Setup: Testers setup the test environment and make sure that it is the same as the users’ environment.

5) Test Execution: Testers execute their test cases and test scripts in the test environment to determine the quality of the software (Pass/Fail) and generate test results and defect reports. Testers conduct functional tests, integration tests, and system tests and help customers to conduct user-acceptance tests.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University