Agile 2010 Hands-On Workshop, 8/9/2010
Abby Fichtner & Dawn Cannan
You know how "Agile" works: programmers test drive their code via (A)TDD with testers automating much of the story tests. But how does it REALLY work? Do testers and programmers work together (YES!)? What does this interaction look like? In this hands-on demonstration, we'll walk you through how to drive quality on your projects by pairing testers and programmers. We'll use FitNesse to create effective story tests and keep them passing as the software evolves with each iteration. Bring a laptop and spend some time as a paired dev/test team!
Exploring the Future Potential of AI-Enabled Smartphone Processors
Better Story Testing through Dev-Tester Pairing
1. Q
Better Story Testing
Through Dev-Tester Pairing
Abby Fichtner & Dawn Cannan,
,
Hacker Chick Passionate Tester
Agile 2010 – August 9 2010
,
g This presentation is licensed under a Creative Commons Attribution-Share Alike 3.0 License q
2. 2
Why Pair Devs & Testers
?
Figure out how to make stuff without
defects in the first place
Abby Fichtner, Dawn Cannan
- Mary Poppendieck, Google Tech Talks, 12/2006
3. 3
d Agile: The Happy Path d
Release!
Iteration 1 Iteration 2 Iteration 3
... E
Abby Fichtner, Nate Oster
4. 4
F Agile: The Not So Happy Path F
Oops, we ran out of
time to test!
Iteration 1 Iteration 2 Iteration 3
X
Release! Actual
Release
R Code Test
R Code Test
R Code Test Bug Fix
Abby Fichtner, Nate Oster
No problem! We ’ll
start next features Test & Fix
while testers test This agile thing sucks! Iteration
Bugs, overtime,
We re done but testers are
’ programmers & testers
behind so let’ keep going!
s fighting
b
5. 5
Test Driven Development
Write a
failing test
Refactor
R Make
it Pass
Abby Fichtner, Nate Oster
6. 6
Acceptance (Story T
) est Driven Development
Write a
h
failing test
Write
a failing
Acceptance T est
Refactor
R Make
it Pass
Testers help us make stuff without defects in the 1st place!
Abby Fichtner, Nate Oster
• Help devs know what “done” means
• Make sure we’re building the right thing
• Drive inner TDD loop
7. 7
The Zen of Test-Driven Development
Write a
E h
failing test
Conditions of
Write
a failing
Acceptance T est
Refactor
R Make
it Pass
D Demo/
Feedback
Acceptance
Focus shifts as team masters test-driven development
Abby Fichtner, Nate Oster
• Bug detection
• Bug prevention
• Better ways to capture & elicit requirements
Adapted from “Agile Testing”, Lisa Crispin & Janet Gregory
8. 8
FitNesse
GUI
Acceptance
(Story) Tests
Abby Fichtner, Dawn Cannan
Unit & Component Tests
Mike Cohn’s Automated Testing Pyramid
10. 10
FitNesse
FitNesse Page
Fixture
Abby Fichtner, Dawn Cannan
Production Code
11. 11
Agile 2010 Scheduling App
Can focus on dev-tester interaction
Abby Fichtner, Dawn Cannan
12. 12
Agile 2010 Scheduling App: Data
Abby Fichtner, Dawn Cannan
13. 13
Agile 2010 Scheduling App: Tests
Unit Tests
Acceptance Test Fixtures
Abby Fichtner, Dawn Cannan
14. 14
Story #3: Get Session Recommendations
Acceptance Test Fixtures
Helper Methods
Abby Fichtner, Dawn Cannan
15. 15
Stories #4, #5 & #6
4: Select My Friends
5 & 6: List of Friends Attending Sessions/Same Session as Me
Query Helper Methods (Agile2010AcceptanceTest)
Abby Fichtner, Dawn Cannan
16. 16
Stories #7: Get Popular Sessions
Acceptance Criteria
Providing Query Results from Fixtures
Abby Fichtner, Dawn Cannan
17. 17
Mini-Retrospective
Audience
Pair Demonstration
Abby Fichtner, Dawn Cannan