10 Tips on How to Estimate Software Testing Time
Planning is an important part of a project. Planning makes it possible to use available resources rationally, to predict the short term and long term success of the project, as well as to form a common project vision. The more accurate and complete the planning data is, the higher quality project management can be ensured. In the IT industry, this is a particularly important moment as the overall industry development is fast and the number of new products is growing. Technology market situation shows that for a product success just to have a bold idea is no longer enough. High-quality and timely product realization is also necessary and it results from a mature project planning and management.
Testing time is an essential part of project planning. Incorrectly estimated testing time can lead to a number of negative effects, from an escalation of costs and schedule changes to the overall project unprofitability and company’s reputation loss. Is it possible to avoid such consequences? How to estimate testing time properly and what factors should be considered in this process? Is there a single approach that can be used for any project and any type of testing task? Answers to all of these questions you will find in the testing time estimation tips below!
1. Explore Existing Techniques
Planning of testing is not a very new task in the IT industry, so industry experts have already developed several techniques for software testing time estimation. Each of these techniques has its own characteristics: some are more formal, some are less formal, some are based on metrics, while some techniques are based on intuition, guesses, and past experience. These characteristics form the strengths and weaknesses of techniques. In order to choose the most suitable technique for your project, you have to explore and analyze the details of these techniques and understand which of their disadvantages would be the least noticeable for you and which advantages would be the most desirable.
At the moment there is no generally accepted approach to the estimation of testing time, which is universally applicable, however, after the analysis of existing techniques you can choose an option that is closest to the ideal in your situation. The most popular estimation techniques that you should explore are work breakdown structure, three-point estimation/PERT, function point analysis, use-case points, Wideband Delphi, planning poker, intuition, guesses, and past experience. Regularly update and deepen your knowledge of the estimation techniques, be aware of the latest trends and do not be afraid to use this knowledge.
2. Combine Techniques To Achieve The Best Result
It is often possible to minimize the disadvantages of a chosen technique by using it in combination with another technique. For example, a good basis for other techniques is often a workout breakdown structure. This technique will help to realize the scope of work, to divide larger tasks into subtasks, to clarify details and, if necessary, requirements. After this, it will be noticeably easier to use other techniques because the work breakdown structure will create the necessary level of detail and the basis for time estimates. Do not be afraid to experiment, try different techniques and their combinations and compare the results.
3. Take Into Account And Evaluate Project Risks
It is important to understand that testing is performed within a specific project, therefore different project characteristics and the position of a test engineer in this project can have a significant impact on test duration. These risks include the necessity to ensure a particularly high level of quality, little testing experience in a specific project or in the industry as a whole, lack of testing experience in similar projects, lack of product and its goals understanding, poor quality of the product being developed, insufficient documentation, etc.
4. Take Into Account And Evaluate Task Risks
If testing time is estimated for a specific task, identify risks associated with the testing of this task. Consider that each of these risks requires time resources to eliminate its consequences. The spectrum of such risks is quite wide, for example, it may be a lack of task understanding, unclear acceptance criteria, unstable test data, insufficient knowledge of tools and techniques that are used for this testing task, task accomplishment in cooperation with other people or companies. etc.
5. Create A Time Buffer Based On Risks
While estimating testing time there is a strong tendency to make time estimates that are shorter than the actual time required for testing. In order not to follow this tendency after realizing the risks add a time buffer to each estimate. The higher the level of risk, the more buffer time is needed, because the situation is unstable and the result is less predictable. This increases the likelihood of successfully coping with the risks already identified, as well as with unforeseen circumstances (for example, unexpected technical difficulties with test environment, health problems, and requirement changes, etc.).
6. Record Testing Time Estimation Results
The use of past experience in testing time estimation is often necessary because many estimation techniques are to a greater or lesser extent based on this. Even if your chosen estimation technique is far from subjectivity and use of personal experience, previous testing time estimation results can help to support the results of the chosen technique and create a solid planning basis. You also should not forget that human memory is not perfect and much data is not stored in it or is stored in a distorted form. In order not to lose this data I regularly record the estimated and actual testing time for each test activity in the Jira system. However, the results recorded only in this way are easy to lose (especially between different projects), so I also save them using Google Sheets. In case of a discrepancy between these values, it is important to understand and write down its reasons. This approach will make the most effective use of your past testing experience.
7. Admit A Mistake In Time If You Understand That An Estimate Is Wrong
Invalid testing estimates are common and this is always an unpleasant fact, especially when the estimated time was shorter than actual time needed. It is possible to reduce the negative consequences of this fact by timely admitting a mistake, communicating with your team about it, analyzing possible solutions and implementing the most appropriate solution. The worst thing you can do in a situation of wrong testing time estimate is to hope that the situation will suddenly change for the better and not to allow the team, project managers or client to change the allocation of resources, the priority of tasks or other factors which can help to solve the problem.
8. Do Not Be Afraid To Say “No”
Often testing specialists are faced with a situation where they are provided with ready-made testing time estimates. Sometimes these estimates are not based on convincing calculations and are not realistic. For example, in my practice, I had some situations where testing time was calculated by subtraction of development and management time from total project or sprint time. In these circumstances, characteristics of testing tasks themselves were not taken into account and it was automatically assumed that this time should be enough. Unfortunately, this was not the case. How to act in such a situation? If you understand that your estimated testing time is very different from the given estimate, do not be afraid to say “No” and explain the reason for your opinion. Do not agree to impracticable deadlines and allow the client or manager to choose a solution: change the estimate, change the testing scope or other suitable solution.
9. Use The Knowledge Of Other Team Members
Using information from books, articles, the Internet, the industry and your experience is useful and necessary, but also you should not forget that you are surrounded by specialists with their knowledge and experience. Even if these people are not directly involved in testing, they can still have valuable knowledge that will allow them to take a different look at the project and testing tasks.
For example, a programmer can tell which functions of a developed product from the programming point of view are the most complex and where can be the greatest number of errors, respectively, which functions have to be especially carefully tested. Think about what kind of knowledge each member of your team may have and use this knowledge to estimate testing time.
10. Do Not Be Afraid To Make Mistakes
It is not easy to estimate the duration of testing. This is a complex process that is influenced by many factors, so errors are very common even among experienced specialists. For example, in my current project, I have been working for more than two years, but quite recently my estimated testing time for one task was about four times less than the time that was actually needed. So it was necessary to change the plan and goals of the sprint. This situation can happen to anyone, therefore do not be afraid to make mistakes and do not try to avoid estimation of testing time in the future (most likely, it will not be possible anyway). Instead, use all of the tips mentioned above, learn from mistakes, and improve your estimation skills.
By using the tips described above it will be much easier to estimate testing time and an approach to this task will be more conscious. Each of the tips is independent and can be used separately, but the best result can be achieved by using all the tips as a complex approach: try to get knowledge of test estimation techniques from various sources, use your past experience and experience of people around you correctly, do not forget about risks and also do not be afraid of communication and mistakes. Thus, the probability of avoiding the negative consequences of incorrect test estimates and also finding the right approach to estimating the testing time in your situation increases dramatically.