There is no simple answer for this. The 'best approach' is highly
dependent on the particular organization and project and the experience
of the personnel involved.
For example, given two software projects of similar complexity and
size, the appropriate test effort for one project might be
very large if it was for life-critical medical equipment software,
but might be much smaller for the other project if it was for
a low-cost computer game. A test estimation approach that only
considered size and complexity might be appropriate for one
project but not for the other.
Following are some approaches to consider.
Implicit Risk Context Approach:
A typical approach to test estimation is for a project manager
or QA manager to implicitly use risk context, in combination
with past personal experiences in the organization, to
choose a level of resources to allocate to testing.
In many organizations, the 'risk context' is assumed to be
similar from one project to the next, so there is no
explicit consideration of risk context. (Risk context
might include factors such as the organization's typical
software quality levels, the software's intended use,
the experience level of developers and testers, etc.) This
is essentially an intuitive guess based on experience.
Metrics-Based Approach:
A useful approach is to track past experience of an organization's
various projects and the associated test effort that worked well
for projects. Once there is a set of data covering
characteristics for a reasonable number of projects, then
this 'past experience' information can be used for future test
project planning. (Determining and collecting useful project
metrics over time can be an extremely difficult task.)
For each particular new project, the 'expected'
required test time can be adjusted based on whatever
metrics or other information is available, such as function
point count, number of external system interfaces, unit testing
done by developers, risk levels of the project, etc. In
the end, this is essentially 'judgement based
on documented experience', and is not easy to do successfully.
Test Work Breakdown Approach:
Another common approach is to decompose the expected testing tasks
into a collection of small tasks for which estimates can, at
least in theory, be made with reasonable accuracy. This of
course assumes that an accurate and predictable breakdown of testing
tasks and their estimated effort is feasible. In many large projects,
this is not the case. For example, if a large number of bugs
are being found in a project, this will add to the time required for
testing, retesting, bug analysis and reporting. It will also
add to the time required for development, and if development schedules and
efforts do not go as planned, this will further impact testing
There is no simple answer for this. The 'best approach' is highly
dependent on the particular organization and project and the experience
of the personnel involved.
For example, given two software projects of similar complexity and
size, the appropriate test effort for one project might be
very large if it was for life-critical medical equipment software,
but might be much smaller for the other project if it was for
a low-cost computer game. A test estimation approach that only
considered size and complexity might be appropriate for one
project but not for the other.
Following are some approaches to consider.
Implicit Risk Context Approach:
A typical approach to test estimation is for a project manager
or QA manager to implicitly use risk context, in combination
with past personal experiences in the organization, to
choose a level of resources to allocate to testing.
In many organizations, the 'risk context' is assumed to be
similar from one project to the next, so there is no
explicit consideration of risk context. (Risk context
might include factors such as the organization's typical
software quality levels, the software's intended use,
the experience level of developers and testers, etc.) This
is essentially an intuitive guess based on experience.
Metrics-Based Approach:
A useful approach is to track past experience of an organization's
various projects and the associated test effort that worked well
for projects. Once there is a set of data covering
characteristics for a reasonable number of projects, then
this 'past experience' information can be used for future test
project planning. (Determining and collecting useful project
metrics over time can be an extremely difficult task.)
For each particular new project, the 'expected'
required test time can be adjusted based on whatever
metrics or other information is available, such as function
point count, number of external system interfaces, unit testing
done by developers, risk levels of the project, etc. In
the end, this is essentially 'judgement based
on documented experience', and is not easy to do successfully.
Test Work Breakdown Approach:
Another common approach is to decompose the expected testing tasks
into a collection of small tasks for which estimates can, at
least in theory, be made with reasonable accuracy. This of
course assumes that an accurate and predictable breakdown of testing
tasks and their estimated effort is feasible. In many large projects,
this is not the case. For example, if a large number of bugs
are being found in a project, this will add to the time required for
testing, retesting, bug analysis and reporting. It will also
add to the time required for development, and if development schedules and
efforts do not go as planned, this will further impact testing