There is no one universally accepted standard for test planning. However, there is great consistency between the different organizations that have defined a test plan standard. This section will begin with a discussion of what is normally contained in a test plan, and then provide an example of a test plan standard that is consistent with the test plan standards provided by major standard-setting bodies such as the Institute of Electrical and Electronics Engineers (IEEE) and the National Institute of Standards in Technology (NIST) a part of the U.S. government.Test Plans and their formats vary from company to company, but the best examples contain most of the elements discussed here. The Table of Contents of a test plan might contain the
following:
• Test Scope
•Test Objectives
• Assumptions
• Risk Analysis
• Test Design
• Roles & Responsibilities
• Test Schedule & Resources
• Test Data Management
• Test Environment
• Communication Approach
• Test Tools
1 Test Scope
• This section answers two equally important questions: “What will be covered in the
test?” and “What will not be covered in the test?” The answers to either of these
questions might include:
• Specific functional or structural requirements
• System interfaces
• Infrastructure components (e.g., network stability)
• Supplemental deliverables, such as application documentation
2 Test Objectives
A test objective is simply a testing “goal.” It is a statement of what the tester is expected to accomplish or validate during a specific testing activity. Test objectives:
• Guide the development of test cases, procedures, and test data.
• Enable the tester and project managers to gauge testing progress and success.
• Enhance communication both within and outside of the project team by helping to
define the scope of the testing effort.Each objective should include a high-level description of the expected test results in measurable terms, and should be prioritized. In cases where test time is cut short, test cases supporting the highest priority objectives would be executed first.
3 Assumptions
These assumptions document test prerequisites, which if not met, could have a negative impact on the test. The test plan should communicate the risk that is introduced if these expectations are not met. Examples of assumptions include:
• Skill level of test resources
• Test budget
• State of the application at the start of testing
• Tools available
• Availability of test equipment
Entrance and exit criteria for each stage of testing could be documented here.
4 Risk Analysis
Although the test manager should work with the project team to identify risks to the project,this section of the plan documents test risks and their possible impact on the test effort. Some teams may incorporate these risks into project risk documentation if available. Risks that could impact testing include:
• Availability of downstream application test resources to perform system Integration or regression testing
• Implementation of new test automation tools
• Sequence and increments of code delivery
• New technology
5 Test Design
The test design details the following:
• The types of tests that must be conducted
• The stages of testing that are required (e.g., Unit, Integration, System, Performance,and Usability)
• Outlines the sequence and timing of tests
6 Roles & Responsibilities
This section of the test plan defines who is responsible for each stage or type of testing. A responsibility matrix is an effective means of documenting these assignments. Note that although the Test Manager usually writes the test plan, it does not just include information on tests that the test team will execute.
7 Test Schedule & Planned Resources
The test schedule section includes the following:
• Major test activities
• Sequence of tests
• Dependence on other project activities
• Initial estimates for each activity
The plan should not be maintained separately, but incorporated into the overall Project Plan.
Test resource planning includes:
• People, tools, and facilities
• An analysis of skill sets so that training requirements
8 Test Data Management
This section of the plan defines the data required for testing, as well as the infrastructure requirements to manage test data. It includes:
• Methods for preparing test data
• Backup and rollback procedures
• High-level data requirements, data sources, and methods for preparation (production
extract or test data generation)
• Whether data conditioning or conversion will be required
• Data security issues
9 Test Environment
Environment requirements for each stage and type of testing should be outlined in this section of the plan, for example:
• Unit testing may be conducted in the development environment, while separate
environments may be needed for integration and system testing
• Procedures for configuration management, release, and version control should be
outlined
• Requirements for hardware and software configurations
• The location of individual test events
• The defect tracking mechanisms to be used
10 Communication Approach
In the complex, matrix environment required for testing in most companies, various
communication mechanisms are required. These avenues should include
• Formal and informal meetings
• Working sessions
• Processes, such as defect tracking
• Tools, such as issue and defect tracking, electronic bulletin boards, notes databases,and Intranet sites
• Techniques, such as escalation procedures or the use of white boards for posting
current state of testing (e.g., test environment down)
• Miscellaneous items such as project contact lists, meeting audiences, and frequency of defect reporting.
11 ToolsAny tools that will be needed to support the testing process should be included here. Tools are usually used for:
• Workplan development
• Test planning and management
Configuration management
• Test script development
• Test data conditioning
• Test execution
• Automated test tools
• Stress/load testing
• Results verification
• Defect tracking
The information outlined here cannot usually all be completed at once, but is captured in greater levels of detail as the project progresses through the life cycle.