Test Plan Writing: A Detailed Guide
Generally in software testing life cycle, test plan writing is starting point of all the QA activities in the project. Needless to say it’s one of the most important activities among all. Hence, a detailed knowledge of test plan is essential for a software test professional. In this article, we have explored test plan writing in detailed level.
Definition: As WikiPedia puts it, “A test plan is a document detailing a systematic approach to testing a system such as a machine or software. The plan typically contains a detailed understanding of the eventual workflow.”
To extend upon it, test plan contains coverage, scope, tools, testing approach, risks, schedules and pretty much everything which may come up during software testing activities in project. The idea is to follow the guidelines in structured manner keeping all requirements in mind.
Who prepares it?
Test plan writing is an activity typically done by test lead/manager with significant inputs from test engineers. It is then reviewed by project/program managers.
Test plan writing is part of Test Planning phase of STLC. In which, you perform test estimation along with test plan writing.
Types of Test Plan:
There can be many types of test plans. This depends upon one’s requirement in project. However to name a few, below are some commonly found test plan types.
- System test plan
- Performance test plan
- Unit test plan
- Acceptance test plan
- Integration test plan
Test plan format:
We will follow IEEE format for our test plan writing tutorial here. We will list out each section and describe it at very high level.
- Test plan identifier: A unique identifier for a test plan.
- Introduction: Provide a short write up about project and its functionalities at high level. This section is for providing an objective of the test plan. Additionally, you can include abbreviations, constraints and goals as well.
- Entry criteria: Provide details of criteria(Eg. Finalized requirement document) for starting testing activities in project.
- Features to be tested: Provide list of all features of the system that is to be tested. This can be a bulleted list with references to design/requirement document.
- Features not to be tested: Provide list of features you are not planning to test and the reason why they will not be tested.
- Testing Approach: In this section, provide an overview of testing approach that you are going to follow. Provide details about which kinds of testing(Eg. functional, sanity, integration etc.) will you be employing and what testing methods(Eg. manual, automation etc.) will you use. You can also include details like RTM preparation, bug tracking tool and environment to be used.
- Item pass/fail criteria: Provide details about criteria to determine whether the test activity is passed/failed.
- Suspension criteria and resumption requirements: Specify criteria when testing will be suspended such as test environment or test data unavailability, blocker issues, unavailability of any dependency etc. Also provide details about when the testing will be resumed and what activities are to be done after that.
- Test deliverables: Provide a list of deliverables which are produced after test activities. Possible test deliverables could be Test Plan, Test Cases, Defects, Test Summary Report, RTM, Test Scripts etc.
- Environmental needs: List out details of environmental needs such as software(Eg. Java, MySQL etc.) and hardware requirements(Eg. CPU, RAM of test system). Also, specify tools which will be used during testing activities.
- Responsibilities: Specify responsibilities of every team member with tasks such as test plan creation, test cases creation and execution, test cases review etc.
- Staffing and training needs: Provide details about staffing and training needs required for testing activities of the system.
- Schedule: This section contains schedule of testing activities and important milestones duration. It gives an idea about possible duration for test activities such as test plan preparation, test case creation and execution, test environment setup etc. It also contains test cycles and start and end dates of each test cycles.
- Risks and contingencies: Provide details of possible risks(Eg. CR, delay in deployment etc.) which may arise during testing and also provide the contingency and mitigation plan for these risks.
- Exit criteria: Provide details of criteria(Eg. no blocker/critical defects) for ending testing activities in project.
- Approvals: This section contains names and titles of approvers with space for their signatures and dates.
Hope the above post sheds some light on test plan writing. We would love to know your inputs on this. Comments!
What kind of inputs does tester provides while writing test plan