The struggle to keep costs low without jeopardizing the safety or effectiveness of the product is the primary focus of any production business. One area of error comes from the difficulty of accurately estimating how much testing is necessary and, from there, how much to allocate resources to the testing process. This is where test estimation needs to come in.
Estimating costs is only possible after estimating other factors, such as the effort and time involved, so it’s important to know the useful techniques available to establish these estimates. Without these, testers and clients might find themselves at odds and run the risk of a dangerous negotiation process in which both parties ultimately lose out.
To better understand why here’s a look at what testing cost estimation means in software and what it entails.
The Definition and Difficulty of Testing Cost Estimation in Software Projects
As part of a healthy QA process, there needs to be a balance between cost and quality of testing. In an ideal world, one wouldn’t take from the other, but in reality, as with everything about development, there are limited resources to allocate, and testing needs to be able to stick to a budget.
Optimizing this testing budget while hitting acceptable quality targets is the continued struggle of every CTO, and accurate testing cost estimations are the key to overcoming it. This is a lot easier said than done since there are numerous stakeholders who all have different perspectives on the right timing of the preparation of testing and the defined parameters for the specific assessment of the test cases.
When outsourcing testing, the client is incentivized to keep the costs as low as possible without reducing the scope. Usually, if the test effort is estimated based on the test history of similar projects, this leads to ongoing discussions about how to make the testing times shorter. If this is agreed upon, the cost of testing is reduced, and whether or not this turns out to be a good thing or a bad thing varies greatly.
While in-house or experienced testers may know the systems well enough to compensate for this, inexperienced testers will be left with a dilemma: rush the testing or miss deadlines, which is one of the major issues that arise with cost estimation based on time and effort only.
It’s therefore important that evaluation criteria for test effort estimation are established, accessible, and agreed upon by both parties in advance and that there is a culture of mutual respect between the tester and the client. In short, accurate test estimation techniques are essential for the accurate assessment of the test cost. So, what are these techniques?
Test Estimation Techniques Worth Paying Attention To
Test estimation techniques are used at the beginning of the project to determine how long you’ll need to finish a project, how much effort will be required, and what the necessary skills will be. Each of these factors plays a role in cost, as well as numerous other factors that should be taken into account including:
- Quality required – over-engineering your testing will increase cost without improving quality, so it’s important to have a quality target from the start.
- Benchmark data – Previous, similar projects will provide a benchmark to compare your estimates.
- Types of testing – And whether they can be automated. This will affect both time and human resource requirements.
- Metrics and KPIs – These need to be agreed upon and explored transparently so that all relevant stakeholders are kept in the loop.
- Human resources – Your teams, whether you’re outsourcing or testing in-house, will have their own requirements too.
Each of these factors either has an effect on the overall cost or can help establish an estimate of it. For testing, this means they need to be identified and analyzed to the point at which stakeholders understand the time and effort associated with them.
The most widely used test estimation techniques are used to identify how these factors work together on each component of the testing process and provide insights into how to allocate resources and get an accurate testing cost estimation for the project as a whole. Here are some of those techniques:
Program Evaluation Review Technique (PERT)
This technique breaks down each testing task into its component pieces and creates a three-tier estimate from optimistic, though most likely, and worst-case scenarios. A PERT chart is a graphical representation of the timeline with each of the individual tasks laid out, and an estimate is formed around the time it’s expected to take to achieve each one.
Work Breakdown Structure
WBS is similar to the above in that it breaks down the project into smaller components. These components are subdivided, and each sub-module is then separated into functionalities. Functionalities are then broken down again, and each sub-functionality is reviewed in terms of its testing requirements.
From there, the number of tasks can be listed, and the efforts estimated.
Wideband Delphi Technique
When the above WBS is delegated to several members to re-estimate, this provides a WD estimate based either upon the averages or the consensus among the teams as a result of conferring about their results. This approach gets new perspectives onto the estimate and is a way of improving the accuracy of estimates.
Function Point Analysis
FP estimation is a technique used to measure requirements based on different functions. A formula is used to calculate the total hours required to complete each requirement. This is another estimate of the time required to complete the project.
Test Case Point Analysis
This analysis measures the size of the core test case used when performing test execution. The size of this test case is checked against elements of complexity. This is a simple metric to implement and is useful to get a feel for the complexity of test cases.
When the phases of the entire software development lifecycle are broken down, they can each be assigned a percentage value based on data from similar projects. This value represents the amount of effort required for each phase.
Experience-based Testing Estimation Technique
This is a technique much like the WD technique in that it relies on experts and metrics collected from previous projects; however, while Delphi is a consensus-based estimation technique, this is experience-based. Subject-matter experts familiar with the application contribute to the assessment to estimate testing effort.
As you can see, multiple estimation techniques cover both the time and effort required, and with these two metrics, it’s usually a lot simpler to agree on the overall cost of the testing process. The transparency that these tests bring to the resource allocation discussion usually allows for a much smoother and more open negotiation procedure, whether it’s a client dealing with outsourced testing or in-house testers approaching management with a budget.
Estimating cost based on time expenditure alone doesn’t tell the full story in many contexts. As you can see from the list of techniques above, a good test estimation technique should be able to mix expertise, data, and consensus-driven analysis to come to a more accurate estimation of cost for software testing in which all parties are satisfied.
Beginning with effort estimations and the corresponding estimations for the time it’s likely to take under any given effort metric, it’s easier to get all stakeholders in agreement with what testing requires, and this naturally leads to a more agreeable quotation of cost for the full testing process.