What does it do?
 Does it work?
QCon London 2008 - An XpDay Sampler

           Lasse Koskela




              (c) 2008 L...
(c) 2008 Lasse Koskela
(c) 2008 Lasse Koskela
(c) 2008 Lasse Koskela
(c) 2008 Lasse Koskela
What does it do?
 Does it work?
QCon London 2008 - An XpDay Sampler

           Lasse Koskela




              (c) 2008 L...
•   how do we specify systems?
•   how do we test them?



              (c) 2008 Lasse Koskela
how do we test systems?



          (c) 2008 Lasse Koskela
developer testing bliss

• xUnit frameworks and patterns
• mock object libraries, reflection capabilities
• language as com...
customer testing misery

• no standard toolset
• tooling generally not sufficient
• common denominator?

                 (...
surely there are at least
 some commonalities...


          (c) 2008 Lasse Koskela
tools for customer testing
 test     tool                     glue   system


 • text vs. tabular
 • imperative vs. descri...
connecting to the system

• there are certain high-level patterns for
 • interacting with the system, and
 • observing sid...
3+2



(c) 2008 Lasse Koskela
1
end to end




    (c) 2008 Lasse Koskela
2
crawling under
   the skin



         (c) 2008 Lasse Koskela
3
exercising the
  internals



         (c) 2008 Lasse Koskela
+2



(c) 2008 Lasse Koskela
4
stubbing out the
   irrelevant



      (c) 2008 Lasse Koskela
5
using testing backdoors




         (c) 2008 Lasse Koskela
how do we specify systems?



           (c) 2008 Lasse Koskela
specification
          analysis
                     design
                                   implementation
            ...
(c) 2008 Lasse Koskela
agile specification

• happens during each iteration
• adds detail incrementally over time
• eventually evolves into automa...
tests as specification

• running tests are ultimately the most
  accurate description of the system
  (excluding the syste...
acceptance test
driven development
select feature                             specify tests



 implement
                ...
who does what?




     (c) 2008 Lasse Koskela
when does it happen?




        (c) 2008 Lasse Koskela
in other words...
• testers and programmers need to
  collaborate more closely
• development team and customer need to
  c...
we need an interface...
  test    X                   tool     system

...that lets us specify tests in
     our shared la...
3 guiding principles



        (c) 2008 Lasse Koskela
1
Avoid turbulent interfaces



           (c) 2008 Lasse Koskela
2
Focus on meaning



      (c) 2008 Lasse Koskela
3
Involve people



     (c) 2008 Lasse Koskela
thank you



   (c) 2008 Lasse Koskela
Upcoming SlideShare
Loading in...5
×

Lasse Koskela What Does It Do Does It Work

914

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
914
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Lasse Koskela What Does It Do Does It Work

  1. 1. What does it do? Does it work? QCon London 2008 - An XpDay Sampler Lasse Koskela (c) 2008 Lasse Koskela
  2. 2. (c) 2008 Lasse Koskela
  3. 3. (c) 2008 Lasse Koskela
  4. 4. (c) 2008 Lasse Koskela
  5. 5. (c) 2008 Lasse Koskela
  6. 6. What does it do? Does it work? QCon London 2008 - An XpDay Sampler Lasse Koskela (c) 2008 Lasse Koskela
  7. 7. • how do we specify systems? • how do we test them? (c) 2008 Lasse Koskela
  8. 8. how do we test systems? (c) 2008 Lasse Koskela
  9. 9. developer testing bliss • xUnit frameworks and patterns • mock object libraries, reflection capabilities • language as common denominator (c) 2008 Lasse Koskela
  10. 10. customer testing misery • no standard toolset • tooling generally not sufficient • common denominator? (c) 2008 Lasse Koskela
  11. 11. surely there are at least some commonalities... (c) 2008 Lasse Koskela
  12. 12. tools for customer testing test tool glue system • text vs. tabular • imperative vs. descriptive (c) 2008 Lasse Koskela
  13. 13. connecting to the system • there are certain high-level patterns for • interacting with the system, and • observing side effects (c) 2008 Lasse Koskela
  14. 14. 3+2 (c) 2008 Lasse Koskela
  15. 15. 1 end to end (c) 2008 Lasse Koskela
  16. 16. 2 crawling under the skin (c) 2008 Lasse Koskela
  17. 17. 3 exercising the internals (c) 2008 Lasse Koskela
  18. 18. +2 (c) 2008 Lasse Koskela
  19. 19. 4 stubbing out the irrelevant (c) 2008 Lasse Koskela
  20. 20. 5 using testing backdoors (c) 2008 Lasse Koskela
  21. 21. how do we specify systems? (c) 2008 Lasse Koskela
  22. 22. specification analysis design implementation testing (c) 2008 Lasse Koskela
  23. 23. (c) 2008 Lasse Koskela
  24. 24. agile specification • happens during each iteration • adds detail incrementally over time • eventually evolves into automated tests (c) 2008 Lasse Koskela
  25. 25. tests as specification • running tests are ultimately the most accurate description of the system (excluding the system itself) • translation steps between a specification and tests introduces translation errors (c) 2008 Lasse Koskela
  26. 26. acceptance test driven development select feature specify tests implement automate tests feature (c) 2008 Lasse Koskela
  27. 27. who does what? (c) 2008 Lasse Koskela
  28. 28. when does it happen? (c) 2008 Lasse Koskela
  29. 29. in other words... • testers and programmers need to collaborate more closely • development team and customer need to collaborate more closely • we need a shared language and medium for doing this! (c) 2008 Lasse Koskela
  30. 30. we need an interface... test X tool system ...that lets us specify tests in our shared language (c) 2008 Lasse Koskela
  31. 31. 3 guiding principles (c) 2008 Lasse Koskela
  32. 32. 1 Avoid turbulent interfaces (c) 2008 Lasse Koskela
  33. 33. 2 Focus on meaning (c) 2008 Lasse Koskela
  34. 34. 3 Involve people (c) 2008 Lasse Koskela
  35. 35. thank you (c) 2008 Lasse Koskela
  1. A particular slide catching your eye?

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

×