Home > Software Quality Tips > > Test-driven testing face-off: Waterfall vs. Agile
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 


Test-driven testing face-off: Waterfall vs. Agile


Matt Heusser
10.30.2009
Rating: --- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Getting testers involved early has been a goal of traditional teams for decades. Eliminating waste, automating tests and focusing on the customer are concepts that can be adopted by any team. So what makes agile testing different?

SearchSoftwareQuality.com invited two veteran software testers, Matt Heusser and Lanette Creamer, to answer that question. In this conversation, they debate which side created test-driven development (TDD) and whether TDD processes differ in waterfall and agile testing.

Before we get started, meet Heusser and Creamer, who truly come from two different testing worlds.

  • As a lead tester at Adobe Systems, Creamer has worked primarily on traditional, mature software teams that regularly release complex integrated software packages every 18 36 months until recently. She joined her first agile team about a month ago.
  • Heusser, a boutique tester and software process naturalist, specializes in testing in fluid, high personal-responsibility environments undergoing rapid change. His SearchSoftwareQuality.com tips series on ways to speed up software testing in agile development, spurred this debate.

So, let's listen in as two testing veterans discuss the finer points of testing.

Creamer: Matt, I read your previous article onaccelerating agile testing, and I can't help but think that eliminating waste, adding automation to our process and getting code quality earlier in the process are all things not specific to agile and should be a part of any software process. How can agile claim these under its umbrella?

Heusser:Did I write that? I thought my idea was to make agile development possible, and to do that, we had to compress the test effort. So I proposed a list of ideas to compress testing. Lots of people want to compress testing, even you 'evil' traditionalists. So it doesn't surprise me that a trad...


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Agile software development
How to deal with iteration issues in Agile
Flexibility and teamwork proven traits of Agile team maturity
How to stop developer vs. tester, quality-killing blame game
Using Agile, scaling back helps software projects in recession
How to improve software user acceptance testing practices
How testers can handle switching to Agile's short iterations
Testers debate differences between waterfall, Agile test automation
Tasktop brings task management into the application lifecycle
Accelerating Agile testing with computer assistance
Agile by the numbers: Survey finds more adoption, but age-old problems

Traditional software models (RUP, V-Model, CMM, Waterfall)
Testers debate differences between waterfall, Agile test automation
Waterfall versus iterative development misconceptions
Solving problems with session-based test management
Best practices for moving testers from waterfall to agile development
Agile and waterfall neck and neck as business side fails to engage
Turning agile skeptics to believers at Blueprint Systems
How Covad made the switch to a distributed agile development process
Can traditional project management and agile development coexist?
Software development groups take many routes to Agile
Survey: Agile interest high, but waterfall still used by many

Scrum software development
Best practices for Scrum and when to apply them
Agile by the numbers: Survey finds more adoption, but age-old problems
Boston SPIN: A small group's big ideas about agile development
Accelerate your agile software testing
Danube's Dan Rawsthorne: Scrum teams and metrics
Agile development growing, but problems remain
Turning agile skeptics to believers at Blueprint Systems
How Covad made the switch to a distributed agile development process
Can traditional project management and agile development coexist?
How teams transition to agile development methodologies

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
acceptance test  (SearchSoftwareQuality.com)
iteration  (SearchSoftwareQuality.com)
planning board  (SearchSoftwareQuality.com)
planning game  (SearchSoftwareQuality.com)
release  (SearchSoftwareQuality.com)
release plan  (SearchSoftwareQuality.com)
spike  (SearchSoftwareQuality.com)
stand-up  (SearchSoftwareQuality.com)
story  (SearchSoftwareQuality.com)
timebox  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


itional company, especially a high functioning one, would already be using some of them.

But I grant your point that agile testing can reasonably be expected to have a different 'slant' on the issues. Shall we take them one at a time?

Test-driven development not just for agile

Creamer: Let's start with getting code quality earlier. For years now, we've been hearing that Test-Driven Development (TDD) is its own thing. Is there some difference between agile TDD and non-agile TDD?

Heusser: I believe that TDD is a practice that grew out of the agile literature, and its original purpose was to enable refactoring or changing the low level design of the code. TDD has evolved to have a purpose more of test-driven design; enabling emergent design, as opposed to document driven design. So I think it's fair to call TDD an agile practice, even if it can be applied by traditional shops. Do you disagree?

Creamer: I agree that it can be used in this way, but I thought that TDD was also put in place to avoid early mistakes and prevent scrapping the work done so far to start over later in the process.

We have been using TDD to validate that we are meeting the stakeholder requirements earlier during development. When working on a new software project it is far easier to refactor without causing major pain to other teams, but when you are talking about numerous core technologies and over 15 products interacting and relying on each other to deliver one consistent end user experience, what could be a minor change for one team can cause serious problems downstream.

In our context, very few teams are an island, and there are more stakeholders to please. Our situation makes refactoring more risky and early problem notification more attractive. It could be that we are using the same exact method, but for different goals.

Heusser:When I hear 'test driven development', I think about code; at a low level only technologists can understand. I'm curious how you mean you're using TDD to validate the stakeholders' plain/English requirements. It's probably just a terminology thing. I'd be likely to call that Acceptance Test Driven Development (ATDD). If you're using ATDD to get over a dozen development teams on the same page with standard interfaces, well, more power to you.

It sounds like we're using the same tool, but you're doing it to control change -- with good reason! -- and agile teams use TDD to enable change. So I see a subtle distinction.

Creamer: As much as we'd like to adapt to change, we require some amount of cohesiveness to be able to coordinate integration across products. We are controlling changes with multiple methods, including using acceptance test. I believe that some teams are also using TDD in the sense you mention, in the code, before most of our testers see it. Those teams are mainly the teams who have started using agile, so that is a useful distinction.

Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.




DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts