Skip to main content

QA Time Estimation


One of the hardest tasks is to give time estimation for a QA work. I believe that the main reason for that is the fact that QA work is unpredictable and dynamic by its nature, in other words any time slot can be filled with some helpful QA activities but not every QA activity gives enough added value to justify the time and money invested to execute it. So how we get a good estimation for QA?


I remmember a while ago I was consulting a company that had some trouble budgeting its small QA department the methodology that they used to favor for time estimation was "percentage of development", and by doing so were completely ignoring two major factors needed for good QA estimation:
1.Complexity of the SUT (system under test)
2.Average number of Test Runs
Those two factor will allow us to use more accurate, though more time consuming, estimation methodology called "Internal overview". By moving to this new approach the company improved significantly its budget planing and had been able to provide more fitting and accurate pricing for their projects.
To emphasize the shift that we did with that's company QA department lets look closely on the two methodologies:
Percentage of Development
This methodology assumes that the amount of time invested in QA effort its always a subset of the development work, usually around 50-60 percent. So if developer requires X number of hours to develop the new feature then Qa work estimated as 0.5*X=(QA ESTIMATE)
Sometime there are more generous departments which will estimate QA effort as equals to development which will bring us to the formula of X=QA ESTIMATE.
Advantages

  • Really easy to estimate
  • Doesn't requires QA involvement in the estimation process

Disadvantages

  • Ignores different complexity levels
  • Ignores the need for new test cases and planing
  • Ignores the need for different number of test runs
  • Highly inaccurate

Internal Overview
To get a good estimation for QA activities we need to understand QA's involvement in all stages of SDLC. QA department should begin its work alongside with development in order to plan and prepare proper set ot test cases. Estimation for this part done by investigation and understanding of the system requirements.
Usually this task is shorter than the development effort on big projects and can be longer than development on small new features requests. It is extremely important to be aware of that when planing a formal release.
Sometime ago I used to work for a company as a QA manager and part of my responsibilities was to provide time estimations for my department. I can tell you that it always was hard to justify QA activities for small feature releases then for big new projects. If for example a new web site required, it will take much longer for development to crate this website then for QA to prepare a solid test suite for it, but when a new button requested on all pages of the website its much faster for the development to create that button, then for QA to plan all possible scenarios of how that button could be used.
Later on when development is done QA execution should begin. The estimaton for  that can be done by taking into account the number of tests to be executed in one full test cycle (TEST SUITE TIME) and multiply it by the number of test runs. Now, here my recommendation will be to take 3 test runs as average. This number can change based on the testing environment and the actual SUT, but for average software release 3 test cycles its a save bet. That will give us following QA estimation formula:
(TEST SUITE TIME)*3= (QA ESTIMATE).
A note will be appropriate at this point, as I had such a confusion before, the (QA ESTIMATE) time will be the net value of QA activities. Usual practice is to involve development for fixing rounds in-between testing cycles so the total time for a specific release increasing based on development work.
Advantages

  • More aqurate time estimation
  • Better quality results
  • The estimation includes all QA activities
  • The estimation provides better overview of all QA tasks.

Disadvantages

  • This sort of estimation more time consuming
  • Requires investigation and QA involvement in the estimation process

My recommendation for every company that I'm consulting is to use the "Internal Overview" methodology for QA time estimation on the regular basis and to leave the "Percentage of Development" approach only for extreme cases.

Comments

Popular posts from this blog

Proper QA estimation in Agile project

  Today, I want to chat about a common issue in Agile development – story point estimation. You see, it's easy to get caught up in estimating how long a feature will take to develop and forget about the crucial Quality Assurance (QA) effort.  It happens to often: your team is in the middle of sprint planning. New user stories are being discussed, and estimations are given, but there's a catch. You've estimated the development time perfectly, but you've barely even glanced at how much effort QA will take. Why? Agile talks about Development Team and you mistakenly thought that it is all about DEVELOPMENT. Sound familiar? Trust me; it's a more common scenario than you might think. So, what's the big deal? Well, when you leave QA effort out of the equation, several not-so-great things can happen: Vilocity can suffer: You might think you can squeeze more into a sprint than is humanly possible, setting your team up for disappointment and overcommitment. Quality can de

Performance testing vs Load testing vs Stress testing

Today I want to discuss a popular topic regarding a difference between Load and Performance testing. Those two types of testing are commonly used together but there are several key differences between the two. To get a better understanding of the topic lets have a real life example from one of my clients and use it to explain the difference. I have worked for a client that was building an in-house web application that provides its customers with an option to select and order different products and services. The request was, before the up-coming release, to test the performance of their product. We started the task by trying and understand what they expect from performance point of view and then went through an exercise of defining what is captured by what test. The client said that they are looking to have about 900-1300 active users on the site at a given moment, and the expected response time (for a page to load) should be less than 5 seconds. With those details what are the t

What is the velocity of an Agile scrum methodology?

Let's discuss some of the important measurements in Agile, and that is the Velocity of the Scrum team work. Based on Wikipedia definition Velocity is " ...the rate of change of its position with respect to a frame of reference and is a function of time...", which when transferred to the scrum world can be summarized as: The amount of work that the scrum team completed in a single measure of time - in a sprint. How we Calculate Velocity? Velocity is actually a very simple to calculate, it is done but totaling the number of story points of fully completed user stories from the sprint backlog. So if a current sprint included 4 user stories: 2 with 8 story points each, one with 3 story points and one with 32 story points. and by the end of the sprint the 32 one was not fully done the velocity calculation will be: 8+8+3=19 Note: the 32 story points are not part of the velocity calculation as this user story was not completed. What Velocity is used for? The v