Software Test Estimation Techniques
Software testing is an essential process in the whole development cycle, and it should not only be appropriately conducted but also regularly at various development stages. It influences the end-product quality, reliability and eventually, even the user experience. Hence, there is no doubt that testing needs a lot of emphasis put on it. One of the essential things in terms of the QA process and tests organisation is an estimation. Why? Simply because time is money, and setting a testing schedule helps to calculate the approximate budget. To help QA teams with that, many effective software testing estimation techniques are available.
What is software test estimation?
A software test estimation is a rough calculation of how much time, resources and effort is needed to complete the task. All of the parameters from estimation, not only the time, are important. To estimate the duration of testing activities, Project Managers, QA Team Leads, or other delegated team members use man-hours/person-hours or man-days/person-days. Defining how much it will take to accomplish the testing activities help plan a project development schedule better. Moreover, with a testing plan, the QA team can meet deadlines more accurately. When it comes to other resources, they can be people, infrastructure, equipment, other technical capabilities and, of course, money. Defining all the assets required in the testing process is necessary to minimise the risk of possible failure and ensure the team has everything they need to succeed. To sum up, estimations help the team optimise processes, not exceed the budget, designate resources optimally and be effective.
What are the test estimation techniques?
To estimate correctly, efficiently and comfortably, many experts have developed software testing estimation techniques to estimate correctly, efficiently, and comfortably over the years. They are dedicated tools that facilitate the test estimation process by providing various templates, formulas and ideas. They take into account different factors, data, use cases and other relevant determinants. Some of the techniques can be even used with each other to achieve more remarkable results.
What are the different types of estimation techniques?
Below we describe five popular estimation techniques in software. Most of them are used to forecast various development tasks, not only testing itself. Take a look at their characteristics.
The Wideband Delphi technique, named after the mythical Oracle of Delphi, is a consensus-based method for estimating effort. It derives from an older forecasting tool, the Delphi method, developed in the 1950s – 1960s. The Wideband Delphi technique aims to gather information from surveys of the experts that are included in the testing process. The project manager selects a moderator and an estimation team of three to seven members. There are two meetings run by the moderator in this technique. The first one is the kickoff meeting, during which the estimation team creates a work breakdown structure (explained below). The experts discuss the given task under the manager’s supervision and make individual forecasts anonymously after the meeting. The second meeting is the estimation session, in which the team revises the estimates as a group and achieves consensus. After the estimation session, the project manager summarises the results and reviews them with the team. At this point, these results are ready to be used for planning the project.
Function Point Analysis (FPA)
Function Point Method is used in software development in general, not only for testing. It estimates the task’s time, cost, or size – basically, the total effort needed to finish the assignment. It requires dividing the project into modules and assigning a function point to them depending on their complexity. A functional point is a unit that measures the amount of functionality that a given part of a project provides to a user. Each task is assigned with some points based on the FPA rules, and then these points are summarised using the dedicated formula. Simple tasks get lower points; complex tasks accordingly get higher points. The final figure shows the total man-hours required to achieve the complete requirement. This testing estimation technique is considered not very accurate and involves some risk.
Work Breakdown Structure (WBS)
The Work Breakdown Structure method is about breaking down the project into smaller parts. In the case of testing, the whole process is divided into smaller tasks that can be further divided into subtasks that, in turn, can be divided into modules, submodules, and so on. After breaking down the work, all the functions should be carefully analysed to see if each and every function is included in the WBS. Since small tasks are much easier to estimate, they are distributed among team members. Each team member takes responsibility for a specific task and reports the result within a particular time frame. Thanks to this, the project can be carefully checked step by step without losing any details and not duplicating the checking of the same task by several testers.
With such a hierarchical breakdown structure, it is easier for QA team members to estimate how much time and other resources are needed to accomplish each task. Thanks to this, WBS helps the project manager and the team to create a better schedule of tasks and a detailed cost estimate of the project.
Use Case Points (UCP)
The UCP concept is based on use cases. The software size (UCP) is calculated from the system use case elements, considering technical and environmental factors. The UCP for the project can then be used to calculate the estimated effort for the project and, therefore, the testing part.
The UCP can be calculated once the unadjusted project size (UUCW and UAW), technical factor (TCF) and environmental factor (ECF) have been determined. The UCP is calculated based on the following formula:
UCP = (UUCW + UAW) x TCF x ECF
The UUCW is one of the factors that contribute to the size of the software being developed. It is calculated based on the number and complexity of the use cases for the system. The UAW is calculated based on the number and complexity of the actors for the system. The TCF is applied to the estimated size of the software to account for technical considerations of the system. It is determined by assigning a score between 0 (factor is irrelevant) and 5 (element is essential) to each of the 13 technical aspects. The ECF is applied in order to account for environmental considerations of the system. It is determined by assigning a score between 0 (no experience) and 5 (expert) to each of the 8 environmental factors.
Three-Point Estimation / Program Evaluation and Review Technique (PERT)
The three-point estimation technique estimates the probability that will show the outcome of future events based on limited information. In a three-point estimation, three numbers are initially produced for each required distribution, based on previous projects experience:
a = the best-case estimate
m = the most likely estimate
b = the worst-case estimate
They are then combined to obtain either the entire probability distribution, to later connect with distributions obtained similarly for other variables, or to extract the mean or percentage points of the distribution.
The Program Assessment and Review Technique (PERT) also relies on three variables to predict the duration of a project: the most optimistic, the most pessimistic and the most likely case. Once all three variables have been defined, the estimate is calculated using the following formula:
(E) = A + (4 * M) + B / 6
How do you do test estimation in Agile?
Agile methodologies such as Scrum or Kanban are characterised by an iterative approach. Unlike cascade project management, where the effort is focused on delivering a pre-prepared plan, changes are a natural part of product delivery in this approach. Therefore, the estimation of work on the project and its individual elements focuses primarily on the cooperation of all members of the project team and quick action and decision making. Most Agile estimation techniques use relative units instead of currency or time units. We are not trying to estimate dollars or even days. Instead of it, we use “points” and different labels to contrast things. Such a relative comparison of various factors is a much more convenient and flexible approach in the case of Agile methodologies. The most popular Agile Estimation methodologies include Planning Poker, Dot Voting, The Bucket System, Ordering Rule, and Affinity Mapping.
Software development life cycle is hugely influenced by deadlines and meeting them promptly. Estimating the duration of each assignment, including the testing phase and its individual tasks, gives more space to react if something goes wrong, helps develop the project schedule and approximate budget more accurately, equipping the project with proper human skills and preparing the team better. We will not choose the best software testing estimation technique as every project team has its own preferences. It is crucial to fit the method to the needs, workflow and skills. Nevertheless, what is essential is that estimates are a vital part of any software development planning and are of great use in this process. Knowing the different estimation techniques will undoubtedly be valuable and help you approach this operation better and more efficiently by choosing the most optimal one.