Recently while taking Testing interviews, there was this boy with 6+ years of Software Testing experience who was good in basics but lacked Test planning knowledge. No, he was not from automation background. And there are many people like him – who are good at Testing fundamentals but lack Test plan experience. It doesn’t matter to me if you have practical experience or not – it might be the case that you didn’t get a chance in your current organization. But when you are aiming for a Test Lead kind of role, you got to have the basic understanding of Test plan document and its role in Software Testing.
How did you study when young? Ever prepared a time-table? Planned to study during early morning hours or late in the night? Researched about and collected the required books? Decided your approach to understand it or just mug it up? Focused on the main chapters which would yield maximum marks? What if you didn’t plan anything? Yeah! Chaos. You wouldn’t be here reading this in that case…That’s the importance of planning, in every sphere of life & software delivery too.
Test planning is one of the crucial phases of any Software development and testing project. Just like real life goals and plans to achieve it, no project can be successful without proper planning. You plan for studies, job, career, family, finance, and what not. In Software Testing Life Cycle (STLC), Test planning starts once you sign the contract and requirements start flowing. It’s obvious right? Now that we know ‘what’ to build, the next obvious step is to define ‘how-when-who-and-where’!
And how do you define all this? Yeah, Exactly! Test Manager & Leads play a crucial role here. Meetings are scheduled, software requirements are understood, project needs are discussed, risks are forecasted, milestones are set, approach is finalized, hardware & resource requirements are formulated, etc. Everything discussed is documented, revised again & again until everybody gets to an agreement. As you might have guessed, the final document prepared after all these activities is one of the most important in the complete Testing life cycle – The initial draft of Test Plan!
Importance of Test planning
“When you have a plan in place, chances are the journey will go smoother.”
Test Plan serves multiple purpose. It’s like the constitution where everybody has to abide by it. Changes to the constitution can only be made via an amendment. It serves as the foundation for a healthy & happy society. It defines the fundamental values, rules & laws. Similarly Test Plan is more or less like a blue print of how the testing activity is going to take place in a project. It serves as a framework and a guide to ensure your testing project is successful and helps you control risk. Test Plan defines various aspects of the Software Testing phases which drives all the test efforts towards a common goal – a quality product.
All good Quality Assurance Managers know that if you rush into the QA process, that particular project is likely to run into trouble. Without a clear outline to follow, QA team members may be unclear on what their responsibilities are, what testing should be prioritized and how the project’s success is being defined. While creating a Test plan demands time, it presents many advantages and is a crucial document.
- It describes the test approach and build support from the stakeholders for this approach.
- Test plan helps the team get to a common understanding.
- The very act of writing Test plan helps us think through things in ways we might not think about normally.
- The Test plan helps to manage change. As the project evolves & information change, we adapt the Testing plans to keep it aligned with project needs.
- Ensure all aspects of a product are tested and avoid wasting your time by clearly defined in-scope & out-of-scope functionalities
- It clearly defines roles and responsibilities of every team member so every individual knows what is required of him.
- It provides you a baseline schedule to control and track your team’s testing progress.
- Test Plan is one the important QA deliverable that is shared with all the stakeholders to acquaint them about the QA team’s work
- Help project managers stay on top of the project by getting a clear idea of the project’s progress and identify problematic areas (if any).
- Quickly identify and mitigate issues & risks to maintain reliable delivery
- Test plan ensures that testing parallels procedural benchmarks, indicating a readiness for the next phase in the project life-cycle.
Test Plan components
Any Test plan article is incomplete without knowing its components, i.e. what does it contain. How can one understand the importance of Test planning without knowing what all it takes into consideration? Nah! We won’t list all the sections, it requires another complete article altogether, but we can at least understand the gist.
The Test plan typically contains a detailed understanding of the eventual workflow. Let’s brainstorm – what all things do we need as part of the Testing cycle?
- Why: The objective. Why are you preparing a Test plan and testing the software?
- What: Unless you know what to deliver & what-not (the requirements), how are you supposed to start? What will be your pass/fail criteria during the test process? What will be the Test deliverable from our end?
- How: What’s your approach or Testing strategy? How many cycles of Test runs? What about static review? Any requirement for using stubs or drivers? Only black-box tests? How will the Test team ensure that software product meets all the defined requirements? How are we going to report the test progress?
- Who: Who is going to actually test? What about the automation team? How many resources? How many exploratory testers?
- When: What are the timelines? When are you planning to run the tests & automated scripts?
- Where: Are you going to test directly in production environment with end-users using the application live? Nah, right? You will need the hardware & software test environments.
- How much: What’s the plan to close all the identified defects? How much test effort is actually required? How much training is required to kick-start?
- Whoa: Wait a minute! There is nothing called an ‘ideal world’. How do you plan to mitigate the unforeseen risks? Have you at least taken it into the account?
Think of it as a very detailed way to carry out the testing of a piece of software so we can be sure we have covered all the angles.
Avoid building a Dead Test Plan
Now that we are done with the Test Plan introduction, let me admit that Wikipedia’s definition of Test Plan seems absurd to me,
“A test plan is a document detailing the objectives, target market, internal beta team, and processes for a specific beta test for a software or hardware product. The plan typically contains a detailed understanding of the eventual workflow.”
Test plan is much more, just that last line makes sense to me. Testing is an important process in the SDLC which controls and determines the quality of your deliverable. If you want to deliver a bug free product at its planned timeline, you need a good test plan to make it happen. The extent of the Test plan is determined by the complexity of the software to be tested and the consequential extent of risk mitigation. However the ultimate goal of the test planning process is communicating the software test team’s intent, its expectations, and its understanding of the testing that’s to be performed. We do have some ‘Dead Test plans’ which are not updated as & when changes happen. A dead Test plan is beautifully described in the ‘Google Testing Blog’ post by James Whittaker as
“Plans written, reviewed, referred to a few times and then cast aside as the project moves in directions not documented in the plan.”
But let me tell you – Test Plan is a dynamic document. The success of a testing project depends on a well written Test plan document that is current at all times. Either keep the Test Plan current & up-to-date or else don’t waste your efforts in building a ‘Dead Test plan’ (you can take the 10-minute approach instead). The more detailed and comprehensive the Test plan, the more successful the testing activity. If you take a measured approach you’ll find that creating an effective and detailed test plan isn’t so difficult. Ready to create a Test plan for your next project?