• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Agile Testing: Solving the Agilist\'s Dilemma
 

Agile Testing: Solving the Agilist\'s Dilemma

on

  • 2,425 views

Star East 2009 - one hour describing why and how to use TDD and ATDD on an Agile team

Star East 2009 - one hour describing why and how to use TDD and ATDD on an Agile team

Statistics

Views

Total Views
2,425
Views on SlideShare
2,423
Embed Views
2

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Agile Testing: Solving the Agilist\'s Dilemma Agile Testing: Solving the Agilist\'s Dilemma Presentation Transcript

    • Agile Testing: Solving the Agilist’s Dilemma Star East 6 May 2009 11 May 2009 © Rob Myers 2009 1
    • Rob Myers Rob.Myers@agileInstitute.com • Teaching Agile courses since 2002 • XP/Agile coach since 1999 • Using TDD to build software since • 1998 • Professional software development since 1986 • Blog: PowersOfTwo.agileInstitute.com 11 May 2009 © Rob Myers 2009 2
    • The Agilist’s Dilemma 11 May 2009 © Rob Myers 2009 3
    • Debt • Quality Debt • Defects • Design Debt • Software design resists change • Testing Debt • Manual testing 11 May 2009 © Rob Myers 2009 4
    • DILBERT: © Scott Adams/Dist. by United Feature Syndicate, Inc. 11 May 2009 © Rob Myers 2009 5
    • Why Wait? Code Test Months Code Test Weeks Code Test Days Code Test 11 May 2009 © Rob Myers 2009 6
    • Instead… Code Write Test Run Test Test Run Test Run Test 11 May 2009 © Rob Myers 2009 7
    • Combine Advantages Manual Writing Manual Test Testing Cases First Later Record & TDD Playback Automated 11 May 2009 © Rob Myers 2009 8
    • “Move Mount Fuji” 11 May 2009 © Rob Myers 2009 9
    • Two Great Flavors ATDD TDD Written by testers, • Written by developers. • generally. For the team. • • For developers. Run frequently by • • Run frequently by testers and testers and developers. developers. New tests fail until the • • All tests pass 100% story is done. Old during integration. tests should all pass. “Peanut Butter Cup” by Laura Godi 11 May 2009 © Rob Myers 2009 10
    • Benefits of ATDD • Communication: • Clarifies the meaning of the story. • Story scope/boundaries: “Is it a defect?” • Progress: “We’re done!” • Concise detection of defects. • Less time troubleshooting and re- testing. • Relieves the Agilist’s Dilemma. 11 May 2009 © Rob Myers 2009 11
    • Team Activities by Iteration Past Present Future ATDD/TDD Analysis/Estimation Exploratory Testing 11 May 2009 © Rob Myers 2009 12
    • If Only… • …We could automate the tests without making them brittle… • …We could write tests without having to see the working product… • …We could do so without having to write in a programming language… 11 May 2009 © Rob Myers 2009 13
    • Inconceivable! “You keep using that word. I do not think it means what you think it means…” -- Inigo Montoya The Princess Bride (1987) 11 May 2009 © Rob Myers 2009 14
    • Fit: Framework for Integrated Tests Invented by Ward Cunningham 11 May 2009 © Rob Myers 2009 15
    • Interface-Centric Tools Slow. • Difficult to set up. • Numerous failures from one defect. • Failures do not identify the defect. • 11 May 2009 © Rob Myers 2009 16
    • Business-Value-Centric Tool 11 May 2009 © Rob Myers 2009 17
    • Fit is Unique • We can test any “layer,” thus expanding our creative reach. • We usually avoid the UI layer. • Fit is simple. It does very little, and you can do so much with it. 11 May 2009 © Rob Myers 2009 18
    • The First Martian Hotel 11 May 2009 © Rob Myers 2009 19
    • The “Column” Fixture • For functions and calculations. • Can be used to “Arrange” the test. 11 May 2009 © Rob Myers 2009 20
    • Fit Output 11 May 2009 © Rob Myers 2009 21 _s
    • What Fit does to Your Tests Your Fit test (HTML, Excel) Fit report (HTML) Fit Fit Fixture (Test Code) System Under Test 11 May 2009 © Rob Myers 2009 22
    • The “Row” Fixture For asserting state. (No input.) • For lists. • Shows missing rows as failures. • Shows extra rows as failures. • Declarative. • 11 May 2009 © Rob Myers 2009 23
    • The “Action” Fixture • For a sequence of events. • For simple scripting. • Imperative. 11 May 2009 © Rob Myers 2009 24
    • Error Conditions 11 May 2009 © Rob Myers 2009 25
    • Tests Can Have Many Tables 11 May 2009 © Rob Myers 2009 26
    • A Team Using Fit for ATDD 1. Testers and other teammates enter tests into Fit pages. 2. Developers develop Fit fixtures for the tables. 3. The team collaborates on the shape of the tables and Fit fixtures until they express what needs to be accomplished. 4. They run the tests and watch them fail cleanly (RED, not YELLOW). 5. Developers develop until tests pass. 11 May 2009 © Rob Myers 2009 27
    • Fit Tools, and More Fit Tools http://fit.c2.com/wiki.cgi?FitTools 11 May 2009 © Rob Myers 2009 28
    • Sample Test Organization: Regression Focus All Tests Really Slow Acceptance Tests Tests Prior Current Iterations Iteration Iteration 1 Iteration 2 11 May 2009 © Rob Myers 2009 29
    • setup.html Files setup.htm All Tests setup.htm Really Slow Acceptance Tests Tests Prior Current Iterations Iteration setup.htm Iteration 1 Iteration 2 aTest.htm 11 May 2009 © Rob Myers 2009 30
    • FITLIBRARY And Other Improvements 11 May 2009 © Rob Myers 2009 31
    • The “Set Up” Fixture 11 May 2009 © Rob Myers 2009 32
    • The “Do” Fixture 11 May 2009 © Rob Myers 2009 33
    • Same Test, Additional Activities 11 May 2009 © Rob Myers 2009 34
    • Improving Upon RowFixture • ArrayFixture: For ordered lists (without having to create a position() column). • SubsetFixture: Ignores surplus items. 11 May 2009 © Rob Myers 2009 35
    • Does TDD Work? “The results of the case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.” http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf, Nagappan et al, © Springer Science + Business Media, LLC 2008 11 May 2009 © Rob Myers 2009 36
    • 11 May 2009 © Rob Myers 2009 37
    • BIBLIOGRAPHY 11 May 2009 © Rob Myers 2009 38
    • Fit for Developing Software – Rick Mugridge Prentice Hall July 9, 2005 ISBN-10: 0321269349 ISBN-13: 978-0321269348 11 May 2009 © Rob Myers 2009 39
    • The Art of Agile Development – James Shore & Shane Warden O'Reilly Media, Inc. October 26, 2007 ISBN-10: 0596527675 ISBN-13: 978-0596527679 11 May 2009 © Rob Myers 2009 40