1. Test Plan and Control
- Mission and objectives of testing must be defined and agreed upon as well as the resources necessary for the test process. Which employees are needed and when? How much time is needed? And which equipment and utilities must be available? These questions and many more must be answered during planning.
- Test control is the monitoring of the test activities and comparing what actually happens during the project with the plan.
- The main task of planning is to determine the test strategy or approach. Define test intensity for components, prioritization of tests, tools support etc.
2. Test Analysis and Design
- Review the test basis – the specification of what should be tested.
- Check testability – the test object itself also has to fulfill certain requirements to be simple to tests. Testability has to be checked. This process includes checking the ease with which interfaces can be addressed.
- Consider the risk – if there is a high risk of failure for the software, very thorough testing should be planned.
- Traceability is important – it must be clear which test cases test which requirements and vice versa
- Logical and concrete test cases – logical test cases have to be defined first. After that, the logical test cases can be translated into concrete, physical test cases.
- For each test case, the initial situation (precondition) must be described.
- Define expected results. The tester must obtain the information form some adequate source. Often called oracle.
3. Test Implementation and Execution
- One must describe how tests will be executed. The priority of the tests cases.
- Test cases should be grouped into test suites.
- Preconditions for tests must be set.
- Recommendation is to start with smoke test.
- Test without a log are of no value.
- Reproducibility is important
- Risk based testing – most important test cases first.
4. Test Evaluation and Reporting
- End of test? Consider the risks, an adequate exist criterion must be determined for each test technique used. For example: it should be specified that a test is considered good enough after execution of 90% of test object statements.
- Is further effort justifiable?
- Failure rate? Defect per day / per hour?
- Consider several test cycles
5. Test Closure Activities
- The experience gathered during the test work should be analyzed and made available for future projects.
- Following data should be recorder: When was the software system release? When was the test finished or terminated? When was a milestone reached or a maintenance release completed?
- Important information for evaluation can be extracted by asking the following questions: Which planned results were achieved and when if at all? Which unexpected events happened? Are there any open problems? Why were they not implemented? How was user acceptance testing?