test your own stuff - scrum atlanta 2015
TRANSCRIPT
![Page 1: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/1.jpg)
Test Your Own Stuff!
Dealing With Dependencies Between (and on) Agile Teams
Alex Kell@wiggly
Scrum Atlanta – 8/26/2015
![Page 2: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/2.jpg)
Dependencies Kill Agility
![Page 3: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/3.jpg)
Dependencies
Blockers Yaks Ourselves
![Page 4: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/4.jpg)
Dependencies as Blockers
Troy Aikman recollected that Deion considered tackling a “business decision.”
Sanders responds: “Hey, these shoulders are made for suits, not Brandon Jacobs.”(SBNation - 11/23/2009)
![Page 5: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/5.jpg)
Dependencies as Blockers
Troy Aikman recollected that Deion considered tackling a “business decision.”
Sanders responds: “Hey, these shoulders are made for suits, not Brandon Jacobs.”(SBNation - 11/23/2009)
Excuse
s
![Page 6: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/6.jpg)
Dependencies as YaksYou’ve been on a call for two hours trying to upgrade the server
infrastructure for the entire company…why?
• Well it all began because their tests aren’t working because our system is down
• So you check the logs and determine that the system downstream of yours is down
• So you try to contact their lead, but you remember he’s on west coast time and isn’t in yet
• So you decide to turn on the mocks you wrote last sprint• But when you turn them on they don’t work on the shared servers because
they all have .Net 3.5 on them• So you decide to upgrade the server to 4.0, but you can’t because they belong
to the Enterprise Infrastructure department and you don’t have access rights.• So you call up the help desk and try to open a ticket to get the servers
upgraded…
![Page 7: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/7.jpg)
Dependencies of our Own Making
• Debt – We’ll build it now even though we can’t test it
• Rules – Let’s agree or conform to a rule that says we have to wait to test until software has been installed on the “Test” server
• Process –
Ready In Progress
Done
![Page 8: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/8.jpg)
Dependencies of our Own Making
• Debt – We’ll build it now even though we can’t test it
• Rules – Let’s agree or conform to a rule that says we have to wait to test until software has been installed on the “Test” server
• Process –
Ready Dev QA Done
![Page 9: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/9.jpg)
Checking vs. Testing
From Michael Bolton – Developsense.com
Checks are confirmatory. They tell us that things are or are not working based on some explicit expectation.
Tests are active explorations, discoveries, investigations and learnings.
![Page 10: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/10.jpg)
Types of Automated Checks
Unit
UISmoke
Component
SystemAcceptance
IntegrationMicro Functional
Performance
Load
![Page 11: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/11.jpg)
Functional /IntegrationStory /Feature Acceptance
Simulations/Workflows
ExploratoryUsability
User Acceptance
UnitComponent
PerformanceLoad
SecurityOther “ility”
Business Facing
Supp
ortin
g th
e Te
am
Technology Facing
Critiquing the ProductAutomated and Manual Manual
Automated/ToolsAutomated
Copyright @ 2009 Crispin/Gregory
![Page 12: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/12.jpg)
Functional /Integration
Story /Feature Acceptance
Simulations/Workflows
ExploratoryUsability
User Acceptance
UnitComponent
PerformanceLoad
SecurityOther “ility”
Business Facing
Supp
ortin
g th
e Te
am
Technology Facing
Critiquing the ProductAutomated and Manual Manual
Automated/ToolsAutomated
Copyright @ 2009 Crispin/Gregory
![Page 13: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/13.jpg)
Unit
A Test is NOT a unit test if• It talks to the database• It communicates across the network• It touches the file system• It can’t run a the same time as any of your
other unit tests• You don’t have to do special things to the
environment (like editing config files) to run itMichael Feathershttp://www.artima.com/weblogs/viewpost.jsp?thread=126923
![Page 14: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/14.jpg)
Why Unit Checks?Or
Integration Tests are a Scam!
10 States
10 States
10 States
5 interactions
5 interactions
5 interactions
Functional
Grenninghttp://www.renaissancesoftware.net/blog/archives/514#more-514
![Page 15: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/15.jpg)
10 States
10 States
10 States
5 interactions
5 interactions
5 interactions
UnitUnit
Grenninghttp://www.renaissancesoftware.net/blog/archives/514#more-514
Why Unit Checks?Or
Integration Tests are a Scam!
![Page 16: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/16.jpg)
Calculator Example
![Page 17: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/17.jpg)
Functional
• Check the interactions of one or more component within the system
• Do make use of configurations, networks, databases, and file systems
• Sometimes check performance
![Page 18: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/18.jpg)
Acceptance
• Ideally written during “refinement”• Given/When/Then format• Like Functional tests, but not as comprehensive• Meant as a:– Guide for the team– Progress checker for the Feature team– Documentation for internal and external people
• Automated!
![Page 19: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/19.jpg)
ATDD
![Page 20: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/20.jpg)
GUI
Functional
Unit
Manual/Exploratory
![Page 21: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/21.jpg)
System/
End-To-End
Functional
Unit
Manual/Exploratory
![Page 22: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/22.jpg)
Acceptance
Functional
Unit
Manual/Exploratory
![Page 23: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/23.jpg)
Acceptance
Functional
Unit
Manual/Exploratory
![Page 24: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/24.jpg)
Acceptance
Functional
Unit
Manual/Exploratory
Exploratory
Exploratory
![Page 25: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/25.jpg)
![Page 26: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/26.jpg)
How do we decide what tests we need?
![Page 27: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/27.jpg)
A Note on Continuous Integration
• You should do it• Gated check-ins? Yes or No
Build Type Unit Functional AcceptanceCheck-in/On-Demand X ?“Nightly” X X ?Deployments X X X
![Page 28: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/28.jpg)
![Page 29: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/29.jpg)
Service
Service Service
Application
DB
DB
External System External System
Service
![Page 30: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/30.jpg)
![Page 31: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/31.jpg)
![Page 32: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/32.jpg)
Wait, but…You can’t go to Prod like this!!
![Page 33: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/33.jpg)
Wait, but…You can’t go to Prod like this!!
Yes, um…you can, and we have several times!
![Page 34: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/34.jpg)
ASTEROIDDebit Card Network
Payment Service
Payment Service
SIMULATOR/MOCKS
Promote to Production
![Page 35: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/35.jpg)
ASTEROIDDebit Card Network
Payment Service
Payment Service
SIMULATOR/MOCKS
ISOFormat
ISOFormat
Promote to Production
![Page 36: Test Your Own Stuff - Scrum Atlanta 2015](https://reader033.vdocuments.mx/reader033/viewer/2022051706/58ea66a31a28ab4d578b4f33/html5/thumbnails/36.jpg)
References
• XUnit Patterns – Gerald Meszaros• Developsense blog – Michael Bolton• Dependencies Break Agile – Michael Cottmeyer• I’ve got Integration and System Tests, Why do I Need Uni
t Tests? – James Grenning
• Integration Tests are a Scam! – J.B. Rainsberger• Managing Requirements Dependencies Between Agile Te
ams – Scott Ambler
• Driving Development With Tests: ATDD and TDD – Elisabeth Hendrickson