Your SlideShare is downloading. ×
0
Testing in Agile Projects: Where Things Stand Today Brian Marick [email_address] Copyright © 02004 by Brian Marick.  Permi...
What Are Agile Projects? <ul><li>An attitude toward change </li></ul><ul><li>An attitude toward software </li></ul><ul><li...
Changing Requirements Are Swell Oh! Let’s add this! Sure! Now that I see my feature, I don’t like it. How should we change...
Software Can Be Soft <ul><li>Programs can become better, cleaner, and more capable </li></ul><ul><li>They become changeabl...
People <ul><li>Written documentation is a poor substitute for continuous conversation </li></ul><ul><li>Generalists trump ...
Agile Methodologies <ul><li>Extreme Programming </li></ul><ul><li>Scrum </li></ul><ul><li>DSDM </li></ul><ul><li>Evolution...
The Import Kaner, Bach, and Pettichord,  Lessons Learned in Software Testing www.context-driven-testing.com/wiki/scribble....
Four Types of Testing Geoffrey Moore,  Crossing the Chasm , p. 19
Programmer Testing I need an object that records each time segment Test-driven design Unit testing
Programmer Testing The test comes first
Programmer Testing Code is written to pass the test
Programmer Testing Not done?  Write another test…
Programmer Testing And the code to pass it. All earlier tests continue to pass
Programmer Testing Code awkward? Fix it now. Tests continue to pass (Refactoring) Martin Fowler,  Refactoring
Programmer Testing Eventually, the jelly is cooked, nailed down, and ready for further change
Status
Why was this  decision made? I need an object that records each time segment
Because of a Customer Representative … I want to scribble notes about what I’m doing…
FIT Tests fit.c2.com Makes sense to the customer representative Reminder, not  requirement Easy to run
Test Results Browser- Friendly Tests First
Tests Make Change Smooth small change small change small change Has anything broken? Has anything broken? Has anything bro...
Tests Inform Programmers <ul><li>There are no explicit requirements or specifications </li></ul><ul><ul><li>so tests canno...
Requirements for Test Notation <ul><li>Provoking the right code </li></ul><ul><li>Improving product conversation </li></ul...
The Tester As Participant How can we best be concrete?  What “goes without saying”? What should the product  not  do? Who’...
“Tester” As Job Title How can we best be concrete?  What “goes without saying”? What should the product  not  do? Who’s be...
Status acceptance tests, customer tests,  whole-product tests, business-facing tests…
Mid-Course Observation Business Facing Technology Facing These tests  primarily support programming (as well as the whole ...
Is This Really Testing? <ul><li>Checked examples </li></ul><ul><ul><li>for discussion </li></ul></ul><ul><ul><li>for confi...
What About When the Examples Are Bad Examples? (incomplete, misleading)
Extending the Model Examples that use business  terminology Examples that use interior  terminology Business Facing Techno...
Extending the Model Examples that use business  terminology Examples that use interior  terminology ? ? Business Facing Te...
Critiquing the Product <ul><li>What resource do we newly have? </li></ul><ul><ul><li>the working product, including new co...
Exploratory Bug Finding
A Quadrant Entry Examples that use business  terminology Examples that use interior  terminology User-centered bug reports...
Status
Still Not Addressed <ul><li>What about security bugs, configuration bugs, performance problems, bugs revealed under load, ...
These Are Technology Issues <ul><li>Understanding of implementation more important than understanding of a particular doma...
The Good News
My Take on the State of the Practice Examples that use business  terminology Examples that use interior  terminology User-...
Summary: Testing in Agile Projects
Reading (1) <ul><li>Agile development in general </li></ul><ul><ul><li>www.agilealliance.org </li></ul></ul><ul><ul><li>Ag...
Reading (2) <ul><li>Agile from a tester’s point of view </li></ul><ul><ul><li>www.testing.com/agile </li></ul></ul><ul><ul...
Reading (3) <ul><li>Exploratory testing </li></ul><ul><ul><li>www.satisfice.com/articles.shtml </li></ul></ul><ul><ul><li>...
Upcoming SlideShare
Loading in...5
×

agile-hp-2004.ppt

1,924

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,924
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • All models are false, but some are useful (George Box)
  • Transcript of "agile-hp-2004.ppt"

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

      Clipping is a handy way to collect important slides you want to go back to later.

    ×