7 Software Test Estimation Techniques
By Lakshmi Bhadoria, Community Contributor - August 17, 2022
What do you understand by Software Test Estimation?
Estimating test efforts is one of the most critical tasks in the software development process. Software Test Estimation (STE) determines or assesses the time and cost needed during the testing process.
The following factors are taken into consideration to estimate:
- Time required for test
- Cost Required
- Team member(s) needed
- Skills required
This article details some of the most effective and widely used types of estimation techniques in software testing, such as
- Work Breakdown Structure
- 3-Point Software Estimation Test
- Wideband Delphi Method
- Use-Case Methodologies
- Distribution in Percentage
- Method of Ad-Hoc
- Functional Point Analysis
Work Breakdown Structure (WBS)
Work Breakdown Structure (WBS) can be easily understood as a method of breaking down large tasks into smaller, easily executable groups. The aim of this method is to make tasks more approachable and manageable.
In WBS, a testing task gets broken down into smaller modules, and those modules are further divided into measurable sub-modules.
Advantages of Work Breakdown Structure
- Provides support in managing the whole project, including having an overview of the project and allocating responsibilities and resources
- Simplifies the tasks into easy-to-understand modules
Functional Point Analysis
This method can be useful to get the overall picture of software testing estimation. It can help gauge the size, cost, and duration of the project.
Just like WBS, the overall task must be broken into smaller tasks here as well. These smaller tasks can be categorized according to functional points.
Software functionality is expressed from the viewpoint of the user in this technique. These functional points can be first categorized as simple, medium, and complex. The more complex the function point, the more effort is required to test it.
Total Effort = Total Functional Points x Estimate per Functional Point
The above formula calculates an effort’s value based on the task’s time, cost, or size.
Let’s take an example to understand the formula mentioned above:
Let us assume that the development team has developed a new e-commerce website and it needs to be tested.
The task of testing the website will be broken down into smaller modules.
- Module 1: Payment Gateway to be checked
- Module 2: Log-in system to be tested
- Module 3: Recreation or changing of password to be checked
All the modules are to be categorized according to the complexity and given a functional point
|Payment Gateway to be checked||Complex||4|
|Log-in system to be tested||Simple||1|
|Recreation or changing of password to be checked||Medium||2|
Now using the formula, total effort can be calculated
The FP for each module = Number of modules of a certain complexity x FP for that module.
Each module’s Functional Point is then added to have the total FP.
So, the functional point of the simple module is 1×1=1.
2 and 4 are for medium and complex, respectively. Adding all these three will give the Total Functional points
Estimate defined per Function Point: The average effort to complete one function point. This value totally depends on the productivity of the member who will take charge of the task.
Advantages of Functional Point Analysis
- Can assess the size of any project.
- Results are easily understandable by not even the QA team but also clients.
3 Point Software Estimation Test
3 – Point Estimation techniques take into consideration three possible scenarios, the best case estimate, the most likely estimate, and the worst case estimate. Similar to the work breakdown structure, here also, first the tasks are divided into smaller sub-tasks, and then each sub-task is estimated using these 3 – Point scenarios.
- Scenario 1: In this case, it is assumed that any given project has the best resources available with highly skilled experts working, and no difficulty or crisis will come up. After these assumptions points in mind, any estimation technique can be used to come to a most likely value.
- Scenario 2: This scenario assumes to be having enough resources and a skilled team. Most of the things are assumed to go well with very few issues coming up. Using any other estimation technique, now the project is estimated for the most likely case to come to a value.
- Scenario 3: Here the assumption is that the project has limited resources with an improperly skilled team, and most of the things will not go as planned. One can use any estimation technique to come up with a value for the worst case.
So, taking an example to understand how to estimate the time it may take to test an e-commerce website:
- In the best case scenario, let’s assume b = 20 days,
- The most likely scenario may take 30 days, m = 30 days,
- And in the worst case, it may take 50 days, so w = 50 days.
How to Calculate Estimation
The effort to complete the task is calculated using the double-triangular distribution formula –
E = (b+4m+w)/6
E is the value for the estimate
SD = (w – b)/6
SD stands for standard deviation which measures the variability or uncertainty in the estimate. So, taking values assumed to complete testing for an e-commerce website:
E = (20+4(30)50)/6 = 31.67 days
SD = (50 – 20)/6 = 5 days
Therefore, the nearest approximation for the testing estimate can be considered to vary within the range of E+SD to E-SD days. For the above example, the estimate will vary from 36.67 to 26.67 days.
Advantages of 3 Point Software Estimation Test
- Can help in getting a more precise estimation
- Minimizes the chances of failures
Wideband Delphi method
The Wideband Delphi method is a consensus estimation technique where an expert set of panels comes together to determine the most probable outcome. RAND Corporation was the first to use the Delphi Method. They developed the Delphi method originally to forecast the impact of technology on warfare.
In 1970, the Wideband variant of the Delphi method originated. It was called “wideband because it involved more interaction and communication among the people participating.
The expert team usually consists of three to seven people or more:
- Coordinator or moderator,
- Project manager, and
- Other team members who can contribute with their insights on the project.
Generally, the flow goes like this:
The first kickoff meeting happens where the expert team comes together to gather the initial information about the goal and specification of the project. The moderator presents the queries in hand with respect to the estimation for the panel to answer.
In the second meeting, the results of the first estimate are presented anonymously, so the panel is not aware of the person behind the answer to any question, and there are no biases. Results are analyzed. Each expert is presented with a contrasting view, which gives them the opportunity to look at their answers from a different point of view.
Like this, meetings or discussions continue until the whole panel narrows down to a similar estimation.
This technique can be customized according to the panel or the project.
Few pointers to keep in mind while using this method
- To get the overall view, choosing experts from a wide spectrum is very important.
- To get a unanimous answer, it is important to ask the same and relevant questions to each and every expert
- The answers should be shared after each round with the panel anonymously to keep any kind of bias at bay.
Also Read: A Detailed Guide on Test Planning
Advantages of Wideband Delphi Method
- Implementing this method is relatively easy and inexpensive
- Doesn’t need any former data
- High-level and detailed estimations can be carried out using this tool
- Uses expertise of various people
Use – Case Methodologies
Use Case can easily be defined as the scenario or a case where a system is receiving structured instruction from a user to fulfill a goal.
Every use case contains the following elements:
- The actor – Also known as the user interacting with the process. They are external to the system, it can be a single person, a group of people, or an external system.
- The goal – The final successful outcome
- The system – the system is upon which any function is being performed to reach the desired goal
In the use case methodology, every possible outcome is recorded between the actor or the user and the system in a pre-set environment and related to a specific goal. A document is created describing all the steps taken by the user to complete the tasks.
A use case document can help the developers to zero down on the errors that can occur during the exchange between the user and the system, and resolve them.
Advantages of Use – Case Methodologies
- Can be performed during the early stages of the project
- Hard to miss out on the errors.
Also Read: Test Case Prioritization: A Detailed Guide
Distribution in Percentage
In this method, once all the different stages of the testing cycle are determined, every stage is assigned or assessed in terms of percentages. This is to discern how much effort should be put into each stage of the testing cycle.
During any project, it is always best to determine the effort required or should be put into each stage so that bigger problems can be tackled easily and all the resources are not spent on the smaller issues.
For example, if we take the software testing life cycle and assess it using percentage according to the effort required –
Advantages of Distribution in Percentage
- Easy to apply the method.
- Doesn’t require any specific tools.
Method of Ad-Hoc
Ad hoc testing is an undocumented testing practice in which there are no test cases, and the test is performed randomly with the aim of breaking the system and check the responsiveness. It is very useful to find possible errors or defects at an early stage.
Ad-hoc testing works on error guessing, where arbitrarily, any component or part of the system is picked or ‘guessed’ to have an error and to possibly find the source of the error. Error guessing is generally pulled off by an experienced person who is well versed with the system in question.
It is an unstructured testing method, aiming at finding defects randomly; thus, there is no documentation. Therefore, defects cannot be mapped to test cases. This can make reproducing the defect quite difficult.
There are different types of AdHoc testing:
- Buddy Testing: This Ad-Hoc testing takes place after the module has undergone unit testing. The testing is usually carried out by a team of at least two people or two buddies who mutually work on identifying defects in the same module. This team consists of at least one software developer and one software tester.
- Pair testing: Pair testing, unlike buddy testing here, the team consists of only testers rather than one tester and one developer. This team of at least two testers can be chosen according to having different levels of understanding and experience of the system so that they can mutually support each other in sharing ideas, views, knowledge, and finding defects in the system. One can take the role of the tester, and the other can note down the findings.
- Monkey Testing: This testing method is called monkey testing because of its randomness. Test inputs are random, and corresponding outputs are observed for the software under test. Any errors, inconsistencies, or system crashes are determined based on the outputs.
Also Read: 15 Techniques to Improve Software Quality
Advantages of Ad-hoc Method
- No documentation or planning process is required.
- Saves time since elaborate test planning/documentation is not required.
- Can be performed even when there is limited time.
These are our top picks for software test estimation techniques. These methods are not just useful for testing software but can be helpful for the entire software development life cycle or any domain of work where there are important and complex projects.
Above mentioned techniques can be combined with each other to get a much more precise estimation. Getting accurate estimation for any project is a vital step in using the resources, time, and skills to their maximum potential.