Testing as Communication, Real-World Techniques

Preview:

DESCRIPTION

 

Citation preview

Jon “Lark” Larkowski

@L4rk

Testing as Communication

Real-World Techniques

1Sunday, March 1, 2009

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

We value

agility & transparency…

The

Way

Therefore, we value

testing & communication…

And, this all saves you

cash money, ideally…

3Sunday, March 1, 2009

Test

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

• If we test all the time…

• And testing is communication…

• Then we…

4Sunday, March 1, 2009

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

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

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

8Sunday, March 1, 2009

9Sunday, March 1, 2009

Pivotal Tracker

• Communication aspects...

• C2D: transparency, scheduling

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

10Sunday, March 1, 2009

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

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

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

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

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

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

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

Pair Programming• Techniques we use…

• Two developers,one screen.

• Ping Pong, both metaphorical and literal…

• Daily stand-ups

18Sunday, March 1, 2009

We take ping pong very seriously.

19Sunday, March 1, 2009

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

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

22Sunday, March 1, 2009

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

24Sunday, March 1, 2009

25Sunday, March 1, 2009

Testing

• RSpec

• MVC, yes... V

• Factory Girl/Object Daddy

• Cucumber

• Selenium

• RSpactor

• Continuous Integration

• Clicking on stuff

Techniques we use…

26Sunday, March 1, 2009

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

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

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

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

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

Client Acceptance

• The Final Test

• Communication aspects…

• C2D: you’re doing it wrong

• C2D: you’re doing it right

32Sunday, March 1, 2009

ur doin it rong33Sunday, March 1, 2009

Client Acceptance

• Techniques we use…

• Developer-assisted acceptance

• Ideally, on-site

• Video chats

• Daily stand-up

34Sunday, March 1, 2009

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

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

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

ClientSpeaksEnglish

YouSpeakGeek

AutomatedIntegration Tests

(Cucumber)

Regular Code

MVC Tests

Geek2

English

Impedance Matching… sorta

+-

(Also, the worst circuit diagram, evar.)

38Sunday, March 1, 2009

OMGWTFBBQ!?

39Sunday, March 1, 2009

In conclusion...

40Sunday, March 1, 2009

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

Testing Talks, Money WalksJon “Lark” Larkowski

Stay metal.

41Sunday, March 1, 2009

42Sunday, March 1, 2009