A successful launch of any software product largely depends on testing activities. Therefore, every developer should be properly prepared for this process by setting a reasonable testing schedule, calculating the budget, as well as allocating the required resources and personnel. In this article, we will have a look at the most popular software estimation techniques that can help your team assess your project adequately and complete your task effectively.
Why are the software testing procedures crucial for every development company? Because it’s always better to find and fix bugs at the development stage rather than to cope with them after release. Capers Jones revealed that eliminating errors during the post-release phase costs businesses $16,000 while they could have spent just $25 at the design stage.
Why Do You Need to Apply Estimation Techniques?
As a rule, people tend to underestimate the complexity of unfamiliar tasks. This results in an underestimation of the time and effort required to conduct the quality assurance and testing activities. For instance, we forget that our net productivity may be reduced by the following factors: participation in various meetings and calls, studying technical documentation, solving problems with software and other urgent issues, force majeure, and so on. This may lead to inaccurate time and effort estimation, delays in testing procedures, insufficient resources, financial losses, and, finally, failure of your software product in the market.
Using testing estimation techniques will help the project management avoid such painful situations. In addition, they will be able to provide a customer with detailed, well–reasoned information about the project, carry out tests in time without budget overrun, and meet the customer’s demands.
What Do Testers Estimate?
You should clearly calculate how much time you need to carry out the testing process, as well as how long it will take to correct errors and prepare appropriate reports.
You should carefully determine the list of resources required to test your software product. If you don’t have enough tools and instruments, the testing process will be interrupted. You will need more time to find new resources and, most likely, won’t be able to stick to the timeline. Try not to engage too many resources. Otherwise, they will simply be idle or wasted.
This section also includes human skills. You need a highly professional and experienced team to perform estimation activities in due course and obtain reliable results.
When preparing for the testing process, you need to calculate the budget. An incorrect estimate can lead to shortages or cost overruns.
Popular Software Testing Estimation Techniques
There are many software testing estimation techniques. Let’s take a look at the most popular ones.
Program Evaluation and Review Technique (PERT)
The program evaluation and review (PERT) technique, also known as three-point estimation, is one of the most widely used methods among testers. The idea behind this approach is simple — the task is broken down into subtasks, which are estimated using three variables:
- O — the most optimistic use case. It’s assumed that your team consists of highly professional specialists, you have all the necessary resources, nothing will go wrong during the testing process, and all tasks will be done well and in time. The task is expected to be completed in 100 person-hours.
- M — the most likely use case. It’s assumed that you have experienced staff and enough resources, but there can be some minor issues. However, these problems won’t result in schedule delays or reworking. The testing process is expected to be performed in 150 person-hours.
- P — the most pessimistic use case. It is the worst situation when your team can’t perform their duties well and everything goes wrong. It is expected to take 200 person-hours to complete the task.
When the testing team members determine all three variables, they will be able to calculate the test estimate (E) according to the following formula:
So, if O = 100, M = 150, and P = 200, the test estimate is 150 person-hours.
The standard deviation for this test estimation technique is calculated in the following way:
It turns out that you need 150 +/- 16.7 person-hours to complete the task.
- PERT allows you to look at all possible scenarios that may take place during the software testing process, as well as identify and mitigate risks.
- The three-point estimation method provides testers with a realistic estimate.
- The PERT test estimation technique isn’t suitable for large projects because they include too many variables.
- Since the three-point estimation approach uses subjective estimations, there may be some mistakes.
Work Breakdown Structure (WBS)
This test estimation technique resembles the brainstorming method. As a consequence, the work breakdown structure is regarded as one of the most effective approaches to estimate the cost and duration of the software testing process.
Like PERT, it also involves breaking the whole task down into various subtasks that, in turn, can be divided into modules, submodules, etc. For example, one team member will test every possible scenario, the second one — reveal bugs, the third one — fix them, the fourth one — report errors to the project manager, and so on. Then the team lead will be able to estimate the size and duration of the testing project, plan the budget, set the schedule, and calculate the required number of person-hours.
The work breakdown structure testing estimation technique provides a very detailed diagram where the tasks of the software test process reflect their relationship to each other and to the process itself. This approach allows the team members to predict results based on different use cases. The process is often described as a branch structure that covers every step of the project in an organized manner.
When applying the work breakdown structure technique, you make the following steps:
Step 1. Split your task into small subtasks.
Step 2. Break down modules into submodules.
Step 3. Break down submodules into functionalities.
Step 4. Split functionalities into subfunctionalities.
Step 5. Check that the WBS contains all the testing requirements.
Step 6. Define how many tasks your team needs to perform to complete the testing activities.
Step 7. Estimate the total effort for your project.
Step 8. Estimate the duration of your project.
- The work breakdown structure testing estimation technique provides a detailed and clear estimate.
- Being represented in the form of a diagram or table, this method allows the project manager to easily track progress.
- Estimates received using WBS may become obsolete when customer’s requirements or specifications change. This will require your team to re-evaluate the project.
- This technique requires a lot of resources, knowledge, and a highly experienced team.
Use Case Points (UCP)
Developed by Gustav Karner, the use case point (UCP) testing estimation technique is based on the use cases of the project. It considers non-functional requirements, organizational risks, estimation competencies, and other criteria. In order to calculate the duration of your testing project, you should take into account the following variables:
- Actors — users of your software or programs that interact with your software;
- Adjusted and unadjusted use case weights and points — things that have an impact on the size of your project;
- Environmental complexity factors — eight factors that influence the size of your project at the environmental level;
- Technical complexity factors — ten factors that influence the size of your project at the technical level.
Estimation team members assess every variable based on their complexity and impact on the project. After that, they are able to calculate the total size of the project using the following formula:
OK, we’ve determined the size of our project. Now, it’s time to find out how much time we need to carry out the testing procedures. We can do it in two ways:
- Use Karner’s method and consider each test case needs 20 person-hours.
- Calculate the duration based on past experience and time use cases that have already been used by your team in similar projects.
- You can perform this method at the early stages, which allows you to plan the testing procedures and budget ahead of time.
- You can save a lot of time by calculating estimates automatically with the help of special tools.
- It’s impossible to use the UCP testing estimation technique until requirements are included in use case points.
- The accuracy of this method strongly depends on the clarity of use case points.
Function Point Analysis (FPA)
This software testing estimation technique allows you to estimate the total effort that consists of the time, cost, and size of your project. You need to divide your project into modules and assign a functional point (FP) to them depending on their complexity. Difficult tasks get high points, while simple ones go with lower points.
Use the following formula to calculate the total effort:
Estimate Defined per Functional Point is determined by the project manager based on the experience of team members. This value is defined depending on what you’d like to calculate. For example, if you want to find out the budget, this value can be equal to $100 per point. If you need to know the length, it can be 10 hours per point.
So, let’s assume that we’re going to determine the cost of our project. For this purpose, we break the whole task down into three modules:
- 2 complex modules (FP = 5)
- 5 medium modules (FP = 3)
- 10 simple modules (FP = 1)
Total effort = 35 x $100 = $3,500
The testing process will cost $3,500.
- Function point analysis can be carried out at the early stages of the software development life cycle.
- It allows you to define the size of your project.
- It provides low accuracy of estimation results due to a subjective judgment.
- FPA is a time-consuming method that requires a lot of data.
Wideband Delphi Technique
This software testing estimation method was developed by Rand Corporation in the late 1940s. It was initially used to predict future events. That’s why it was named after the Oracle of Delphi in Ancient Greece. Then the technique was used to make decisions on controversial issues.
Wideband Delphi technique is that team members come together to estimate the testing project. The whole process includes several stages. At the first stage, experts get acquainted with the task, explore the testing goals, requirements, specifications, and other data. Each participant then estimates the number of person-hours required to complete the task.
During the second stage, team members receive and review the results presented by other participants anonymously. They re-estimate the task, but this time bearing in mind the opinions of their colleagues. At the third stage, team members discuss the obtained results and come to an overall estimate.
- The wideband Delphi method provides a quite accurate estimate thanks to anonymity and experienced participants.
- It’s a very simple technique that doesn’t require any tools or resources.
- This method requires a lot of time and several meetings because it’s difficult to reach a single opinion at the first stage.
Experience–Based Test Estimation Technique
This method assumes that your team has already participated in similar projects and has gained the required experience in estimating the software testing process. The gathered data will help your specialists estimate the duration and cost of your current project, as well as define the effort needed to complete the task.
- This approach can ensure reliable estimates because the tasks were performed by skilled professionals.
- The method doesn’t require a lot of time and tons of documents because you have them from the previous projects.
- The experience-based estimation method won’t be suitable for new projects with unknown features.
- If your team consists of newcomers and juniors, they won’t be able to apply this technique properly and get accurate results.
Before your software product will get a chance to shake the market and bring you profit, it should be well–tested and free from bugs. A great variety of testing estimation techniques can help you determine how much money, which resources, and how many hours your testing team needs to perform their tasks effectively and smoothly. You don’t need to choose just one method, you can use several of them based on the experience and skills of your staff, available budget, assets, etc.