agile-hp-2004.ppt
TRANSCRIPT
![Page 1: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/1.jpg)
Testing in Agile Projects:Where Things Stand Today
Brian [email protected]
Copyright © 02004 by Brian Marick. Permission granted to reproduce verbatim.Some images copyright www.arttoday.com.
![Page 2: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/2.jpg)
What Are Agile Projects?
• An attitude toward change
• An attitude toward software
• Some attitudes toward people
The Manifesto for Agile Software Development, www.agilemanifesto.org
![Page 3: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/3.jpg)
Changing Requirements Are Swell
Oh! Let’s add this!
Sure!Now that I see my
feature, I don’t like it. How should wechange it?
![Page 4: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/4.jpg)
Software Can Be Soft
• Programs can become better, cleaner, and more capable
• They become changeable by being successfully changed– not mainly by planning for change
• Frequent new requirements “train” the code and the coders
“Agile methods, the Emersonian worldview, and the dance of agency”www.visibleworkings.com/papers/agile-methods-and-emerson.html
![Page 5: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/5.jpg)
People
• Written documentation is a poor substitute for continuous conversation
• Generalists trump specialists• Teams can self-organize• Trust
– “… if you ask for help, someone has to help you” - Lisa Crispin
![Page 6: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/6.jpg)
Agile Methodologies
• Extreme Programming
• Scrum
• DSDM
• Evolutionary delivery and staged delivery share many characteristics
See “Reading” slides at the end
![Page 7: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/7.jpg)
The Import
Kaner, Bach, and Pettichord, Lessons Learned in Software Testingwww.context-driven-testing.com/wiki/scribble.cgi
These attitudes toward change, software, and people are the context for testing in Agile projects
![Page 8: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/8.jpg)
Four Types of Testing
Geoffrey Moore, Crossing the Chasm, p. 19
![Page 9: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/9.jpg)
Programmer Testing
I need an object that records eachtime segment
Test-driven designUnit testing
![Page 10: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/10.jpg)
Programmer Testing
The test comes first
![Page 11: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/11.jpg)
Programmer Testing
Code is written topass the test
![Page 12: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/12.jpg)
Programmer Testing
Not done? Write another test…
![Page 13: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/13.jpg)
Programmer Testing
And the code to pass it.All earlier tests continue to pass
![Page 14: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/14.jpg)
Programmer Testing
Code awkward? Fix it now.Tests continue to pass
(Refactoring)
Martin Fowler, Refactoring
![Page 15: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/15.jpg)
Programmer Testing
Eventually, the jelly is cooked, nailed down,and ready for further change
![Page 16: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/16.jpg)
Status
![Page 17: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/17.jpg)
Why was this decision made?
I need an object that records eachtime segment
![Page 18: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/18.jpg)
Because of a Customer Representative
…I want to scribble notes aboutwhat I’m doing…
![Page 19: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/19.jpg)
FIT Tests
Makes senseto the
customerrepresentative
Reminder,not
requirement
Easy to run
fit.c2.com
![Page 20: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/20.jpg)
Test Results
Browser-Friendly
TestsFirst
![Page 21: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/21.jpg)
Tests Make Change Smooth
smallchange
smallchange
smallchange
Has anythingbroken?
Has anythingbroken?
Has anythingbroken?
![Page 22: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/22.jpg)
Tests Inform Programmers
• There are no explicit requirements or specifications– so tests cannot check code against them
• Tests serve same goal as requirements or specifications– they provoke programmers to
write the right programNo way!
![Page 23: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/23.jpg)
Requirements for Test Notation
• Provoking the right code
• Improving product conversation– tests are something to talk about– ground conversation in the concrete– forging a common vocabulary
• Making possibilities more noticeable– explaining to someone else supplements
trying out working software– concreteness sparks ideas
![Page 24: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/24.jpg)
The Tester As Participant
How can we best be concrete? What “goes without saying”?
What should the product not do?Who’s being overlooked?What bugs seem likely?
![Page 25: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/25.jpg)
“Tester” As Job Title
How can we best be concrete? What “goes without saying”?
What should the product not do?Who’s being overlooked?What bugs seem likely?
![Page 26: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/26.jpg)
Status
acceptance tests, customer tests, whole-product tests, business-facing tests…
![Page 27: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/27.jpg)
Mid-Course Observation
Business Facing
Technology Facing
These tests primarilysupport programming(as well as the whole
team’s understanding)
![Page 28: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/28.jpg)
Is This Really Testing?
• Checked examples– for discussion– for confident implementation– where are the bugs?
• Change detectors– for confident implementation– where are the bugs?
![Page 29: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/29.jpg)
What About When the Examples Are Bad Examples?
(incomplete, misleading)
![Page 30: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/30.jpg)
Extending the Model
Examples that usebusiness
terminology
Examples that useinterior
terminology
Business Facing
Technology Facing
Su
pp
ort
Pro
gra
mm
ing
![Page 31: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/31.jpg)
Extending the Model
Examples that usebusiness
terminology
Examples that useinterior
terminology
?
?
Business Facing
Technology Facing
Su
pp
ort
Pro
gra
mm
ing
Critiq
ue P
rod
uct
![Page 32: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/32.jpg)
Critiquing the Product
• What resource do we newly have?– the working product, including new code
• Exploratory testing– “simultaneous learning, test design, and
test execution” - James Bach
• Doing what?– diverse users and their scenarios– imaginative end-to-end testing– some opportunistic feature testing
www.satisfice.com/articles.shtml
![Page 33: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/33.jpg)
Exploratory Bug Finding
![Page 34: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/34.jpg)
A Quadrant Entry
Examples that usebusiness
terminology
Examples that useinterior
terminology
User-centeredbug reports
?
Business Facing
Technology Facing
Su
pp
ort
Pro
gra
mm
ing
Critiq
ue P
rod
uct
![Page 35: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/35.jpg)
Status
![Page 36: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/36.jpg)
Still Not Addressed
• What about security bugs, configuration bugs, performance problems, bugs revealed under load, usability problems (like suitability for color-blind people), etc. etc. etc.?– difficult to specify by example– whole-product, but not central to domain
![Page 37: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/37.jpg)
These Are Technology Issues
• Understanding of implementation more important than understanding of a particular domain
Examples that usebusiness
terminology
Examples that useinterior
terminology
User-centeredbug reports
?
Business Facing
Technology Facing
Su
pp
ort
Pro
gra
mm
ingC
ritiqu
e Pro
du
ct
![Page 38: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/38.jpg)
The Good News
![Page 39: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/39.jpg)
My Take on the State of the Practice
Examples that usebusiness
terminology
Examples that useinterior
terminology
User-centeredbug reports
“ility” bugreports
Business Facing
Technology Facing
Su
pp
ort
Pro
gra
mm
ing
Critiq
ue P
rod
uct
![Page 40: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/40.jpg)
Summary: Testing in Agile Projects
![Page 41: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/41.jpg)
Reading (1)• Agile development in general
– www.agilealliance.org
– Agile Software Development, Alistair Cockburn
– “Agile methods, the Emersonian worldview, and the dance of agency”, Brian Marick, www.visibleworkings.com/papers/agile-methods-and-emerson.html
• Extreme Programming– Extreme Programming Explained, Kent Beck
– www.xprogramming.com/xpmag/whatisxp.htm
• Scrum– Agile Software Development with Scrum, Schwaber and Beedle
– www.mountaingoatsoftware.com/scrum
• DSDM– DSDM: Business Focused Development, DSDM Consortium
– www.dsdm.org
![Page 42: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/42.jpg)
Reading (2)
• Agile from a tester’s point of view– www.testing.com/agile– Testing eXtreme Programming, Lisa Crispin and Tip House– [email protected]– www.testing.com/cgi-bin/blog
• Programmer testing– Test-Driven Design by Example, Kent Beck– Test-Driven Development: A Practical Guide, Dave Astels– Pragmatic Unit Testing, Hunt and Thomas– [email protected]
![Page 43: agile-hp-2004.ppt](https://reader036.vdocuments.us/reader036/viewer/2022070315/554f428ab4c905cd048b5522/html5/thumbnails/43.jpg)
Reading (3)
• Exploratory testing– www.satisfice.com/articles.shtml– www.testingcraft.com/exploratory.html
• Context-driven testing– Lessons Learned in Software Testing, Kaner, Bach, and
Pettichord– www.context-driven-testing.com/wiki/scribble.cgi
• Miscellaneous– FIT: fit.c2.com (see also fitnesse.org)– Crossing the Chasm, Geoffrey Moore– Refactoring, Martin Fowler (et. al.)