The document is a presentation about testing as a communication tool and how it can save time and money. It discusses how the company values agility, transparency, and testing which facilitates communication. It then goes through the various tools and techniques used for testing, communication, and continuous delivery including Pivotal Tracker, stories, pairing, RSpec/Cucumber, and client acceptance. Testing is presented as key to responding quickly to changes while avoiding rework and supporting collaboration.
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Testing as Communication, Real-World Techniques
1. Testing as Communication
Real-World Techniques
Jon “Lark” Larkowski
@L4rk
Sunday, March 1, 2009 1
2. 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
3. We value
agility & transparency…
Therefore, we value
testing & communication…
And, this all saves you
cash money, ideally…
The
Way
Sunday, March 1, 2009 3
4. 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
5. 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
6. 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
7. 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
10. Pivotal Tracker
• Communication aspects...
• C2D: transparency,
scheduling
• D2D: estimation, who's
doing what right now
Sunday, March 1, 2009 10
11. 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
12. 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
13. 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
14. 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
15. 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
16. Pair all the f-ing time.
Sunday, March 1, 2009 16
17. 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
18. Pair Programming
• Techniques we use…
• Two developers,
one screen.
• Ping Pong, both
metaphorical and literal…
• Daily stand-ups
Sunday, March 1, 2009 18
19. We take ping pong very seriously.
Sunday, March 1, 2009 19
21. 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
23. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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
32. Client Acceptance
• The Final Test
• Communication aspects…
• C2D: you’re doing it wrong
• C2D: you’re doing it right
Sunday, March 1, 2009 32
34. Client Acceptance
• Techniques we use…
• Developer-assisted acceptance
• Ideally, on-site
• Video chats
• Daily stand-up
Sunday, March 1, 2009 34
35. 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
36. 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
37. 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
38. 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