lasse koskela what does it do does it work
TRANSCRIPT
(c) 2008 Lasse Koskela
What does it do?Does it work?
QCon London 2008 - An XpDay Sampler
Lasse Koskela
(c) 2008 Lasse Koskela
(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 Lasse Koskela
•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 common denominator
(c) 2008 Lasse Koskela
customer testing misery
• no standard toolset
• tooling generally not sufficient
• common denominator?
(c) 2008 Lasse Koskela
surely there are at least some commonalities...
(c) 2008 Lasse Koskela
tools for customer testing
•text vs. tabular
•imperative vs. descriptive
tool systemgluetest
(c) 2008 Lasse Koskela
connecting to the system
• there are certain high-level patterns for
• interacting with the system, and
• observing side effects
(c) 2008 Lasse Koskela
3+2
(c) 2008 Lasse Koskela
1end to end
(c) 2008 Lasse Koskela
2crawling under the skin
(c) 2008 Lasse Koskela
3exercising the internals
(c) 2008 Lasse Koskela
+2
(c) 2008 Lasse Koskela
4stubbing out the irrelevant
(c) 2008 Lasse Koskela
5using testing backdoors
(c) 2008 Lasse Koskela
how do we specify systems?
(c) 2008 Lasse Koskela
analysis
design
implementation
specification
testing
(c) 2008 Lasse Koskela
(c) 2008 Lasse Koskela
agile specification
• happens during each iteration
• adds detail incrementally over time
• eventually evolves into automated tests
(c) 2008 Lasse Koskela
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
acceptance testdriven development
select feature specify tests
implement feature
automate tests
(c) 2008 Lasse Koskela
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 collaborate more closely
• we need a shared language and medium for doing this!
(c) 2008 Lasse Koskela
we need an interface...
test systemtoolX
...that lets us specify tests in our shared language
(c) 2008 Lasse Koskela
3 guiding principles
(c) 2008 Lasse Koskela
1Avoid turbulent interfaces
(c) 2008 Lasse Koskela
2Focus on meaning
(c) 2008 Lasse Koskela
3Involve people
(c) 2008 Lasse Koskela
thank you