Testing as Communication, Real-World Techniques
-
Upload
actsascon -
Category
Technology
-
view
1.154 -
download
0
description
Transcript of Testing as Communication, Real-World Techniques
![Page 1: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/1.jpg)
Jon “Lark” Larkowski
@L4rk
Testing as Communication
Real-World Techniques
1Sunday, March 1, 2009
![Page 2: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/8.jpg)
8Sunday, March 1, 2009
![Page 9: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/9.jpg)
9Sunday, March 1, 2009
![Page 10: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/16.jpg)
Pair all the f-ing time.16Sunday, March 1, 2009
![Page 17: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/19.jpg)
We take ping pong very seriously.
19Sunday, March 1, 2009
![Page 20: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/20.jpg)
Get up, stand up...20Sunday, March 1, 2009
![Page 21: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/22.jpg)
22Sunday, March 1, 2009
![Page 23: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/24.jpg)
24Sunday, March 1, 2009
![Page 25: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/25.jpg)
25Sunday, March 1, 2009
![Page 26: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/33.jpg)
ur doin it rong33Sunday, March 1, 2009
![Page 34: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/39.jpg)
OMGWTFBBQ!?
39Sunday, March 1, 2009
![Page 40: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/40.jpg)
In conclusion...
40Sunday, March 1, 2009
![Page 41: Testing as Communication, Real-World Techniques](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/41.jpg)
(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](https://reader033.fdocuments.us/reader033/viewer/2022042813/547db696b4af9fda158b544d/html5/thumbnails/42.jpg)
42Sunday, March 1, 2009