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
Test metrics are generally
the quantified method to derive the quality of the product or system.
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.