Test Estimation Techniques Explained

Test estimation is predicting how much effort and time the testing of a given scope will take. A good estimate is not a single number that later turns out right; it is a range with stated assumptions, produced by a technique others can check, and revised as soon as the facts change.

This guide explains why test estimates go wrong, the factors that drive testing effort, the main techniques — ratio-based estimation, extrapolation, Wideband Delphi, planning poker, three-point estimation and the work breakdown structure — and walks through a complete numeric example, including how to express the result as a range and when to re-estimate.

Why test estimates fail

Most estimate failures are not arithmetic errors. They come from estimating the wrong thing or from treating a guess as a commitment. Testing is especially exposed because part of its effort depends on something nobody knows in advance: how many defects the product contains and how long they take to fix and re-test.

  • Only execution is estimated — test analysis and design, environment and data setup, automation maintenance, defect retesting, regression runs and reporting are forgotten.
  • A single number is given and then heard as a promise, although it was only the most likely case.
  • The estimate is anchored on the deadline: the answer is worked backwards from the date instead of forwards from the scope.
  • Rework is ignored — the plan assumes the first build is good enough to test and that each defect is re-tested once.
  • Dependencies on other teams (builds, environments, third-party sandboxes) are not written down, so their delays look like testing overruns.
  • Scope changes but the estimate does not.
  • The person who estimates is not the person who will do the work, and there is no historical data to compare with.

Factors that drive testing effort

The ISTQB Foundation syllabus (in its 2018 edition) grouped the factors that influence test effort into four families. The grouping is still a useful checklist: before accepting any number, ask how each factor applies to this scope.

  • Product — size and complexity, the quality of the test basis (clear requirements or vague ones), the quality characteristics that must be tested (security, performance, accessibility), required documentation for audit, the number of platforms, devices and languages (Arabic and English, right-to-left layouts), and integrations with external systems.
  • Process — the lifecycle model, the maturity of the test process, tool and automation support, availability and stability of environments, and time pressure.
  • People — skills and domain experience of the testers and developers, team stability, and how well the team works together.
  • Test results — the number and severity of defects found and the amount of rework they cause; a buggy build multiplies re-testing and regression effort.

Try it: Risk-Based Test Generator Try it: AI Risk-Based Test Generator

Metrics-based techniques: ratios and extrapolation

The ISTQB CTFL v4.0 syllabus describes four estimation techniques: estimation based on ratios, extrapolation, Wideband Delphi and three-point estimation. The first two are metrics-based and need historical or current data from your own organisation — numbers from another company or an industry average are a poor substitute.

Ratio-based estimation applies a ratio observed in past projects to the new one. For example, if over the last four releases testing effort was 0.38, 0.42, 0.45 and 0.35 of development effort (average 0.40), and development estimates the new release at 70 person-days, the ratio suggests about 28 person-days of testing. The ratio is only valid for similar work: a release with a new payment integration is not similar to one of UI text changes.

Extrapolation uses measurements from the current project to predict the rest of it. For example, after four days of the first execution cycle a team has executed 48 of 130 planned tests, about 12 per day, and found 9 defects. At that rate the remaining 82 tests need about 7 more days — before the re-testing those 9 defects (and the ones still to come) will cause. Extrapolation becomes more reliable as the project progresses, which makes it the natural technique for re-estimation.

Try it: Requirements → Test Cases

Expert-based techniques: Wideband Delphi and planning poker

When there is little historical data, structured expert judgement works better than one person’s guess. Wideband Delphi is an iterative technique in which experts estimate independently, compare, discuss the reasons behind the differences, and estimate again until the estimates converge or the remaining spread is understood.

Planning poker is widely used in agile teams and is commonly described as a variant of Wideband Delphi. Each member holds cards with values (often a modified Fibonacci series such as 1, 2, 3, 5, 8, 13), everyone reveals an estimate for a user story at the same time, and the highest and lowest estimators explain their reasoning before the team votes again. Estimates are usually relative story points for the whole story, so testing effort is part of the story’s size rather than a separate number — which is exactly why testers must be in the room: a story that is trivial to build can be expensive to test.

  • 1. The coordinator presents the scope and the assumptions to all estimators.
  • 2. Each expert estimates alone and writes down their assumptions.
  • 3. Estimates are shown together, without attributing them if the group prefers.
  • 4. The outliers explain what they know or assume that others do not; this discussion is where most of the value lies.
  • 5. Everyone re-estimates. Repeat until the spread is acceptable, and record the final range and the assumptions.

Three-point estimation

Three-point estimation asks for three values for each task: an optimistic estimate a, a most likely estimate m and a pessimistic estimate b. The weighted mean E = (a + 4m + b) / 6 gives the most likely value four times the weight of the extremes; this is the weighting from PERT. The standard deviation is approximated as SD = (b − a) / 6. The CTFL v4.0 syllabus presents the result as E ± SD.

Two properties make the technique useful. First, pessimistic tails in testing are usually longer than optimistic ones — a build can be weeks late but rarely weeks early — so E is typically higher than m, and the difference is information about risk. Second, the spread b − a shows how uncertain the task is; a task with a wide spread is a candidate for splitting or for early investigation. Treat the SD as an approximation, not a guaranteed probability: it rests on assumptions about the shape of the distribution that real projects do not always follow.

Three-point estimate (PERT weighting)
  a = optimistic     m = most likely     b = pessimistic
  E  = (a + 4m + b) / 6
  SD = (b - a) / 6

Example: design and execute tests for the promotion rules
  a = 6 days    m = 9 days    b = 18 days
  E  = (6 + 4*9 + 18) / 6 = 60 / 6 = 10 days
  SD = (18 - 6) / 6       = 2 days
  Report: about 10 days; E +/- SD = 8-12 days; E +/- 2 SD = 6-14 days

Adding several independent tasks
  E_total  = sum of E
  SD_total = square root of the sum of SD^2   (not the sum of SD)
The pessimistic tail (9 days) is three times the optimistic side (3 days), so E = 10 lands above m = 9; report a range, 8–⁠12 or 6–⁠14 days, not one number.

The three estimates

Axis from 4 to 20
  • 6–9Optimistic side: 3 days
  • 9–18Pessimistic tail: 9 days
  1. 1a = 6 optimistic
  2. 2m = 9 most likely
  3. 3b = 18 pessimistic

What to report

Axis from 4 to 20
  • 8–12E ± SD
  • 6–14E ± 2 SD
  1. 1E = 10 weighted mean(a + 4m + b) / 6: above m, because the tail is longer

Days, for the example task “design and execute tests for the promotion rules”. SD = (b − a) / 6 is an approximation, not a guaranteed probability.

Try it: Test Estimation Calculator

Work breakdown structure: estimate the parts

A work breakdown structure (WBS) splits the testing into tasks small enough to estimate with confidence — typically no more than a few days each — and estimates each one. It is not a separate estimation technique so much as the structure every other technique works on: three-point estimates or Delphi rounds are far more accurate on ten small tasks than on one large one, and the WBS makes forgotten work visible.

  • Test planning and risk analysis; review of requirements and acceptance criteria.
  • Test analysis and design per feature, including test data design.
  • Environment, integration sandbox and test data setup.
  • Automation: new tests and maintenance of existing ones.
  • Execution cycles, including exploratory sessions.
  • Defect reporting, triage support, re-testing and regression runs after fixes.
  • Non-functional testing: performance, security checks, accessibility, localisation.
  • Reporting, test completion report and hand-over.

Try it: Regression Scenario Generator

Worked example: estimating a release with three-point and WBS

For example, take release 4.0 ("one-page checkout") of Bustan Market, the fictional Saudi marketplace used in the test plan guide. The QA lead breaks the testing into six tasks, asks the testers who will do the work for three values each, and computes E and SD per task. All numbers are illustrative.

Task (person-days)                                   a     m     b      E     SD
T1 Test analysis and design (CHK-01..05)             3     5     9    5.33   1.00
T2 Environment, payment sandbox, synthetic data      2     3     8    3.67   1.00
T3 Execution cycle 1, incl. exploratory sessions     6     8    14    8.67   1.33
T4 Automated regression: updates and runs            2     3     5    3.17   0.50
T5 Defect re-testing and re-regression               2     4    10    4.67   1.33
T6 Load test, security headers, accessibility pass   2     3     6    3.33   0.67
                                                          ----         -----
Sum of most likely (m)                                     26          E = 28.83
SD_total = sqrt(1.00 + 1.00 + 1.78 + 0.25 + 1.78 + 0.44) = sqrt(6.25) = 2.5

Effort range (E +/- 2 SD):         23.8 - 33.8 person-days
Cross-check (ratio 0.40 x 70 dev days): 28 person-days  -> consistent

Capacity: 3 testers x 0.75 focus factor = 2.25 person-days per working day
Duration:  28.83 / 2.25 = 12.8 working days   (range 10.6 - 15.0)

Assumptions: build 4.0.0-rc delivered on day 1 and passes smoke; payment sandbox
available >= 90% of working hours; promotion rules frozen before design starts;
no more than one fix-and-retest cycle for High-risk features.

Ranges, buffers, assumptions and re-estimation

Notice three things in the example. The sum of the most likely values (26 days) is lower than the three-point total (28.83), because every task has a longer pessimistic tail — reporting "26 days" would have been the optimistic answer presented as the realistic one. The combined SD (2.5) is smaller than the sum of the task SDs (5.83), because independent overruns partly cancel out; if the tasks are not independent — one bad build delays all of them — the real spread is wider. And the ratio-based cross-check lands close to the result, which increases confidence without proving anything.

Communicate the estimate as a range with its assumptions: "24 to 34 person-days, about 11 to 15 working days with three testers, assuming the conditions listed". Put any buffer where it is visible and owned — a named contingency for the go/no-go decision and for a second fix cycle — rather than padding each task silently, which hides the risk and gets spent anyway. Re-estimate when an assumption breaks, when scope changes, and at fixed points such as the end of the first execution cycle, where extrapolation from real progress and defect rates replaces the original guess.

  • Estimate the whole of testing, not only execution.
  • Let the people who will do the work estimate it; combine views with Delphi or planning poker.
  • Give a range and write the assumptions next to it; an estimate without assumptions cannot be re-checked.
  • Keep contingency explicit and separate from task estimates.
  • Record actuals against estimates each release; that history is what makes ratio-based estimates possible next time.

Frequently asked questions

What is the formula for three-point estimation?

E = (a + 4m + b) / 6, where a is the optimistic, m the most likely and b the pessimistic estimate. The standard deviation is approximated as SD = (b − a) / 6, and the result is usually reported as E ± SD or as a wider range such as E ± 2 SD.

Which test estimation techniques does ISTQB describe?

The CTFL v4.0 syllabus describes estimation based on ratios, extrapolation, Wideband Delphi and three-point estimation. The Advanced Test Management syllabus covers estimation in more depth as part of test planning.

How much of project effort should testing take?

There is no universal percentage. Use your own historical ratio for similar work, and adjust it for the product, process, people and expected defect levels of the new scope. Industry averages quoted without context are not a sound basis.

How do agile teams estimate testing?

Usually as part of the story estimate, in relative story points, using planning poker with the whole team including testers. Testing tasks can also be estimated in hours during sprint planning. The team’s velocity then acts as the extrapolation from past sprints.

Should I add a buffer to my test estimate?

Yes, but make it visible: a named contingency with a reason, such as a second fix-and-retest cycle or sandbox instability. Silent padding in every task hides the risk and is usually consumed by the work anyway.

When should a test estimate be revised?

Whenever scope changes, when one of the stated assumptions turns out false, and at planned checkpoints such as the end of the first execution cycle, when real progress and defect rates allow extrapolation.

References

Practice exercise

Estimate the testing of a video consultation release

Your task

You are the QA lead for a private clinic network’s patient app (fictional): Android and iOS apps and a web booking portal, in Arabic and English. Release 5.0 adds video consultations: book a video slot, pay the consultation fee, join the call from the app or the portal, and receive the prescription as a PDF. Development estimates its own work at 60 person-days, and most of the testing starts when the release candidate (RC) arrives. Yesterday Omar, one of your two testers, answered the product manager’s question with a quick estimate; since then you have run a Wideband Delphi round with Omar and Lina on a work breakdown structure (WBS). The material shows both, the team’s history and the product manager’s question.

Review the first draft, compute the three-point estimate, cross-check it with a ratio, answer the product manager, and write the estimate as you would send it. Then use the checkpoint data at the end of the material to re-estimate by extrapolation. All numbers are illustrative. Use pen and paper or any calculator, keep two decimals, and allow 25–30 minutes.

Material
Patient app of a private clinic network (fictional): Android, iOS, web booking portal
Arabic and English UI. Release 5.0 "Video consultations": book a video slot, pay the
consultation fee, join the call, receive the prescription as a PDF.
Development estimate for 5.0: 60 person-days.
Testers: Lina and Omar, full-time on 5.0 after the release candidate (RC) arrives.
Focus factor from the team’s records: 0.8.

1) Omar’s first draft, sent to the product manager yesterday
   "About 150 test cases. Each of us runs 15 a day, so the two of us need 5 days.
    I doubled it to be safe: 10 working days after the RC. Should be fine."

2) Wideband Delphi on a work breakdown structure (person-days)
   Round 1: the widest disagreement was T3 (Lina m = 1, Omar m = 4). Omar: "In my
   last project the video vendor took several days to approve sandbox accounts."
   Round 2 values:
   Task                                                    a    m    b   When
   T1 Test planning, risk analysis, review of criteria     1    2    4   before RC
   T2 Test analysis and design: book, pay, call, PDF       3    4    6   before RC
   T3 Video and payment sandboxes, test patients/doctors   1    2    7   before RC
   T4 Execution cycle 1 (150 tests, incl. exploratory)     6    8   12   after RC
   T5 Defect re-testing and regression after fixes         2    4    8   after RC
   T6 Calls on weak networks, accessibility, Arabic RTL    2    3    5   after RC
   T7 Automated regression update, report, hand-over       1    2    4   after RC
   Team assumptions: the RC passes the smoke test on arrival; both sandboxes are
   available at least 90% of working hours; T5 assumes about 15 defects in cycle 1
   and one fix-and-retest cycle.

3) Test effort / development effort, actuals recorded by this team
   Release 4.6   New payment method in the app        0.42
   Release 4.7   Text and icon updates                0.15
   Release 4.8   Lab results module                   0.40
   Release 4.9   Appointment reminders (SMS, push)    0.38

4) Product manager (Nasser), at last week’s planning meeting:
   "Can QA finish within 10 working days after the RC?"

5) Later: checkpoint at the end of day 3 of execution cycle 1
   The RC arrived on the planned day and passed the smoke test.
   Executed: 60 of 150 planned tests. Defects found: 12, 7 of them in payment and
   joining a call. The video sandbox was down for half a day.
Steps
  1. Review Omar’s first draft: list what is wrong with it and, for each problem, name the reason the guide gives.
  2. For each task T1 to T7 compute E = (a + 4m + b) / 6 and SD = (b − a) / 6. Then compute the sum of m, the total E, the total SD as the square root of the sum of the squared SDs, and the ranges E ± SD and E ± 2 SD. Which task is the most uncertain, and what do you do about it before the RC?
  3. Cross-check with a ratio: choose the past releases that are comparable, compute the ratio-based estimate and compare it with your three-point result.
  4. Answer the product manager: compute the effort after the RC (T4 to T7), the team’s capacity per working day, and the duration with its range. Can you commit to 10 working days? If not, what options do you offer?
  5. Write the estimate as you would send it: the range, the assumptions, a named contingency and the points at which you will re-estimate.
  6. At the checkpoint, extrapolate the end of execution cycle 1, say which assumptions broke, update the forecast for the work after the RC, and decide what you do next.
Show the model answer
Model answer

1. Omar’s first draft is a typical failed estimate, and every problem in it has a name in the guide. (1) Only execution is estimated: test planning and the review of the acceptance criteria, test analysis and design, the video and payment sandboxes and test data, re-testing and regression after fixes, non-functional testing (calls on weak networks, accessibility, Arabic right-to-left layout), automation and reporting are all missing — that is T1 to T3 and T5 to T7 of the work breakdown. (2) Product factors are ignored: three platforms (Android, iOS, web), two languages and a new external video integration; it is not even clear whether the 150 test cases cover all three platforms. (3) The rate of 15 test cases per tester per day has no stated source in the team’s records, and nothing shows that it allows for the focus factor of 0.8 that those records do give: two testers deliver about 1.6 person-days of test work per working day, not 2. (4) Doubling is padding without a reason or an owner, not a named contingency. It also lands exactly on the 10 days the product manager asked about at last week’s planning meeting, which suggests the answer was worked backwards from the date instead of forwards from the scope. (5) Rework is ignored: the draft assumes the RC is testable and that no defect needs re-testing, and the dependency on the sandboxes is not written down. (6) It is one number from one person, without a range or assumptions, and "Should be fine" will be heard as a promise.

2. Three-point estimate. T1: E = (1 + 8 + 4) / 6 = 2.17, SD = (4 − 1) / 6 = 0.50. T2: E = 25 / 6 = 4.17, SD = 0.50. T3: E = 16 / 6 = 2.67, SD = 1.00. T4: E = 50 / 6 = 8.33, SD = 1.00. T5: E = 26 / 6 = 4.33, SD = 1.00. T6: E = 19 / 6 = 3.17, SD = 0.50. T7: E = 13 / 6 = 2.17, SD = 0.50. Sum of m = 25 person-days; total E = 162 / 6 = 27.00 (the rounded column adds up to 27.01). Total SD = sqrt(0.25 + 0.25 + 1 + 1 + 1 + 0.25 + 0.25) = sqrt(4.00) = 2.00, while the plain sum of the SDs is 5.00. Range: E ± SD = 25 to 29 person-days; E ± 2 SD = 23 to 31 person-days. Reporting 25 — the sum of the most likely values — would present the optimistic answer as the realistic one.

T3, T4 and T5 share the largest SD (1.00), but relative to its size T3 is the most uncertain: it runs from 1 to 7 person-days for a most likely value of 2, because of Omar’s experience with the vendor’s sandbox approvals. That is what Delphi round 1 was for: the outlier explained what he knew, the team re-estimated, and the risk is now visible in b instead of being argued away. Do not wait for it: request the video and payment sandbox accounts and the test doctor accounts now, during development, and record "sandbox accounts approved before T3 ends" as an assumption. T4 and T5, the two largest tasks, have the same spread (6 person-days), and both depend on the quality of the RC, so they are not independent: if the RC is poor, both overrun together and the real spread is wider than 2.00.

3. Ratio cross-check. Release 4.7 (text and icon updates) is not comparable with a release that adds a new external integration, so leave it out. The other three — a new payment method, a new module, reminders over SMS and push — are: (0.42 + 0.40 + 0.38) / 3 = 0.40, and 0.40 × 60 = 24 person-days. Including 4.7 would give an average of 0.3375 and about 20 person-days, an understatement. Compare 24 with the total E of 27, not with the work after the RC, because the ratios cover all of testing. 24 lies inside the range 23 to 31 and a little below E, which is plausible for a release with a new video vendor, three platforms and weak-network testing. The cross-check increases confidence without proving anything.

4. The product manager’s question. T1 to T3 (E = 54 / 6 = 9.00 person-days) are done while development is still running, so only T4 to T7 count after the RC: E = 108 / 6 = 18.00 person-days, SD = sqrt(1 + 1 + 0.25 + 0.25) = sqrt(2.5) = 1.58, so E ± 2 SD = 14.84 to 21.16 person-days. Capacity: 2 testers × 0.8 = 1.6 person-days per working day. Duration: 18.00 / 1.6 = 11.25 working days, range 14.84 / 1.6 = 9.3 to 21.16 / 1.6 = 13.2 working days. Ten working days give 16 person-days of capacity, less than E: possible only if the work goes better than most likely, so do not commit to it. Offer options and let the product manager decide: keep the date and agree which lower-risk tests are reduced, with the residual risk recorded; add capacity after the RC (on paper a third tester gives 2.4 person-days per day and 18 / 2.4 = 7.5 working days, but a newcomer needs time to learn the product, so re-estimate with that person); move work before the RC, such as the automated regression update in T7 and accessibility checks on early builds; or accept about 11 working days plus the contingency below.

5. The estimate as you would send it: "Testing for release 5.0 (video consultations): about 27 person-days, range 23 to 31, from a three-point estimate of seven tasks by the two testers who will do the work; the ratio from three comparable releases gives 24. About 9 person-days are done before the RC. After the RC: about 18 person-days, that is about 11 working days with two testers (range 9 to 13), so 10 working days cannot be committed; options attached. Assumptions: the RC arrives on the planned day and passes the smoke test; the video and payment sandboxes are available at least 90% of working hours, with accounts approved before T3 ends; about 15 defects in cycle 1 and one fix-and-retest cycle; scope as in the acceptance criteria reviewed in T1; Lina and Omar full-time on 5.0 after the RC, focus factor 0.8. Contingency, held by the product manager for the go/no-go decision: a second fix-and-retest cycle for payment and call joining, about 4 person-days (2.5 working days). We re-estimate at the end of day 3 of execution cycle 1, at the end of cycle 1, and whenever scope changes or an assumption breaks." The contingency is sized from T5’s most likely value and kept outside the task estimates instead of being spread over them silently.

6. Checkpoint. Extrapolation: 60 tests in 3 working days is 20 per day; the remaining 90 need 4.5 more days, so cycle 1 takes 7.5 working days instead of about 5.2 (8.33 / 1.6). 7.5 × 1.6 = 12 person-days: T4 is running at its pessimistic value. Defects: 12 in 60 tests; at that rate about 30 by the end of the cycle, twice the 15 assumed — a rough indication only, because the defect rate changes during a cycle. Two assumptions broke: the defect count, and sandbox availability (2.5 of 3 days, about 83%, below 90%); the RC assumption held. Updated forecast after the RC: T4 12 + T5 about 8 (scaled with the defect count, which is its pessimistic value, until Lina and Omar re-estimate it) + T6 3.17 + T7 2.17 = 25.33 person-days (25.34 if you add the rounded values), that is 25.33 / 1.6 = 15.8 working days after the RC instead of 11.25 — outside the original range of 9 to 13, with about 12.8 working days still to go from today. T4 and T5 moved together, as expected for tasks that depend on the same build.

What you do now: tell the product manager today, with the new forecast and the two broken assumptions, not at the end of the cycle; ask Lina and Omar for new three-point values for the rest of T4 and for T5; run the remaining high-risk tests (payment, joining a call) first, so that any scope decision removes lower-risk tests; share the defect cluster — 7 of 12 in payment and call joining — with the development lead, because it drives the re-testing effort; raise the sandbox outage with the owner of the vendor relationship; and tell the product manager that the second fix-and-retest cycle in the contingency is now likely to be needed. At the end of the release, record the actual effort against the estimate, so that 5.0 becomes a data point for the next ratio.

If your numbers differ, check that E uses 4 × m, that the total SD is the square root of the sum of the squared SDs and not their sum, that capacity applies the focus factor, that the ratio uses only comparable releases and is compared with the total E, and that a duration is person-days divided by person-days per working day. Rounding differences in the second decimal are fine.

Your progress on this topic

Part of the QA Roadmap

Tools mentioned in this guide

Estimate test effort with the three-point formula: list tasks with optimistic, most likely and pessimistic values and get PERT estimates, ranges and team days.

Test Design New

Score features by likelihood and impact, then generate a prioritised risk-based test plan.

Test Design

Identify risks for a feature or release and generate a prioritised risk-based test plan with Mutqan AI.

Test Generation AI

Convert a list of numbered requirements into traceable test cases with a requirement-to-test matrix.

Test Design

How Mutqan Soft can help

More guides

More guides