Testing is a process rather than a single activity.Testing must be planned and it requires discipline to act upon it.The quality and effectiveness of software testing are primarily determined by the quality of the test processes used.
The activities of testing can be divided into the following basic steps:
- Planning and Control
- Analysis and Design
- Implementation and Execution
- Evaluating exit criteria and Reporting
- Test Closure activities
1) Planning and Control
Test Planning : Test planning involves producing a document that describes an overall approach and test objectives. It involves reviewing the test basis, identifying the test conditions based on analysis of test items, writing test cases and Designing the test environment. Completion or exit criteria must be specified so that we know when testing (at any stage) is complete.
- To determine the scope and risks and identify the objectives of testing.
- To determine the required test resources like people, test environments etc.
- To schedule test analysis and design tasks, test implementation, execution and evaluation.
This is the activity of comparing actual progress against the plan, and reporting the status, including deviations from the plan. It involves taking actions necessary to meet the mission and objectives of the project.
2) Analysis and Design
Test analysis and Test Design has the following major tasks:
- To review the test basis. The test basis is the information on which test cases are based, such as requirements, design specifications, product risk analysis, architecture and interfaces
- To identify test conditions
- To design the tests
- To design the test environment set-up and identify the required infrastructure and tools
3) Implementation and Execution
Test execution involves actually running the specified test on a computer system either manually or by using an automated test tool.It is a Fundamental Test Process in which actual work is done.
Test implementation has the following major task:
- To develop and prioritize test cases by using techniques and create test data for those tests.
- To create test suites from the test cases for efficient test execution. Test suite is a collection of test cases that are used to test a software program
- To re-execute the tests that previously failed in order to confirm a fix.
- To log the outcome of the test execution. A test log is the status of the test case (pass/fail).
- To compare actual results with expected results.
4) Evaluating Exit criteria and Reporting
Evaluating exit criteria is a process defining when to stop testing. It depends on coverage of code, functionality or risk. Basically it also depends on business risk, cost and time and vary from project to project. Exit criteria come into picture, when:
- Maximum test cases are executed with certain pass percentage
- Bug rate falls below certain level
- When we achieve the deadlines
Evaluating exit criteria has the following major tasks:
- To assess if more test are needed or if the exit criteria specified should be changed
- To write a test summary report for stakeholders
5) Test Closure activities:
Test closure activities are done when software is ready to be delivered. The testing can be closed for the other reasons also like:
- When a project is cancelled
- When some target is achieved
- When a maintenance release or update is done
Test closure activities have the following major tasks:
- To check which planned deliverables are actually delivered and to ensure that all incident reports have been resolved
- To finalize and archive testware such as scripts, test environments, etc. for later reuse
- To handover the testware to the maintenance organization. They will give support to the software
- To evaluate how the testing went and learn lessons for future releases and projects