The ART of Software Test Estimation

By Globit Oliver on December 31, 2014

Importance of Test Estimation

Before going forward let’s consider some basic questions like what is use of test estimation? Or why this is needed? Or who will do this?  For the success of every software projects, test estimation is very important. To begin with, let’s see what Test Estimation Technique is. Test Estimation techniques are used to manage software testing activities effectively. Test estimation is a management activity which approximates how long a Task would take to complete. Estimating effort for the test is one of the major and important tasks in Test Management. Sometimes, even expert project managers have real trouble estimating the time and resources to allocate for testing. The two important questions that we can expect from our project clients when discussing the test engagements are “How long will the testing take?” and “How much the testing will cost? “.Test estimation and its techniques helps us to answer these questions. The vital parts in test estimation techniques includes effort, time, cost, and resources. All these factors impact the test development schedule, delivery, and standard of quality. In general test estimation is a test management activity which reduces unnecessary QA/testing budget and ensures controlled testing assuring impartial test results.

12

Importance of test estimation in Software Industry

Before starting one common question arises in the testers mind is that “Why do we estimate?”. The simplest answer is that to avoid the exceeding timescales and overshooting budgets for testing activities we estimate the task.

Test estimation techniques has greater impact on following Software Industry factors.

  • Cost-Cost is the project Budget. In general Test Estimation techniques helps to identify how much money it takes to finish the project.
  • Time: Time is one of the valuable factor in a software project. Test Estimation helps to manage this factor effectively.
  • Human Skills: Human skills mean the knowledge and the experience of the Testing Team members. Test estimation plays a vital role in identifying human skills of testers

Types of Software test estimation techniques.

Are you familiar with following test estimation techniques?

  • Three point Estimation

It is a technique in which each testing task is divided into sub tasks and then three types of estimation are done on each tasks. First estimation is the best case estimation i.e., assume everything goes well. The second number is the worst-case estimate; i.e., assume our worst fears are realized. The third number is the expected-case estimate. The average of the expected cases is the final estimate, but the best case and worst-case estimates are documented to understand the accuracy of the estimate and to feed into the test planning and risk management processes.

The standard formula used for this technique is

Test Estimate = P + (4*N) + E / 6

Where P = Positive Scenarios, N = Negative Scenarios, E = Exceptional Scenarios.

Standard Deviation (σ) gives the information about the probability that the estimation is correct.

(σ) = (N – E)/6

Let’s see this with a concrete example.

We think that in the best case we need 3 days to finish a task, most likely this is going to be 5, but in the worst scenario, in case where we need to perform much more work because not all the details would be provided, we believe that it is going to take 10 days.Applying the formula: Test Estimate = (3+ (4*5) +10)/6=5.5 days

(σ)= (10-3)/6=1.67

Conclusion: 5.5 days would be our estimation for the given task.By knowing that +-1 sigma represents 68% possibility, we could conclude that:With confidence of 68% we need from 3.83 to 7.17 days (5.5 +- 1.67) to finish the task.

  • Delphi Method

This method involves a panel of test experts iteratively discuss about the efforts put in a testing project and giving their judgments and narrowing down on the judgments given by each expert with next iteration and reaching out a consensus.  A work structure is broken down for each task and is distributed to a team comprising of 3-7 members for re-estimating the task. The final estimate is the result of the summarized estimates based on the team consensus.

  • Work Break down Structure(WBS)

Around 90% of software testing estimations are done using this technique. It is created by breaking down the test project into small pieces. Modules are divided into sub-modules. Sub modules are further divided into functionality and functionality are divided in sub-functionality. The success of a test project can be determined only using efficiency of WBS.

24

  • Use Case Point Estimation technique

This testing technique is based on use cases. The concept is similar to WBS, in which task is broken down into sub tasks and and three type of estimation are done on each chunk.

Let us assume the following:

a=Optimistic Estimate (Best case scenario in which nothing goes wrong and all conditions are optimal.) 

b=Pessimistic Estimate (worst case scenario which everything goes wrong.)

m=Most Likely Estimate (most likely duration and there may be some problem but most of the things will go right.) 

Here the formula to find the value of estimate E=a + (4*m) + b / 6

Standard Deviation (SD) = (b – a)/6

  • Planning Poker

In this technique, to estimate the time required for testing efforts on individual tasks, each task is written down on a separate piece of paper and distribute to the team members and allow some time for a discussion to take place.After the first round of discussion, each deck the numbered card that represents his estimate of how much work is involved in the story under discussion. All estimates are kept private until each participant has chosen a card. At that time, all estimates are revealed and discussion can begin again.

 

Software Test Estimation Tools:

  • MS Excel Spreadsheet using formula
  • QSM SLIM-Estimate- SLIM-Estimate helps you estimate the cost, time, and effort required to satisfy a given set of system requirements and determine the best strategy for designing and implementing your software or systems project.
  • GERT-An empirical reliability estimation and testing feedback tool.

Conclusion:

There may be several other estimation techniques which can be used for estimation of software projects .In this blog we have seen the most important testing techniques and the factors affecting it.

In order to achieve better test estimation I would like to suggest following tips.

Tips to consider while estimating software projects

  • Take into account the bug cycle-The testing cycle is interlinked with the bug cycle, and any problems in stability of the software you’re working one may require additional time for developers to fix it, consequently extending the testing cycle as well.
  •  Time is money:-Make sure to consider the availability of physical (and human) resources in your test estimation.
  • Comparative testing: If you have worked on previous (or similar) versions of the current task, then base your estimates using data from the previous project.

Leave a Reply

SCROLL TO TOP