Test Estimation Techniques

Software Test Estimation Techniques

Overview: Estimation is a management activity which decides the course of the project and its financials. Estimation helps to create approximation for cost and schedule for testing tasks like test planning, test execution or automation creation.

Major activities which occur during a test project are listed below -

  1. Planning and Analysis
  2. Design and Implementation
  3. Control
  4. Execution
  5. Reporting and Closure

Estimation needs to be done for every phase of the test life cycle. There are assumptions that go with each estimation and should be clearly documented in test plan or project plan. A good estimation has below characteristics:

· It is based on knowledge of experienced practitioners of the field.

· It is supported by the team who will do the work on the ground.

· It is specific and detailed and not vague or has ambiguous terms and conditions.

Factors Affecting Test Estimation:

There are multiple factors which can impact estimations of test project. Major ones are listed below-

· Process Factors: Factors which arise due to process by which work is being done. For example- Change control process, chosen system development life cycle, proper execution of pre-execution phases.

· Material Factors: These factors arise from nature of the project, the tools, and resources available. Example - Separate, adequate development and debugging environment, availability of documentation etc.

· People Factors: These factors arise from people on the team who execute the project. Example - Skillset of team, Expectations set with team, Leadership provided.

· Delaying factors: These factors, when present, result in increase of schedule or cost. Example - Lots of stakeholders, Multiple subsystems etc.

Please note that undermining any one of above factors can turn realistic estimation to an unrealistic one resulting in financial bleeding or resource burnouts.

Test Estimation Techniques:

Test estimation techniques can be broadly categorized into two types-

1. Metrics-based Techniques

2. Experience-based Techniques.

  1. Metric-based Estimation Techniques: It involves estimating the testing effort based on metrics of former or similar projects or based on typical values.

Below are examples of Metric based estimation techniques:

· Work Breakdown Structure

· Test Point analysis (Function point analysis)

· Team Estimation - Example: Three-point estimation or Delphic oracle

· Percentage of overall project effort

· Work breakdown Structure (WBS) and Test Point Analysis: Work breakdown structure is a technique where the whole project is divided into small tasks. The tasks should be as granular as possible for the estimation to be accurate. At the finest level of granularity, tasks should be short, say for 1-2 days but never to at most a week. Example of tools used for such estimations are- Gantt charts, Microsoft MPP or Microsoft Excel (only works for small projects). It is usually combined with Test point analysis method to reach the actual number of hours required to do a work.

For example, if the project is to test an order flow for ecommerce application, the entire flow needs to be broken down into various modules down to the smallest task before estimating hours for each task.

Example - Tasks for above scenario can be as below-

· Analyze requirement

· Create Test case

· Execute test case

· Identify and report defects

· Retest

Each task can be subdivided into sub-tasks and corresponding resources assigned as shown in figure below. In the real-world cases, the count of resources against each role is used to derive the cost and schedule estimates.

Once the tasks are broken down, the lead estimates Size, Duration, and Cost for the tasks. Each task is categorized as Simple, Medium, Complex, and corresponding weightages are assigned.

Continuing with the example of ecommerce website, take a simple use case of submit order without login-

Next step is to calculate the number of total function points. From the table above, total function points are calculated as below:

Assuming 1 function point is equivalent to 5 hours, Total effort can be calculated as below-

Effort = Total function points * Estimates defined per function point i.e 14*5 = 80 person hours.

  • Three-point Estimation: Another technique which is usually used for estimating the efforts is three-point estimation. It is a simple calculation and hence highly used by project managers.

In three-point estimation, three values are pitched initially for every task based on prior experience or best-guesses. These values are

  • Worst case estimate
  • Best case estimate
  • Most likely or Optimal estimate.

Example- Worst case estimate (w) for a testing task is say 150 hours,

Most likely estimate (m) is 100 hours and

Best case estimate (b) is 80 hours.

So, Effort can be calculated as:

E= (b+4m+w)/6

That is

Effort = (80+4*100+150)/6 = 105 hours

· Percentage of overall project effort: In many organizations, testing effort is calculated as a percentage of overall project effort. This method does not usually account for testing issues especially in complex environment which has multiple integrations available. This method is suitable only for very small and simple projects. It should be avoided for larger projects as it will either result in loss of quality or financial bleeding.

2. Expert Based Techniques: It involves estimating the tasks based on estimates made by the owner of the tasks or by experts of the system or the skill.

This approach relies on experience of a QA team. A team might already have worked upon a similar project which can be used as basis of estimation for the new enhancements or similar projects.

The experience-based approach is difficult to apply to unique or brand-new projects, as the new features/design might not match with an existing product and hence are difficult to estimate.

Also, this technique isn’t suitable for young and immature teams who are at the beginning of their careers since they might lack experience.

Few guidelines to estimate:

  • During estimation, ask for SME experiences. Also, put your own experiences at task.
  • Assume resources will be productive for only 80 percent of their time. There will be unplanned leaves and hence plan accordingly.
  • Include management time.
  • Build in contingency for problem solving, meetings and other unexpected events.
  • Document as much as possible. Document assumptions, inputs, approvals etc.
  • Re-estimate whenever any major event happens in project life cycle which can impact original estimations.

Conclusion: Estimation is an essential part of the test management that lays the foundation for the testing schedule and the budget required. There is no “One size fit all” kind of estimation technique available. The available methods are not fully accurate and can provide only approximate values. They are generally tailored according to the project needs.

*********

Qualitician is the leading career site for professionals working in the software testing industry. Set up your profile, apply to qa jobs, see where you are along the application process, quickly follow up with employers, and let recruiters find you fast.