lasse koskela what does it do does it work

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

Upload: deimos

Post on 06-May-2015

873 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

What does it do?Does it work?

QCon London 2008 - An XpDay Sampler

Lasse Koskela

Page 2: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

Page 3: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

Page 4: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

Page 5: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

Page 6: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

What does it do?Does it work?

QCon London 2008 - An XpDay Sampler

Lasse Koskela

Page 7: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

•how do we specify systems?

•how do we test them?

Page 8: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

how do we test systems?

Page 9: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

developer testing bliss

• xUnit frameworks and patterns

• mock object libraries, reflection capabilities

• language as common denominator

Page 10: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

customer testing misery

• no standard toolset

• tooling generally not sufficient

• common denominator?

Page 11: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

surely there are at least some commonalities...

Page 12: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

tools for customer testing

•text vs. tabular

•imperative vs. descriptive

tool systemgluetest

Page 13: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

connecting to the system

• there are certain high-level patterns for

• interacting with the system, and

• observing side effects

Page 14: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

3+2

Page 15: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

1end to end

Page 16: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

2crawling under the skin

Page 17: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

3exercising the internals

Page 18: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

+2

Page 19: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

4stubbing out the irrelevant

Page 20: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

5using testing backdoors

Page 21: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

how do we specify systems?

Page 22: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

analysis

design

implementation

specification

testing

Page 23: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

Page 24: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

agile specification

• happens during each iteration

• adds detail incrementally over time

• eventually evolves into automated tests

Page 25: Lasse Koskela What Does It Do Does It Work

(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

Page 26: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

acceptance testdriven development

select feature specify tests

implement feature

automate tests

Page 27: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

who does what?

Page 28: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

when does it happen?

Page 29: Lasse Koskela What Does It Do Does It Work

(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!

Page 30: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

we need an interface...

test systemtoolX

...that lets us specify tests in our shared language

Page 31: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

3 guiding principles

Page 32: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

1Avoid turbulent interfaces

Page 33: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

2Focus on meaning

Page 34: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

3Involve people

Page 35: Lasse Koskela What Does It Do Does It Work

(c) 2008 Lasse Koskela

thank you