Phase 5: Execution and Management of Tests
At this stage, the test team has addressed test design and test development. Test procedures are now ready to be executed in support of exercising the application under test. Also, test environment setup planning and implementation was addressed consistent with the test requirements and guidelines provided within the test plan.
With the test plan in hand and the test environment now operational, it's time to execute the tests defined for the test program. When executing test procedures, the test team must comply with a test procedure execution schedule, as discussed earlier. The test procedure execution schedule implements the strategy defined within the test plan. Plans for unit, integration, system, and user acceptance testing are executed. Together, these testing phases make up the steps that are required to test the system as a whole. The various steps involved during execution and management of tests are outlined below.
When executing test procedures, the test team needs to comply with a test procedure execution schedule. Following test execution, test outcome evaluations are performed and test result documentation is prepared.
Plans for unit, integration, system, and user acceptance testing are executed, which together make up the steps that are required to test the system as a whole. During the unit test phase, code profiling can be performed. Traditionally, profiling is a tuning process that determines whether an algorithm is inefficient or a function is being called too frequently. Profiling can discover instances where there is improper scaling of algorithms, instantiations, and resource utilization.
Integration testing is performed, which focuses on the application internals. During integration testing, units are incrementally integrated and tested together based on control flow. Since units may consist of other units, some integration testing, also called module testing, may take place during unit testing.
During system test, the test engineer is testing the integration of parts that comprise the entire system. A separate test team usually performs system-level tests. The test team implements the test procedure execution schedule and the system test plan.
The test team also performs analysis to identify particular components or functionality that are experiencing a greater relative number of problem reports. As a result of this analysis, additional test procedures and test effort may need to be assigned to the components. Test results analysis can also confirm whether executed test procedures are proving to be worthwhile in terms of identifying errors.
Each test team needs to perform problem-reporting operations in compliance with a defined process. The documentation and tracking of software problem reports is greatly facilitated by an automated defect-tracking tool.
The test team manager is responsible for ensuring that tests are executed according to schedule, and test personnel are allocated and redirected when necessary to handle problems that arise during the test effort. To perform this oversight function effectively, the test manager needs to perform test program status tracking and management reporting.
Test metrics provide the test manager with key indicators of the test coverage, progress, and the quality of the test effort. During white box testing, the test engineer measures the depth of testing, by collecting data relative to path coverage and test coverage. During black box testing, metrics collection focuses on the breadth of testing, to include the amount of demonstrated functionality and the amount of testing that has been performed.