Você está na página 1de 42

Testing as Communication

Real-World Techniques

Jon “Lark” Larkowski

@L4rk
Sunday, March 1, 2009 1
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…

Sunday, March 1, 2009 2


We value
agility & transparency…

Therefore, we value
testing & communication…

And, this all saves you


cash money, ideally…
The

Way
Sunday, March 1, 2009 3
Test

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


• If we test all the time…
• And testing is communication…
• Then we…

Sunday, March 1, 2009 4


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]

Sunday, March 1, 2009 5


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...

Sunday, March 1, 2009 6


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...

Sunday, March 1, 2009 7


Sunday, March 1, 2009 8
Sunday, March 1, 2009 9
Pivotal Tracker

• Communication aspects...
• C2D: transparency,
scheduling

• D2D: estimation, who's


doing what right now

Sunday, March 1, 2009 10


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…
Sunday, March 1, 2009 11
Stories

• All our work is driven by stories.


• Stories are like tiny use cases.
• Really, stories are tests.
• Because they contain acceptance criteria.

Sunday, March 1, 2009 12


Stories

• Communication aspects...
• C2D: stories are tokens of a conversation
• D2D: make sure to write stories at a level
developer can actually implement

Sunday, March 1, 2009 13


Stories

• Techniques we use…
• Direct capture to Tracker
• Standard forms:
In order to / As a / I want to
Given / When / Then
• Written together with client, with close
developer aide

Sunday, March 1, 2009 14


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…
Sunday, March 1, 2009 15
Pair all the f-ing time.
Sunday, March 1, 2009 16
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

Sunday, March 1, 2009 17


Pair Programming
• Techniques we use…
• Two developers,
one screen.

• Ping Pong, both


metaphorical and literal…

• Daily stand-ups

Sunday, March 1, 2009 18


We take ping pong very seriously.

Sunday, March 1, 2009 19


Get up, stand up...
Sunday, March 1, 2009 20
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.”

Sunday, March 1, 2009 21


Sunday, March 1, 2009 22
Testing
• Communication aspects…
• C2D: express stories as acceptance
criteria, then tests (MVC tests)
• D2C: RSpec specdoc format, cucumber
• D2D: more durable system specification
• Examples…
Sunday, March 1, 2009 23
Sunday, March 1, 2009 24
Sunday, March 1, 2009 25
Testing
Techniques we use…

• RSpec • Selenium

• MVC, yes... V • RSpactor

• Factory Girl/Object Daddy • Continuous Integration

• Cucumber • Clicking on stuff

Sunday, March 1, 2009 26


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.

Sunday, March 1, 2009 27


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…

Sunday, March 1, 2009 28


Continuous Delivery
• All the f-ing time.
• We deliver finished stories
multiple times a day.
• Communication aspects…
• C2D: very tight feedback loop with client
• D2D: smoke test together to demo features
Sunday, March 1, 2009 29
Continuous Delivery

• Techniques we use…
• The usual, capistrano
• Supported by continuous integration
• Deploy to Engine Yard staging slice
• Also, Amazon EC2 instances

Sunday, March 1, 2009 30


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…

Sunday, March 1, 2009 31


Client Acceptance

• The Final Test


• Communication aspects…
• C2D: you’re doing it wrong
• C2D: you’re doing it right

Sunday, March 1, 2009 32


ur doin it rong
Sunday, March 1, 2009 33
Client Acceptance

• Techniques we use…
• Developer-assisted acceptance
• Ideally, on-site
• Video chats
• Daily stand-up

Sunday, March 1, 2009 34


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…

Sunday, March 1, 2009 35


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…
Sunday, March 1, 2009 36
Impedance Matching
for Max Power Transfer
(And, maximum awesome.)
• 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...
Sunday, March 1, 2009 37
Impedance Matching… sorta
(Also, the worst circuit diagram, evar.)

Geek Automated
2 Integration Tests
English (Cucumber)
Client
Speaks
English

MVC Tests
You
Speak
Geek
Regular Code
+
-

Sunday, March 1, 2009 38


OMGWTFBBQ!?

Sunday, March 1, 2009 39


In conclusion...

Sunday, March 1, 2009 40


Testing Talks, Money Walks
Jon “Lark” Larkowski

Stay metal.

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


Sunday, March 1, 2009 41
Sunday, March 1, 2009 42

Você também pode gostar