What this estimate does and does not do
This calculator gives an early test-effort estimate from functional lines of code and a selected criticality/testing profile. It is intended for rough planning, staffing conversations, QA capacity checks, and sanity-checking whether a test schedule is obviously underfunded.
It is not a replacement for a proper test strategy, risk analysis, safety case, regulatory plan, or historical team estimate. LOC-based estimates are crude: a small amount of complex code can require far more testing than a large amount of simple glue code. Critical systems also require standards-specific evidence that this calculator cannot model.
Formula used
base person-days = functional LOC / 10 × days per 10 LOC
overhead % = defect retest % + regression buffer % + planning/reporting buffer %
total person-days = base person-days × (1 + overhead %)
total hours = total person-days × work hours per day
calendar days = total person-days / tester count
calendar weeks = calendar days / work days per week
cost = total hours × hourly loaded costProfiles are ranges, so the calculator reports low and high estimates.
Worked example
For 1,000 functional LOC using the standard product QA profile, with 0.05–0.15 days per 10 LOC, 35% total overhead, two testers, 7.5-hour days, and $90/hour loaded cost:
base person-days = 1,000 / 10 × 0.05–0.15 = 5–15 days
total person-days = 5–15 × 1.35 = 6.75–20.25 days
hours = 6.75–20.25 × 7.5 = 50.6–151.9 hours
calendar weeks = (6.75–20.25) / 2 testers / 5 days = 0.68–2.03 weeksFor a safety-critical profile using one day per 10 functional LOC, the same 1,000 LOC would start at 100 base person-days before buffers.
Profiles used
The calculator includes editable profiles:
- Standard product QA: 0.05–0.15 days per 10 LOC
- Manual-heavy / complex application: 0.15–0.35 days per 10 LOC
- Regulated / high-assurance software: 0.35–0.75 days per 10 LOC
- Safety-critical rule of thumb: 1.0 day per 10 LOC
- Custom range
Use your own historical throughput when possible. If your team tracks test creation, execution, defect verification, and regression effort by feature or release, that data is more valuable than generic rules of thumb.
How to use the result
- Use the estimate as an early planning range, not a fixed commitment.
- Compare person-days to available tester capacity and release dates.
- Increase the profile or buffers for high-risk modules, poor requirements, weak automation, many integrations, or many supported devices/browsers.
- Break large systems into modules or features and estimate each separately.
- Pair this with the Software Defect Density Benchmark Calculator to reason about likely defect volume.
Assumptions and limitations
- LOC is a weak proxy for complexity.
- The calculator assumes testing effort scales roughly with functional LOC within a profile.
- It does not model test case count, requirements count, UI complexity, test data, automation maturity, environment readiness, or certification evidence.
- Safety-critical and regulated software must be estimated against the applicable standard and assurance process.
- Underestimating defect retesting and regression time is a common planning failure.
Frequently asked questions
How does this calculator estimate software test effort?
It multiplies functional LOC by a days-per-10-LOC testing rate, then adds buffers for regression, defect retesting, planning, reporting, and other overhead.
What does one day per 10 functional LOC mean?
It is a coarse rule of thumb sometimes cited for software-critical applications. It is not a universal productivity standard and should be calibrated with actual project history.
Should I include generated code, comments, or blank lines?
No. For this estimate, use functional, hand-written code in the scope of testing wherever possible. Generated code and comments can distort LOC-based estimates.
Can this replace a standards-based safety-critical test plan?
No. Safety-critical software may require traceability, independence, coverage analysis, reviews, tool qualification, audits, and formal evidence required by the applicable standard.
Why include defect retest and regression buffers?
Test execution is not the whole testing job. Defects must be reproduced and verified, existing behaviour must be checked for regressions, and testers need time for planning, reporting, and environment issues.