How to Estimate Testing Time
October 12, 2017 - Quality Assurance and Testing
When delivering a comprehensive software product technical companies always struggle to find the balance between the quality and the release date. Testing the final product is a crucial step to ensure everything works smoothly and just as expected. If the company doesn’t follow any testing time estimation techniques it might lead to exceeding project time and budget. And we all perfectly know how it might affect relationships with the client. Thus, estimation techniques in software development are considered a very complicated and integrated process, that can’t be underestimated.
In this article we will guide you through what is test estimation and how to use QA testing estimation techniques properly.
This step consists of two stages: project research and testing strategy development.
Project research might be performed differently depending on the company, team and project itself: reading and analysis of project documentation, meetings, discussions with managers, market research, etc. On average, we recommend spending 1-2 days to clarify all the details and get the answer to all questions in case they arise during discussions.
You might need some additional time in the following situations:
— The project is pretty large-scale and has plenty of documentation.
— It’s the first time you’re working on such a project and you need some additional time for in-depth research.
— Specialists involved with the projects have different schedules or time zones. You might consider planning extra time for communications.
Testing strategy development includes defining several important nuances of the future project:
— What types of testing will be performed.
— What specialists you need to develop testing plans and test cases.
— How many specialists you will need for the testing and what skills they should have.
Now that we’ve figured out our testing process planning, it’s time to talk about testing tasks. Don’t be mistaken thinking that testing time consists only of project research and testings. There’s a whole range of other tasks the QA team must perform.
— Write a test plan.
— Build test cases.
— Develop an escalation procedure.
— Conduct tests and evaluate results.
— Verify fixes.
And these are just some of the basic testing tasks, they might vary not only from organization to organization, but also within it depending on the project. Thus, it is important to estimate testing time, including all this tasks.
There are 5 core estimation techniques in software development, that every specialist should know.
- Functional Point Method. This method consists of assigning each functional point a certain weighting, which ranges from 1-simple to 3-medium to 5-complex. After that we multiply the number of functional points with the assigned weighting within each category and multiply this number by 2 (person-hours per functional point).
- Delphi Technique. To use this technique, you carry out surveys from QA specialists to determine an average time estimation for each task.
- Work Breakdown Structure. In this method we deconstruct the project into its very basic elementary components and estimate time for each of them.
- Three-Point Estimation. This estimation technique consists of breaking down the project into basic component tasks. Then you assign one of three given time estimations for each component — Optimistic (a), Pessimistic (b) and Realistic (r). Then to determine the time estimate (E) you use this formula: E = (A + 4xR + B)/6.
- Planning Poker. Also known as a scrum poker is a gamified method of estimating time. After breaking down the project into individual tasks, team members make estimates by playing numbered cards without revealing those until after the discussion.
Using a certain ready pattern is a crucial part of all testing time estimation techniques. This template includes all kinds of testing, that might be relevant to the projects. Depending on the project, quality requirements and some other aspects the template pattern might be modified. If you are new to this field and don’t yet have a software testing time estimation template don’t hesitate to google it — you will find plenty of examples, which you can modify and use for your needs.
It’s hard to determine the right set of estimation techniques in software development as QA is a very complex process with a high-risk level and all its estimates contain deviations. This is why it is so crucial to combine efficiently different testing methods and techniques based on the team, project and all the aspects that influence the time, resources and budget both directly and indirectly.