TrainingConferencesAbout UsContact UsAdvertiseSQE.com

StickyMinds.com: brain food for building better software

Join

Join

Clarify Your Search Criteria
Tips on Using Our Search Feature(s)
StickyMinds.com Home
ResourcesEventsTopicsPowerPassJobs
Software Testing & QA Online Community  >  Detail: So Many Tests, So Little Time



A StickyMinds.com Original
Article Picture
So Many Tests, So Little Time
Using Timeboxing to Beat Constraints

By Johanna Rothman

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

Summary: In this corner ... A harried project manager whose testing time has just been cut in half. And in this corner ... A time-honored management tool to scale back project scope and make testing tasks do-able. This week, Johanna Rothman shows us the ropes of timeboxing and explains why time constraints don't have to be a TKO.


ASTQB
Better Software Conference and EXPO 
 
I'm sure you've heard conversations like this: 
Senior Manager: “Candace, I know you said you needed twelve weeks to test this release, but we're really in a jam. I need you to release sooner. What can you do for me in six weeks?” 
As much as you might like to say, “Um, not much,” that’s not a career-enhancing answer. Instead, if you say something like, “Give me a week, and I'll tell you what we can do,” you'll not only be providing the organization with value, you'll be as proactive as you can be, given the situation. 
 
Even if you're not in the position where your testing time is cut in half, you may feel as if you have too much testing to do for the project—and not enough time to do it all. When that happens, there are several techniques you can use to manage the testing tasks, but timeboxing is an approach that works well for projects with severe time constraints.  
 
Timeboxing is a well-established project management tool used to limit project scope in a fixed duration by forcing tradeoffs—a valuable technique for testing. Say you have six weeks between the time you discover you're supposed to test a product and the time the organization wants to release the product, as Candace does above. Here’s how to timebox the testing:
    1. Review your original plan. You had some idea of what and how you had planned to test. Make it clear to your management and other stakeholders that you are not going to accomplish everything in the original plan, and determine what you can complete. 
     
    2. Start by defining your plan of attack in the first week. Define how you'll discover what pieces of the product you will attempt to test and how you'll test them. You may choose exploratory testing for discovering what to test, and you may need combinatorial test techniques for how you'll test. At the end of this week, you will have a ranked list (1,2,3,4,…) of what you'll test in the product and how you'll test it. 
    Part of defining your attack plan is to explain the two major risks of timeboxing testing: a) You may find something critical during testing that the developers won't have time to fix, and b) You may miss something critical that the customers will find a significant problem. Everyone must understand that the test team won't know everything about the product, and the organization could be releasing a product different than the one everyone anticipated. 
     
    3. During the next three weeks, develop tests and continue to refine the test plan. The key here is to develop tests and test for specific work flows (or areas of the product) one at a time. You don't sit around waiting for something to test; but you test a workflow or piece of the product from beginning to end before starting a new workflow or product area. For example, if you are testing a banking system, you might test from opening a specific account type to verifying the account is in the database and is active. You don't test just opening different kind of accounts; you test one specific kind of account from beginning to end. If you are testing a biomedical device, you test that the device can accept a specific input, perform the computation, and generate the expected output—just one specific input. Again, you don't test all inputs and all outputs; you test each end-to-end result serially.  
     
    As you're refining the test plan, you're confirming scope as you proceed. Every time you realize there’s something else you can't test, you list that piece in the not-to-test category and assign a risk to not testing it. As you complete testing, you update the test plan (or preferably, the test reporting) with your completed plans and tests. 
     
    4. Evaluate your progress at the end of every week of testing, and report test data. If you can verify fixes as you test, plan to continue testing and verifying through the fifth week. If not, plan on completing the testing —as far as you can go—in week four. 
     
    5. You're now at week five. If you haven't been able to verify fixes yet, this is the time to do so. As you verify fixes, you'll perform whatever regression tests you have created to make sure the fixes didn't break anything. If this takes you the full two weeks, you're done. If you have another week, you can attack more features, employing the end-to-end testing you've done before. 
     
    6. In week six, you verify the last of the fixes and report on your progress and what you know and don't know about the product.
I'm certainly not recommending you only utilize six weeks for testing on a project. The time you need for testing is dependent on what’s in the project and how well the product is built. But, if you're ever caught in a pickle, where you don't have enough time to test everything, use timeboxing to help you evaluate how little you can do and still deliver a valuable result to the organization.  
 
Acknowledgements: 
I thank Dave Liebreich, Bob Johnson, and James Tierney for their reviews.


About the Author
Johanna Rothman observes and consults on managing high-technology product development, looking for the leverage points that will make her clients more successful. Johanna was the conference chair for the Software Management (SM) Conference in February 2002, where she conducted a management-improv tutorial and participated in a panel discussion of mentoring and manager making. Earlier in 2003 she facilitated a RoundTable discussion “Test Management 101”. You can reach Johanna at jr@jrothman.com or by visiting www.jrothman.com.

Back to Top
 
 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by John Daughety 5/17/2004

Very nice, concise summary of a great solution to most software testing efforts (since very few get the time they truly need). I am looking at it for hints into my current puzzle, which is testing releases of software in two weeks when the list of features is not available until the test cycle starts. So far, my best strategy has been to spend much of my time emphasizing how much we will not be testing because of the circumstances while focusing on end-to-end, or system testing to try and uncover major problems. Luckily we are an in-house development group and can afford to let mistakes get released, as long as they are not critical. I...Read On

 
 
Comment:    
by Anthony Verrall 5/13/2004

Joanna I enjoyed your article. There is another mitigation activity that can be undertaken during planning, that is to prioritise the testcases based on the critical Business functionality being delivered, this is usually done in consultation with the business and or stakeholders. When a reduction of testing timeframe comes along there is a understanding on what testing is Mandatory prior to acceptance of the product.

Author's Response:
5/14/2004    
Anthony, prioritizing tests with your stakeholders is an excellent technique to manage the risks of where to put testing resources (and where you can avoid putting testing resources. I also like to update the release criteria based on these kinds of changes.

 
 
Comment:    
by Ed Weller 5/13/2004

As parr of the discussion, somewhere along the line the test manager has to make the rest of the organization realize that the length of test is related to the number of defects in the product when you enter test. These defects are non-randomly distributed throughout the product. Their failure effects are often not related to the difficulty or complexity of the feature or function being added, changed, or removed from the product. Decisions to reduce testing typically mean not testing something(s). as testers, we will often focus on the critical features, deciding that low risk features do not need as complete or thorough testing. The fly...Read On

Author's Response:
5/14/2004    
Ed, I agree with you that the minimum test time necessary is related to the number of defects in the product when you enter test. As always, data that backs up what you've assessed as risk areas is more helpful than not.

 
 
Comment:    
by William Gentry 5/12/2004

I've just documented a change to the test process for one type of our products. Since a major version spawns many children for various markets, we're now leveraging the full compliment of tests run against the parent. Our new test plan shows that we're testing functional areas that were changed (as annotated in the difference documents supplied to us by Configuration Management), areas that failed at least once in parent testing, and any functionality that is specific to the software under test (I test slot machine software so we have different markets with different regulations and requirements). Be planning our tests in this manner, I...Read On

Author's Response:
5/12/2004    
William, It sounds as if you're choosing when to run which tests when. Making choices is an excellend idea. I can't tell if you're running end-to-end tests, to test an entire feature, but if you're receiving value from your test planning, that's great.

 
 
Comment:    
by Jacob Halperin 5/11/2004

We normally use a short reduction review, to define the more risky areas. Other then that, we try to break the process into 2-3 system wide testing sessions "30-40-30 % " coverage, while in 1st 10-30% we make a quick system wide pass-through, to raise as many initial bugs, then preferably we move to same session on additional feature or 2, raising bugs there while programmers fix 1st item bugs, then move to more Thorough 40-60% session, and finish with validation leftovers and/or regression. This way, even if we are stopped earlier, we know the system wide status, and have no items with 0% coverage + we do not wait for most fixes. The...Read On

Author's Response:
5/12/2004    
Jacob, at least you're considering your options and attempting to choose where you spend your time to make the most of it.

 
 
Comment:    
by Richard Whitehead 5/10/2004

Nice article. I would also emphasize how significant it is that you -can- test end-to-end. I have been faced (on more than one occasion) with a system where a critical (and central) piece wasn't being delivered until the last minute. That's OK as long as people realize just what a severe risk they're taking - and of course, they never do.

Author's Response:
5/12/2004    
Richard, that's why I like development end-to-end (as well as testing end-to-end) -- reduces lots of project-based risks.

 
 
Comment:    
by Gerold Keefer 5/10/2004

johanna, thanks for this great cookbook receipt. i would like to point still more attention to risk based testing in such situations: look at the most crucial function, at the most suspicious modules, etc. to direct the testing effort. secondly, beware what the application does in the field. if we are talking about safety or mission critical software and necessary testing time is not given, either refuse to release or get a signature that you informed management about risks. best regards,

Author's Response:
5/12/2004    
Gerold, I agree. Using risk to determine which tests to run is necessary. And, while I don't agree on signing off or refusing to release (for me, releasing is a business decision), asking people to sign something that says they understand the risks is an excellent idea.

 
Back to Top



 
Ads By Google
What's This?
 
 



About Us   |   Contact Us   |   Terms & Conditions   |   Privacy Policy   |   RSS Feed



© 2013 StickyMinds.com. All rights reserved.
PNSQC

Tricentis



STARWEST