TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: Planning the Endgame



A StickyMinds.com Original
Article Picture
Planning the Endgame

By Fiona Charles

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: What can a test manager do when a project manager says, "Test faster!" or tries to cut the amount of testing to meet a project release date? Fiona Charles says that you can argue for the time and resources you need by incorporating the endgame into your estimations. In this week's column, Fiona details how to structure a winning argument by paying close attention to all the activities that occur during testing.


Rally Software
We know that the elapsed time for testing will ultimately be decided not only by the number of hours we schedule for our team but also by the quality of the system we get to test, the development team’s turnaround time for bug fixes, and the stakeholders’ appetite for risk.

This is the endgame: the interplay of tests, builds, bug fixes, and retests plus regression tests. Unfortunately, project managers, even experienced ones, can fall into the trap of planning only for testing—forgetting to take the whole endgame into account.

A test manager can help the project manager build a credible case for the amount of testing time you need by modeling a plan for the endgame.

I start by coming up with a number representing test cases. That gives me the most important unit of measure, and a starting point for other planning assumptions.

In my planning, a "test case" is just a handy unit of measure, representing one significant thing we're going to do to test some aspect of the system. The definition and size vary according to the system we're testing. Although the actual sizes of test cases for any system will vary widely, it's usually possible to come up with an average unit that will hold up well enough for planning purposes.

During test design, I work with my team to define what we mean by "test case," usually by analogy.

"A test case is a thing like this, about this big."

"We think it will take about this long to develop an average test case."

When we have several developed, we can say,

"We think it will take about this long, on average, to execute an average test case, including setting up the data, taking notes, and entering bugs."

Test cases don't have to be documented. I can use the same unit to allow for a mix of predesigned and exploratory tests in the plan. Having a consistent unit means I can apply some planning assumptions to undocumented tests. I add contingency to the number, and for test execution I also raise it by some percentage for exploratory testing.

For test execution, I first try to estimate the number of test cases we can attempt in a week. Several assumptions go into that, including average time to execute a test case, productive tester hours per day, and the number of testers. I also add some factor for environment down time, plus or including builds, depending on the disruption time expected from routine builds.

The calculations look like this:



Let's say we have 1,200 test cases. If we plan only for actual test time, it could appear as if we would complete testing in about three weeks.

In reality, the test team won't reach full productivity in the first couple of weeks. If we estimate a productivity hit of 25 percent in weeks one and two, we will actually only execute about 300 test cases in the first two weeks.

Regardless, we will be finding bugs, so next I estimate how many bugs we expect to find. Let's say I expect an average of one bug logged for every three test cases executed. A test case that finds a bug won't pass and will have to be re-executed at least once more.

Week one starts to look like this:



Of the bugs we find, some number—say one in three—will be severity one or two, and therefore critical to fix and retest. I also assume that around a third of the lower-severity bugs will be fixed. I ask the development leads for average times to fix bugs. If they can't supply an estimate (which is often the case), I'll propose one, say seven bugs per developer per week. The development plan should tell me how many developers will be available to fix bugs, say five developers.

Now Week One looks like this.



We go into week two with almost 1,000 test cases still to execute and pass and twenty open bugs.

If developers aren't added to fix bugs, the number of open bugs continues to rise. Week two ends with forty open bugs; week three (when we are executing more test cases and finding more bugs) ends with seventy-nine. And so on.

By the end of week four, we will have run through all the test cases once and will be finding fewer new bugs than during the first couple of weeks, at which point the emphasis shifts almost entirely to bug fixing and retesting. When that is complete, so is the endgame.

That's the simple model, which provides a rough idea of the end date. You can refine the model by adding more variables reflecting expected reality.

For example, some of the bugs fixed, say one in ten, will fail retest and go back into fix. When planning, I include a few other assumptions, such as a number of reported non-problems that take everybody's time, and a number of environment problems, especially in the first couple of weeks.

Like all models, this one has limitations. For one, the calculations tend to be linear while projects aren't. But on several projects I have found that my models weren’t far from reality. I once used the model in a phone conversation to convince a project manager and the client's CIO (whom I'd never met) that we needed three more months to test than they had planned for. Impressed by the detail in the model, they bought my plan. In the end the model was short by three weeks, but I didn't think I'd done too badly on a four-month plan—given that the development team decided to do an infrastructure upgrade in the last month that delayed everything.

When we use a planning model like this, based on assumptions built from estimates, it's important for everyone to understand that it is a heuristic device. Estimating endgame activities, including testing, is about as accurate as estimating development or any other project work. The more we know, the closer we can get to something that might work out in reality. But our numbers will always be estimates rather than exact predictions.

Merriam Webster's Online Dictionary has this definition for "heuristic":

"Of or relating to exploratory problem-solving techniques that utilize self-educating techniques (as the evaluation of feedback) to improve performance."

This definition is a useful reminder that once we have modeled a plan, it's essential to track actuals so we can continually check every assumption as we go through the endgame and adjust the plan accordingly.

Modeling the endgame helps test managers and project managers estimate an end date that the project has a reasonable chance of achieving. That's the date when we should have passed all the test cases and fixed and retested all the bugs that must be fixed. Most importantly, because the model provides an explicit set of assumptions, it's hard for project managers and others to argue that we need less time to test, and it's easier for us to argue for more time if the assumptions turn out to be wrong.


About the Author
Fiona Charles is an independent test project manager and consultant, based in Toronto. With over twenty-five years of experience in systems development and integration projects, she specializes in managing large-scale systems integration tests, and in test management at the program level on multi-project integrations. Fiona is on the board of the Toronto Association of Systems and Software Quality and co-founder and host of the annual Toronto Workshop on Software Testing (TWST). She is a regular contributor to StickyMinds.com and Better Software Magazine. Contact Fiona at fccharles@sympatico.ca.

Back to Top
 

StickyMinds.com Weekly Column From 9/3/2007 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Roger Rethlake 9/5/2007

Hi Fiona - thanks for this article. I suppose I do similar estimates but i've not put the structure to them as you have here. I'll be curious to compare my 'seat of the pants' estimates against this method next time around. In the end - the accuracy of the estimates comes down to the amount of exploratory testing and the bug rework cycles... Now if we could just put the science to that!!!

Regards,
Roger

Author's Response:
9/5/2007    
Yes, indeed! I do try to include exploratory testing with a similar method, by estimating an "average test", along with the number we think we will do. Not scientific, but it does give me numbers I can then check against reality. If we keep doing this over time, we can accumulate the experience to predict more closely.

 
 
Comment:    
by Bob Edwards 9/4/2007

This model has an additional benefit, in predicting the impact of major changes. I noticed you referenced a scenario where you had to make the argument that the test pass needed 3 more months - and went an additional 3 weeks beyond that, but due to the dev team checking in significant architectural changes during the last month.

Savvy test managers can use the same model to attach a "re-test" cost to such design change requests, so that project managers can have a more realistic understanding of the costs of the change to the team, and the delivery date.

Q = T / F (Quality = Time / Features)

Author's Response:
9/5/2007    
In the specific scenario I referred to, the development team had saved up all the infrastructure changes over a long develoment cycle: including both an operating system and a major database management system upgrade, if memory serves. In that kind of case it's relatively easy to plot out a regression test. It would be a little more difficult to plan the endgame for design changes, but very doable, and it would certainly provide useful information to management. Thanks for adding this.

 
 
Comment:    
by Gerard Miller 9/4/2007

Fiona,

Including definition of heuristic is a nice touch. Making clear to stakeholders that this approach is heuristic "rather than exact predictions" keeps folks grounded.

Good job on the phrasing in sentence "The more we know, the closer we can get to something that might work out in reality.". A valuable testing observation.

Mick

Author's Response:
9/5/2007    
Thanks for your comment. I wanted to be very clear that there is nothing exact about this kind of estimation, and that all planning assumptions/heuristics must constantly be sanity-checked against actual values, so I'm glad to have your validation that these points came across.

 
 
Comment:    
by Venkat Reddy Chintalapudi 9/4/2007

@ Fiona,

Good article over the estimates and your approach helps to give some comfort on where do stand at a given point of time. Even the metrics are really useful. This is one of the approach that helps to convince the state holders over the time and resource required for the end game.

But life may not be that simple & have all the test cases / scenarios ready for us to validate. At times, we might just need go by exploratory testing over the usecases / user manuals we ship along with the software.

If the stakeholder (in this case Project Manager) want to reduce the efforts for Testing, narrate him over the...Read On

 
 
Comment:    
by Sanat Sharma 9/4/2007

Good estimated article, Fiona. I believe that testing never ends. It does just get transferred from testing team to the customer. But it is also true that as a Test Manager, you have to set some deadline to finish the testing tasks. In my opinion, begging for the testing time from the management is equivalent to asking for the expected salary from an interviewee. The answer remains the same - "Give me more till the point where you can manage".

-- Sanat Sharma

Author's Response:
9/4/2007    
Sure, but you have a much better chance of succeeding if you can substantiate your request with some half-way credible numbers.

 
 
Comment:    
by Bharathi T 9/4/2007

Hello Fiona,
The article is Just In Time. Very helpful guide to the testers who are clueless with amount of tasks to be performed within given period.

Thanks
Bharathi

 
 
Comment:    
by Pranal Nikumbh 9/4/2007

Hello Fiona,

Your article takes the top spot for being very practical and with no verbal junk. Looking forward for a few more

Regards
Pranal Nikumbh


 
 
Comment:    
by Fred Chan 9/4/2007

Hi Fiona, this is really a practical paper. Thanks.
Reference to your illustration, it seems that the "regression" aspect of test cases after fixes is no more possible in this practical testing approach?

- Fred

Author's Response:
9/4/2007    
Hi Fred. Thanks for your comment. Wherever it makes sense, I definitely see regression testing as part of the the endgame. I didn't have the space to talk about it specifically, but I think you can see by analogy with the other testing activities how you can include it in the planning model. Obviously, you need to come up with the right heuristics: number of regression "test cases" (or tests, if these are not pre-defined), expected average time to execute (probably less than when they are executed for the first time), expected number of bugs you will find (probably much lower than when you execute the first time, say 1 bug per 20 tests), and so on.

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


TechExcel, Inc.




STAREAST 2010 


Better Software Conference