Testing is a parallel process that happens in tandem with the product development lifecycle. The diagram below (sometimes called a V-Model due to its shape) represents the various test phases that coincide with the product lifecycle phases. The diagram shows how the test planning and design progresses in parallel with the product design activities, as shown on the left side of the V-curve. The right side of the V-curve shows how test execution and control takes place in parallel to the product development phases, to verify successively the corresponding design phases of the product
Test Plan
While test strategy lays the basic framework by assimilating all the inputs, and deciding on which testing techniques to be adopted, test planning lays the groundwork for the test case design, test execution and test control phases. The objectives of test planning include:
- Support the development of a quality assessment that enables wise and timely decisions to be made concerning the product.
- Promote awareness of the benefits and limitations of the test strategy
- Support the initiation and organization of the test project, including preparations, staffing, delegation of responsibilities, task planning, and scheduling.
- Support daily management and evaluation of the test project and test strategy
- Support effective coordination, collaboration, and other relations among members of the test team, and between the test team and the rest of the project
- Identify and manage any risk or issues that may impact the project
- Record historical information in support of process audits, process improvement and future test projects.
The test plan is a formal document that would attempt to cover all of the above-mentioned objectives.
The standard test plan would cover the following:
- Test objectives
- Test effort estimation and test schedule
- Logistics plan including communication and coordination plan
- Test techniques to be used
- Test platform and configuration
- Strategy for test bed and test data creation
- Assignment of test roles and responsibilities, if required (e.g. testers, test coordinators)
- Problem handling procedure
Test Case Design
This includes the formal documentation of the test conditions. Based on the testing technique being used, test cases are designed for the test execution phase. Test cases are designed for all tests specifying the data to be used, tests to be performed, and other conditions to be used while testing etc. As described later in the document the testing lifecycle has intricate coordination and links to the development lifecycle of the product.
Test cases would include:
- Testing procedure
- Test data
- Expected result (if required)
It is imperative that test cases are prioritized as needed. This is done often due to time and cost constraints. We attempt to run test cases that do the following:
- Likely to find the most faults
- Likely to find the most severe faults
- Likely to cover the most part of the unit
Test Execution Actual testing is executed based on accepted test plan. While the test execution phase may utilize any of the test techniques that have been listed earlier, most testing will typically cover the following levels of testing:
Unit Testing – does this piece work by itself?
Integration Testing – do these two pieces work together?
System Testing – do all pieces work together?
Acceptance Testing – does the system meet all user requirements?
Test Control
The testing lifecycle is controlled by this activity. The entire test execution process iterates repeatedly throughout the product lifecycle. It generates and submits reports to the test manager. Test controlling includes test management, test data analysis, and test report processing. It is here that any post data analysis is done, reports are submitted to the client, and decisions are taken whether the work product needs to be modified and testing repeated. Usually the test results are either raw data or processed reports. Usually reports are submitted to the client, with raw data as supporting material.
At anytime, if it is felt that the results, or data produced are not adequately meeting the test mission, then impexsoftech will consult with the client to refine existing testing technique, execution process or define new testing technique. The control process monitors, manages and ensure that the testing mission is accomplished, and the product has attained its desired quality.