Test Estimation can be taken as much of an art as it is a science. In my younger, more wise-ass days (which some might say were, literally, just yesterday) I might have replied to my manager or the Dev lead; “How long will you give me?”
But I’d like to think that I’ve matured some. That and the rolling eyes that I’ve received when I’ve given that response more than fifty times in the near past has caused me to come up with a way to give a better response.
But, honestly, what is a good response?
“It depends” is always a good one. Of course, that response has met its fair share of rolling eyeballs as well.
If you’re running a pre-arranged suite of tests and know that it takes about an hour to run them, you can say “About an hour.” But what happens when your manager returns to your desk an hour later and you have no test results? What happened?
Well, there’s always more to it than just running the test suite, right? What makes a true estimate? You’re going to need to make sure that you have a build first. And that the build works and runs without crashing on startup. And that the test suite that should take an hour to run, actually runs to completion. You may have to run it a couple of times; restart it, make corrections, clean log files, etc. And then, once it’s complete, you’re going to need a bit of time to look over the results. Then, of course, you haven’t even begun to write, execute and add any new test cases and scripts to your suite to test anything that’s in this new build.
So how long is that?
Stay away from saying “It will take as long as it takes.” Your manager might roll his eyes as he or she walks away and finds a new tester while you’re left surfing Monster or CareerBuilder quickly before they cut off your Internet access.
Your best bet might be to stay away from absolute times. Rather, bring your Manager or Dev Lead in on the conversation. Tell them that, once you’ve gotten a working build, you’ll run your suite and go over the results. While you’re waiting on that build, you’re writing some new tests and will run them after the suite completes. Give updates along the way. Let them know when you’re hitting walls and road blocks. Resetting the clock on testing time should be part of the conversation.