Project planning is one of the pivotal elements in the project management process.
Test planning process
Here below, is a walk-through of the various stages in the test planning process, discussed concisely.
Stage #1: Review and analyze the requirements
This is the first step for any project and plays a very important role in any testing project. While trying to analyze the requirements, the test team has to identify and hence determine what items have to be tested. These items are heavily based on how the end user will consume the system and hence has to be measurable, detailed and meaningful.
The items or features that are identified generally describe what the particular software or product intends to do; characterized as functional requirements. There can also be some non-functional requirements identified such as performance or end to end software components’ interaction.
The people who’re aware of the business goal and can suitably define the requirements needed are generally part of this activity. The requirements are then documented and circulated for reviews. All the review comments and feedback must be incorporated to drive the document to the final sign-off.
Stage #2: Scope of testing
The scope of testing is generally an extension of the requirement analysis phase and mostly considered as a single activity, since they go hand in hand. Once the requirements are out, the test team determines what items are to be tested and what not.
For example: one team is dedicated for FVT (Function Verification Test) and SVT (System Verification Test) will have a completely different scope for testing, and globalization may or may not be performed by FVT and so on.
Also if the test project requires automation, the feasibility of that is also evaluated here. Having a clear scope defined, will prove invaluable to the management to clearly figure what has been tested and which team has covered the testing effort.
Stage #3: Design the test strategy according to the scope
The test team after gathering the requirements and identifying the scope of testing, will then put out a high level document called the test strategy document, defining the testing approach to achieve the test objectives.
A test strategy document is not meant to be updated too often.
On a high level, the content of the test strategy document will have the scope and objective of the testing, the approach, roles and responsibilities of individual test teams, tools identified for testing, the metrics identified, risks and mitigation plans, reporting and tracking mechanisms, etc.
Stage #4: Identify the required tools needed for testing and management
Based on whether automation is possible and whether CLI (Command Line Interface) or GUI automation is targeted, the corresponding tools need to be identified.
There also have to be tools identified for test management which will help in creating and assigning tasks, tracking the test progress, identifying roadblocks and generating reports indicating progress. We will discuss this more in detail in the second part of the tutorial.
Stage #5: Estimate the test effort and team
Correct effort estimation can prevent any time delays and dynamically enable the re-balancing of resources as required.
The primary factors that would influence this activity are: the size of the team, the skills within the team, the attitude of the team and the schedule.
It is mandatory to have the effort estimations reviewed by the team to keep in line with these factors which is directly proportional to their interest levels.
Stage #6: Define test schedule
Once you have the testable items that have been broken down into logical line items, the sizing estimate complete for the specified piece of work, a measurable test schedule has to be defined based on all these and the assigned testers.
Stage #7: Enablement plan
Whether it’s a new project that has to be tested or an enhancement of a previously existing system, the test team must be trained not only technically but also with respect to the overall test process being followed.
Stage #8: Determine and procure the test environment
Identify the needed infrastructure required for testing the system and initiate all the requests to acquire the needed hardware, software and networking pieces to support the testing.
This is a crucial element in the planning phase as this will govern the stability of the test environment, which will have a direct impact on the defects produced.
Stage #9: Identify test metrics
At the beginning of any project these measurable units need to be level-set which aid in determining whether there are any opportunities for improvement. Generally for quality audit purposes, the metrics are direct indicators of the product and process quality.
Stage #10: Create the softwaretest plan, reviews and approved
A test plan document is more test centric and explains “what to test”, “when to test”, “how to test” and “who will test” which is determined from technical documentation such as use case documents, High-level designs, etc.
Till now, we discussed about the different stages in Project planning.
While each stage can be a tutorial in itself, this portion of the article aims to bring out the less commonly talked about planning tasks. These tasks if not given suitable fore-thought, will have an adverse effect on the test team and hence the product.
Let’s take a look at these tasks, their importance and tips to constantly keep improvising them in order to manage the QA project effectively.
Effective management of a Test project
When effective planning techniques are applied, any risks or errors can be easily identified even before testing actually commences. Although each of the tasks below are interrelated with each other, but it was worth giving them a separate mention.
Allocation and distribution of tasks
This stems from the Effort Estimation and sizing in the planning stage. Keeping in mind skills, attitude, schedule and size of the team, here are some pointers for allocation of tasks:
#1) It’s a very good practice to sit the team down and communicate the objective and rationale behind the specified task very clearly. Knowing how a particular piece of work fits in the overall scheme of things, will help people derive a meaningful method of accomplishing them and will enable them to put their best foot forward.
#2) Prepare a skill chart of all the team members and accordingly assign the tasks. Also keep in mind that a fair chance must be given to even junior members.
For example: If a task is large, it can be split within a senior and junior member. Doing this will enable leadership qualities in the senior member and will also build on the junior member’s knowledge. If a task is complex, have 2 or more senior members contribute to it.
#3) Once an initial skeleton of the task assignment with the schedule is decided, float it around within the team and have them review it. Also explain the motive and logic behind the assignment.
Before finalizing the assignment, a good idea would be to check with the individual if they agree with it or they have any other suggestions. If there are no objections, discuss the schedule and the kind of status reporting required from their end.
A feedback can also mean the individual does not agree with the allocation. Discuss with individuals on why they disagree with it and respect their opinion. If the concerns expressed are valid, look out for options to re-balance the assignment, such that there is no risk to the task being completed on schedule.
#4) Agree on the mode of reporting that is expected. Allow the individuals to decide, if they want to give an email update or using any other informal modes. Be approachable and instill the feeling that they can approach you anytime they feel they are getting stuck or if there is anything preventing them from achieving the goal.
#5) Identification of the required tools to track the required tasks is essential. This will help timely review of the tasks that are still not yet worked upon, the ones in progress and the ones that are completed.
Resource management tips
#1) More often than not, testers are always under high pressure due to stringent project deadlines, being short staffed or excessive content suddenly being added with no change in project schedules.
In such cases if you foresee that the timelines may get hampered, discuss with the management and have the scope accordingly modified.
#2) It’s very important to keep the communication lines always open more with the testers in such cases. Discuss with the testers the current situation and indicate how these changes happen and get translated top-down.
#3) There will always be defects, technical issues, queries that would need to be resolved that would have a direct impact on the project status. Always try to diminish the gap between the development and test teams so that issues related to defects or other technical queries are sorted quickly.
Instill within each tester a sense of ownership, such that they are in a confident position to drive and lead discussions to resolve technical queries or issues with the management or developers at any given point.
#4) Schedules always have a good chance of going haywire, so don’t set expectations to the management from the test team of always being able to stretch themselves.
Test tracking / tools usage for reporting
Management often reacts with raised eyebrows when the actual status is communicated to them. Here are some tips on how to get those eyebrows down to a reasonable degree.
#1) Testers deal with a lot of instability while testing and many times it so happens that multiple people ask them for progress as different levels. They find it exhaustive and an overhead to perform these administrative tasks.
#2) Have regular checkpoint/ scrum meetings with the test team and analyze if things are going smoothly. Interlock with them to see how far they have come, what is in progress, what is needed to be done and what is holding them back. In case someone is feeling overburdened, take action to do some re-balancing in order for smooth execution.
#3) Have regular meetings with the management and make them realize that the lead is the point of contact for any questions related to the status and individual testers can be asked to pitch in only when required.
Try and showcase the test team as much as possible, apart from communicating status. If a tester has filed an important defect, showcase and appreciate it in a larger audience. This will motivate everyone to raise their bar.
#4) Needless to even mention that the most accurate and transparent manner of reporting status is to have tools identified for test management / reporting.
This tool helps in defining a project in phases, gist of tasks required with a breakdown of the major and minor tasks allocated to each of those phases, effort estimations, identification of dependencies between tasks and assignment of resources. In this way this helps with efficient tracking and management of a project.