Test Planning is one of the early phase of Software Testing Life Cycle. A good planning is a key to a smooth execution phase, whereas, a bad planning can result in unnecessary time consumption. Test Case writing, resource assignment etc. are some of the activities that are performed as a part of Test Planning. There are some key points that should be noted and taken care of during planning in order to avoid carrying redundant issues to Execution phase. Some of them are listed and discussed below:
- Scope of the Testing: The Test Suite should be analyzed to ensure the test cases cover the functionality to be tested and any out of scope test cases are not present in the suite. The focus should be on in-scope testing. Although, keeping a lookout for any extra defect while execution is a good practice, but it shouldn’t come at the cost of the in-scope testing. Including out of scope test cases in suite is a waste of money and time.
- Budget: Money plays an important role in deciding the extent of the testing. The cost is decided depending on the no. of test cases planned. But client’s budget and demand can act as a constraint on the extent of testing.There might be multiple conditions to test 1 requirement. But as the saying goes, Exhaustive Testing is not possible.Client may interfere and fix its budget. The test suite prepared should be under budget.
- Timeline: The time line is set for the execution during Test Planning. Depending on the timeline, test strategy including factors such as no. of resources required, no. of test cases executed per day etc. should be pre planned so as to provide the deliverable on time.
- Resources: The no. of resources required should be estimated depending on the size of test suite and timeline.
- Prioritizing: The test cases should be prioritize based on their criticality to the project, to ensure that all the major requirements has been tested at least once in the early phase of execution. For ex : if there are 5 test cases covering 1 requirement, then 1 test case should have high priority and other 4 can be labelled with medium priority (Note : Priority can be based on different criteria)
- Dividing the Test Suite into modules: The test cases can be divided into modules when the requirements are unrelated or the size of project is big. This technique helps in simplifying the execution process. In case of a big project, different modules can be assigned to different resources in team, hence creating a hierarchy and sharing the responsibility. Tracking the defects and related test cases will be simpler using these methods.Although, this also increase dependency on a person.
- Training: Appropriate training should be provided to the resources regarding the tools involved and the application to be tested. This practice can help in reducing invalid defects raised due to tester error. Also, if a resource understands the project well, there will be lesser time spent in sorting out the doubts.
- Strategizing: A plan should be formulated for the execution emphasizing on factors such as if the test case can be automated or they need to be tested manually, which test cases to be attempted first, how many test cases should be targeted everyday etc.
- Environment and tool requirements: The environment requirement and availability should be checked and ensured. Also, the tools required in case of automation should be checked for availability or license and also if the resource is available with the knowledge of that particular tool or a training is required. The test environment should always be different from production environment.
- Interaction with External Teams: If any support from any third party or some external team is required for testing then it should also be setup during Test Planning. Test lead or the Manager should interact with External team to intimate them about details and how much support i.e. hours/days of support may be required during test execution.
- Sanity testing: The test case to be tested under sanity can also be selected during the planning.
- Risks: All the risks that might be encountered during testing, should be considered during planning and their backup should be planned. For ex: in case of a partial deployment, there should be a plan to execute the test cases for the deployed requirements.
- Exit Criteria: Exit Criteria should be set during planning i.e. to decide when the testing activity can be closed. Ideally, testing should be stopped only when all the test cases have been passed and all defects closed.
Test plan is very important for testing phase.We can list out some of the benefits of having a Test plan as following:
- It helps in making the entire process more efficient using an organized structure which helps in tracking requirements, test cases, defects, change requests, results etc.
- It helps in providing a better coverage as all the requirements and functionalities are covered in a step by step process ensuring nothing is left out.
- It helps in more effective detection of bugs, as early testing is involved and missing requirements can be pointed out while preparing test cases.
- Possibility of missing defects due to tester’s tunnel view is highly reduced.
- It helps in guiding a person through the project and the strategy, especially if person was not a part of the project.
With advantages we can also state some disadvantages of Test Planning as well.
- It is a time consuming process.
- It requires efforts and knowledge of the project.
For projects, which require more coverage in a short span of time, exploratory testing is a better option, where testers can start right at testing. It is dependent on experience, instinct and skills of the Tester. Software is tested at random to find the defects.
So, from above we can conclude that Test planning is a very important phase in Software Test Lifecycle (STLC). The important points that should be under consideration during test includes Scope of the testing, money, timeline, Risk analysis etc. A Good Test plan ensures less hurdles during execution phase and helps it in making smoother. It is easy to track overall status of the project as a Test plan makes the whole process organized. Although, it requires more time and efforts but it provides many benefits too. While a good planning, makes the execution phase easier, a bad test plan can make it equally difficult.
If you are not regular reader of this website then highly recommends you to Sign up for our free email newsletter!! Sign up just providing your email address below: