Transcript
Page 1: Testing as Communication, Real-World Techniques

Jon “Lark” Larkowski

@L4rk

Testing as Communication

Real-World Techniques

1Sunday, March 1, 2009

Page 2: Testing as Communication, Real-World Techniques

Walk of the Talk

• Subset of Obie’s The Hashrocket Way talk

• Our tools & techniques

• How they support communication

• And save time & money

• At the end: where we’re headed…

2Sunday, March 1, 2009

Page 3: Testing as Communication, Real-World Techniques

We value

agility & transparency…

The

Way

Therefore, we value

testing & communication…

And, this all saves you

cash money, ideally…

3Sunday, March 1, 2009

Page 4: Testing as Communication, Real-World Techniques

Test

• All the f-ing time. (Hi, Bryan!)

• If we test all the time…

• And testing is communication…

• Then we…

4Sunday, March 1, 2009

Page 5: Testing as Communication, Real-World Techniques

Communicate

• All the f-ing time.

• (Only if we keep the overhead low.)

• There’s three lines of communication...

1. C2D: client to developer

2. D2D: developer to developer

3. DnD: [not covered in this talk]

5Sunday, March 1, 2009

Page 6: Testing as Communication, Real-World Techniques

Fiscal Responsibility

• Testing is communication

• Both are “baked in” to our agile process

• That is, with low overhead

• This saves you dough

• Walk through our process, first tool is...

6Sunday, March 1, 2009

Page 7: Testing as Communication, Real-World Techniques

Pivotal Tracker

• We live in it.

• Who’s using it?

• We don’t code unless it’s for a story.

• Let’s look at some screenshots...

7Sunday, March 1, 2009

Page 8: Testing as Communication, Real-World Techniques

8Sunday, March 1, 2009

Page 9: Testing as Communication, Real-World Techniques

9Sunday, March 1, 2009

Page 10: Testing as Communication, Real-World Techniques

Pivotal Tracker

• Communication aspects...

• C2D: transparency, scheduling

• D2D: estimation, who's doing what right now

10Sunday, March 1, 2009

Page 11: Testing as Communication, Real-World Techniques

Pivotal Tracker

• Fiscal aspects…

• Real-time web collaboration lowers overhead, both to clients at-distance, and developer across room

• Reporting & projection tools allow for reasonable estimates, off real-world data

• So that’s Tracker, but at its core it’s all about…

11Sunday, March 1, 2009

Page 12: Testing as Communication, Real-World Techniques

Stories

• All our work is driven by stories.

• Stories are like tiny use cases.

• Really, stories are tests.

• Because they contain acceptance criteria.

12Sunday, March 1, 2009

Page 13: Testing as Communication, Real-World Techniques

Stories

• Communication aspects...

• C2D: stories are tokens of a conversation

• D2D: make sure to write stories at a level developer can actually implement

13Sunday, March 1, 2009

Page 14: Testing as Communication, Real-World Techniques

Stories

• Techniques we use…

• Direct capture to Tracker

• Standard forms: In order to / As a / I want toGiven / When / Then

• Written together with client, with close developer aide

14Sunday, March 1, 2009

Page 15: Testing as Communication, Real-World Techniques

Stories• Fiscal aspects…

• Well, they’re a part of agile in general

• Delivery working software early & often

• Constant cost of change

• Tight response to change

• Ability to recoup investment at any time

• So, that’s stories. Now, when we actually start coding stories, we…

15Sunday, March 1, 2009

Page 16: Testing as Communication, Real-World Techniques

Pair all the f-ing time.16Sunday, March 1, 2009

Page 17: Testing as Communication, Real-World Techniques

Pair Programming

• Communication aspects…

• Who’s pairing? (Some, most, all.)

• Hopefully, you know the benefits already.

• D2D: keep focused, honest, high quality

• D2C: redundancy, bus sensitivity

17Sunday, March 1, 2009

Page 18: Testing as Communication, Real-World Techniques

Pair Programming• Techniques we use…

• Two developers,one screen.

• Ping Pong, both metaphorical and literal…

• Daily stand-ups

18Sunday, March 1, 2009

Page 19: Testing as Communication, Real-World Techniques

We take ping pong very seriously.

19Sunday, March 1, 2009

Page 20: Testing as Communication, Real-World Techniques

Get up, stand up...20Sunday, March 1, 2009

Page 21: Testing as Communication, Real-World Techniques

Pair Programming

• Fiscal aspects…

• Oh, boy.

• I could tell you, “Studies show…”

• Or I could just tell you, “Do it.”

• “No, no. Seriously. Do it.”

21Sunday, March 1, 2009

Page 22: Testing as Communication, Real-World Techniques

22Sunday, March 1, 2009

Page 23: Testing as Communication, Real-World Techniques

Testing

• Communication aspects…

• C2D: express stories as acceptance criteria, then tests (MVC tests)

• D2C: RSpec specdoc format, cucumber

• D2D: more durable system specification

• Examples…

23Sunday, March 1, 2009

Page 24: Testing as Communication, Real-World Techniques

24Sunday, March 1, 2009

Page 25: Testing as Communication, Real-World Techniques

25Sunday, March 1, 2009

Page 26: Testing as Communication, Real-World Techniques

Testing

• RSpec

• MVC, yes... V

• Factory Girl/Object Daddy

• Cucumber

• Selenium

• RSpactor

• Continuous Integration

• Clicking on stuff

Techniques we use…

26Sunday, March 1, 2009

Page 27: Testing as Communication, Real-World Techniques

Testing

• Fiscal aspects…

• Who’s heard, “We don’t have time to test!”

• Quit that job, immediately.

• Unless it’s Obie who says it.

• You don’t have time not to test.

27Sunday, March 1, 2009

Page 28: Testing as Communication, Real-World Techniques

Testing

• Fiscal aspects continued…

• Respond to change quickly, be more daring in your refactorings

• Less regression, no rework fixing old bugs

• Supports collective ownership, guards against misuse

• Serves as built-in documentation (low overhead)

• Supports continuous integration and deliverability…

28Sunday, March 1, 2009

Page 29: Testing as Communication, Real-World Techniques

Continuous Delivery

• All the f-ing time.

• We deliver finished storiesmultiple times a day.

• Communication aspects…

• C2D: very tight feedback loop with client

• D2D: smoke test together to demo features

29Sunday, March 1, 2009

Page 30: Testing as Communication, Real-World Techniques

Continuous Delivery

• Techniques we use…

• The usual, capistrano

• Supported by continuous integration

• Deploy to Engine Yard staging slice

• Also, Amazon EC2 instances

30Sunday, March 1, 2009

Page 31: Testing as Communication, Real-World Techniques

Continuous Delivery

• Fiscal aspects…

• Respond to market, recoup investment at any time, when it makes business sense, or you run out of money, or find better things to do with it

• Once we’ve delivered…

31Sunday, March 1, 2009

Page 32: Testing as Communication, Real-World Techniques

Client Acceptance

• The Final Test

• Communication aspects…

• C2D: you’re doing it wrong

• C2D: you’re doing it right

32Sunday, March 1, 2009

Page 33: Testing as Communication, Real-World Techniques

ur doin it rong33Sunday, March 1, 2009

Page 34: Testing as Communication, Real-World Techniques

Client Acceptance

• Techniques we use…

• Developer-assisted acceptance

• Ideally, on-site

• Video chats

• Daily stand-up

34Sunday, March 1, 2009

Page 35: Testing as Communication, Real-World Techniques

Client Acceptance

• Fiscal aspects…

• Verify you got what you paid for

• Sooner rather than later

• Change direction anytime

• So, that’s what we’re up to now…

35Sunday, March 1, 2009

Page 36: Testing as Communication, Real-World Techniques

Where We’re Headed

• Jakob Nielsen says, waterfall method user specs are always wrong

• And I tend to agree with him

• The Vision: machine-executable stories & acceptance criteria

• …but first—let’s talk about circuits.

• Yup, circuits…

36Sunday, March 1, 2009

Page 37: Testing as Communication, Real-World Techniques

Impedance Matchingfor Max Power Transfer

• Client vs. Developer vs. Code vs. Testing

• All have a little different perspective

• Goal: max power transfer

• Turn cash into code

• Any EE’s in audience? Cut me some slack.

• Allow me to blow your mind...

(And, maximum awesome.)

37Sunday, March 1, 2009

Page 38: Testing as Communication, Real-World Techniques

ClientSpeaksEnglish

YouSpeakGeek

AutomatedIntegration Tests

(Cucumber)

Regular Code

MVC Tests

Geek2

English

Impedance Matching… sorta

+-

(Also, the worst circuit diagram, evar.)

38Sunday, March 1, 2009

Page 39: Testing as Communication, Real-World Techniques

OMGWTFBBQ!?

39Sunday, March 1, 2009

Page 40: Testing as Communication, Real-World Techniques

In conclusion...

40Sunday, March 1, 2009

Page 41: Testing as Communication, Real-World Techniques

(Also, speed metal rules.)(Thank you.)

Testing Talks, Money WalksJon “Lark” Larkowski

Stay metal.

41Sunday, March 1, 2009

Page 42: Testing as Communication, Real-World Techniques

42Sunday, March 1, 2009


Top Related