Testing is a collective process rather than being a single activity. This testing process begins with test planning, followed by designing test cases. After test cases, it is preparing for execution, evaluating status and finally the test closure. This whole cycle of activities put together is known as a single test process.
To understand the fundamental test process better, we can categorize them in the following ways
- Planning and Control
- Analysis and Design
- Implementation and Execution
- Evaluating exit criteria and Reporting
- Test Closure Activities
Planning and Control:
Test planning is an activity where the test process is planned and an outline is prepared based on which the whole test process is conducted. The major objectives of the test planning activity in a test process are given below
- To determine the scope and risks involved in testing the application and to identify the objectives of testing
- To determine the approach of the test
- To implement test policy or test strategy for effectively and efficiently conducting the test process
- To determine the test resources that are essential for conducting the tests like people, test environment, computers, etc.
- To create a schedule for test analysis, designing tasks and test implementation, execution and evaluation
- To determine the Exit criteria, for which it is important to set criteria like Coverage criteria
Coverage Criteria here is the percentage of the statements in the software that must be executed during testing process. This is useful in determining whether the test process is proceeding as planned or not. It also determines the total coverage of test process.
Test control is a part of test process that is responsible for guiding and taking true actions based on the information provided in order to improve the efficiency and quality of the software product. The major tasks involved in test control are mentioned below
- To measure and analyse the results of reviews and tests
- To monitor and document progress of testing, test coverage and also exit criteria
- To provide useful information on testing
- To make sure that the correct actions are being implemented
- To make important and decisive decisions
Analysis and Design
Test analysis and test design are one of the major parts of test process in software testing. In test analysis, it is determined what components of the system need to be tested under what conditions. On the other hand, in test design activity, it is determined how the testing should be done.
The major tasks involved in test analysis and design are mentioned below
- To review the test basis
- To identify test conditions
- To design the tests
- To evaluate the testability of the requirements and system
- To design the necessary testing environment and identify the required infrastructure and tools needed for testing
Here, the test basis is a documentation on which the test analysis is based and is hence, used to create own test cases. In simple terms, test cases are based on test basis such as requirements, design specifications, product risk analysis, architecture and interfaces. Moreover, we can also use the given test basis to figure the function of the system once completely developed.
Implementation and Execution
Test implementation and execution is a fundamental process in which actual work is done. During test implementation, tester makes sure that all the required items for execution of the test are already present. During test execution, the specified test is run actually on a computer system either manually or by using an automated test tool.
The major tasks involved in test implementation are given below
- To develop and prioritize our test cases by using test techniques and creating test data for those tests. Here, the test data is the data required to test the features of the software.
- Test procedures are written and there may also arise the need to automate some tests, which is done by using test harness and automated test scripts.
- For efficient test execution, test suites are created from the test cases. Test suite is a collection of test cases which contains detailed instructions and information for each collection of test cases. It is used to test software application to prove that it has some specific behaviors.
- To implement and verify the testing environment
The following major tasks are involved in test execution
- To execute test cases and test suites according to the test procedures
- To re-execute the tests that previously caused failure in order to confirm a fix, this process is known as confirmation testing or re-testing
- To document the outcome of the test execution and record the identities and versions of the software put to test, the same test log (documentation) is used for the audit trial
- To compare actual results with expected results
- When the differences between actual and expected results are encountered, these discrepancies are reported as incidents
Evaluating Exit Criteria and Reporting
Depending on the risk assessment of the project, it is important to set the criteria for each test level according to which the “enough testing” is measured. These criteria are known as exit criteria and it varies from project to project.
The exit criteria of each project comes into picture when
- Maximum test cases are executed with certain pass percentage
- The bug rate falls below certain level
- The deadlines are achieved
The major tasks involved in evaluating exit criteria are as follows
- To check the test logs against the exit criteria mentioned in test planning
- To assess whether more tests are needed or if the exit criteria specified for the project should be changed
- To write a test summary report for the stakeholders or clients
Test Closure Activities
Test closure activities are conducted during the final stage of software development life-cycle or when the testing is closed, i.e. when the software is ready to be delivered or if the software testing or development is stopped for some other reasons.
The other reasons due to which the testing can be closed are as follows
- When all the information has been gathered which are needed for testing
- When a project is cancelled
- When a certain target is achieved
- When a maintenance release or update is introduced
Moreover, the major tasks involved in test closure activities are mentioned below
- To check which planned deliverables are successfully delivered and to ensure that all the incident reports found during testing have been successfully resolved
- To finalize and archive testware such as scripts, test environments, etc. for later reuse
- To handover the testware to the maintenance organization
- To evaluate the coverage of testing and to learn useful information for future releases and projects