Guidelines to create a test plan in software testing
A test plan is a written document that describes all tests to execute to confirm that the new software functionality is working correctly or as expected.
The process of writing the test plan starts with reviewing the requirements documents and identifying the tests to include for the new changes.
Why do we need the test plan?
There are several reasons:
1. The test plan contains all tests to execute.
2. The test plan is like the map to follow directions.
3. The tests need to be organized and structured in a particular order of execution.
4. A large test plan consists of more than one section or a group of tests.
5. The Test Plan is the detailed confirmation report to present in all disputes if something fails or does not work.
6. A supervisor could assign to someone else to execute the test plan
7. Using a test plan is the best learning method to get familiar with the new functionality
Can we use the requirements document and do not bother writing the test plan?
We cannot use the requirements document for the reasons below:
1. The requirement document format is not suitable for testing format.
The software requirement document’s purpose is to communicate the programming changes to the software development team. The test plan format should reflect user actions to perform in a particular order to execute and the expected behavior to confirm
2. There are many technical details in the requirements document that are not necessary for testing purposes.
3. Writing a test plan makes it to see missing or incorrect parts in the requirements document. The test plan is a review tool to analyze the software requirement document.
Is it possible to test new functionality without using the test plan?
It depends on the code change. The general answer is No. It is not practical and very risky to test the new functionality without the written test plan for the above reasons.
Is it possible to write a test plan when there is no requirements document?
Yes, it is possible in the following cases:
1) The programming change is about the existing functionality
2) The scope of change is small and straightforward
The test plan needs to include the following:
1. The steps to execute for each test in the logical order
2. For each test, the description of the expected behavior to verify that the test passed and failed
3. All tests where the new functionality overlaps or impacts the existing functionality
4. All possible reasonable tests to execute
5. Multiple sections when adding a significant functionality
What is the logical order of tests?
1. Execute step 1 before executing step 2
2. Access screen A before accessing screen B
3. Testing section 1 before testing section 2
What tools do we use to write a test plan?
Microsoft Excel or any spreadsheet program is the most appropriate tool to write the test plan. The key reason is we need to present tests in a tabular form.
A regular text format will not be appropriate.
When do we need to revise the test plan?
1. Any change in the software requirements occurs
2. We forgot to include necessary test(s)
3. We found the steps to execute and expected behavior to confirm are not correct in the test plan
4. Test Plan review or test execution showed that the order of tests need to change
Do we need to revise the test plan when a software developer completed code refactoring for the new functionality?
If there is an existing test plan that overlaps with the code change, then it is not necessary. In this case, there is no need to update the test plan. All tests need to be rerun.
When is the time to stop updating the test plan?
It is time to stop updating the existing test plan when we create a different functionality replacing the old one. In this case, we need a new test plan.
We need to rerun the entire test plan when one or more of the following updates occurred:
1. The operating system
2. The internet browser if the application depends on the internet browser
3. The software development environment framework
4. The application host environment software like server or the cloud