An Software Test Plan or simply a Test Plan is a formal document containing details of the testing activities to be carried out during the software development process. The test plan details the following:
- Testing Strategy
- Testing Objectives
- Testing Criteria
- Required resources
- Test estimates
A Test plan is used as a guide in conducting software testing activities as defined in the process.
Having understood what a test plan is, let’s now discuss the process of developing a test plan.
Step of Creating a Test Plan
First know that the creation of a test plan takes considerable effort and time. Let’s now look at the steps involve developing a test plan.
- Analyse the Product Being Developed
- Design a Test Strategy
- Establish the Test Objectives
- Define the Test Criteria
- Plan the Resource Needs
- Plan the Test Environment
- Make a Schedule and Estimate Time and Resource Needs
- Determine Test Deliverables
This steps take place in a loosely sequencial manner as illustrated in the figure.
1. Analyze the Product
To be able to carry out a complete test, you need to understand the application being developed. You need to find out who the users of the application will be. What will be the purpose of the system? Under what environment will the system work.
You can analyze the product in the following ways:
- Interveiw the customer and developers
- Review the product documents
- Peform walkthrough
2. Design a Test Strategy
Development of a Test Strategy is normally done by a Test Manager. A test strategy documents the following:
The project testing objectives as well as the means to achieve them
The testing efforts and related costs
To develop an effective strategy, the following steps can be taken:
- Specify the scope of the testing (and out of scope as well)
- Identify the Testing Types
- Document Risks and mitigation plans
- Define test logisitcs
3. Define the Test Objectives
The test objective is the overall goal of the testing process. The test objectives included making sure that “all” the defects are detected and corrected. All may not be possible but as many defects as possible.
To define the objective, the following steps are taken:
- List all the features of the system
- Define goals of each test based on the features
4. Define the Test Criteria
Test criteria is the factors upon which the performance of the software testing process is evaluated.
The two criteria that need to be defined includes Success Criteria and Exit Criteria.
Suspension Criteria: This is the criteria to be met for the testing process to be suspended until the criteria is handle. An example of suspension criteria is failure of 50% of the test cases. This means that if 50% of the test cases fail, the the testing process is suspended until the developers fixes the defects.
Exit Criteria: This is criteria that specifies that the testing exits a particular phase to the next phase.
5. Plan the Resources
Resource plan is a details summary of all the types of resources need to complete the testing tasks. Resources include both human and material resources needed to do the testing activities.
6. Plan the Test Environment
A test environment is a setup of both the software and hardware system required to execute the test suites. Note that test environment also included users(whether real or simulated) that would be used to carry out the tests.
Example of test environment could be:
- One database server
- Two web servers
- An application server
- Six Client Systems(Desktops)
- Two Mobile (tablet or mobile phone)
- Network connection of all the systems
- Internet Connection
- Wireless connection to the network
7. Schedule and Estimation
Schedule and Estimation has to do with the breakdown of the whole testing project into chunks of activities.
The schedule details the estimate of the activities and the amout of time each activity would take to complete. Then a total estimate of the overall time is obtained.
This could be acccomplished by creating a Work Breakdown structure using an application such as Primevera or Excel Spreadsheet.
8. Test Deliverables
A deliverable is the finished product to be presented after a process. In the case of Software Testing, the test deliverables is a list of all the documents, tools and other artifacts developed and maitained in the support of the testing process.
The three categories of test deliverable includes:
Deliverables before testing
Test plan documents
Test suites of test cases
Deliverables during testing
Execution logs and error logs
Deliverables after testing
Test results and reports
Putting it all together, we would now develop a simple test plan for a hypothetical web application for a banking system.