SlideShare a Scribd company logo
Continuous
Testing
J a r e d R i c h a r d s o n
A g i l e A r t i s a n s
1
Who are you?
2
Jared Richardson
CoAuthored Ship It! and Career 2.0	

Screencast editor for PragProg.com	

Started AgileRTP in 2007	

2nd public signatory of the Agile Manifesto	

Agile coach	

AgileArtisans.com
3
What Is Agile?
4
AgileManifesto.org
5
Feedback Loops
6
Feedback Loops are
Fractal
flickr.com/photos/dancentury/4579906149
7
flickr.com/photos/bobowen/4501875907
flickr.com/photos/30691679@N07/3808395213
flickr.com/photos/kevino/1438502858
8
Pairing
Test First
Daily Meetings
Demos
???
Feedback Loops
Inside Feedback Loops
9
Different Levels
Good at the bottom	

Great at the top	

Ignore the middle
10
Continuous Feedback
Continuous Integration	

Continuous Delivery	

Continuous Testing
11
Continuous Integration
Watch Code
Build product
Run tests
Publish results
12
Continuous Testing
Watch CI
Deploy
product
Integration
tests
Publish results
13
Continuous Testing
Build in CI (compile & unit tests)	

Deploy to dev (staging)	

Run integration tests
14
What does this tell us?
If it works
15
Continuous deployment is controversial. 



Most people ... think I’m advocating 

low-quality code 

or an undisciplined 

cowboy-coding 

development process.
ERIC RIES
radar.oreilly.com/2009/03/continuous-deployment-5-eas.html
16
Language is a Tool
Use it
17
What's this look like?
18
Java Tooling
Publish results
19
Example
Publish results
javac (Oracle & IBM)
message broker
etc
ws ejb deploy
message broker tools
sshexec (to scripts)
JUnit
HP's UFT
Selenium
Web page
RSS
Email
20
Continuous Testing
CI CT
Compile &
unit test
Deploy &
integration
test
21
Multiplatform Deploys
CI
CD Win7
CD Linux
CD AIX
22
Binaries
Nuke & Pave
Delete
Recompile
Deploy
Use
23
flickr.com/photos/x-ray_delta_one/4152356464
23
Data
Nuke & Pave
Delete schema
Drop tables
Recreate
Restock
Rails
Liquibase
24
flickr.com/photos/x-ray_delta_one/4152356464
24
Rails ActiveRecord
CREATE	
  TABLE	
  products	
  (	
  
	
  	
  	
  id	
  int(11)	
  NOT	
  NULL	
  auto_increment,	
  
	
  	
  	
  name	
  varchar(255),	
  
	
  	
  	
  PRIMARY	
  KEY	
  	
  (id)	
  
);
25
25
Rails ActiveRecord
change_table :card_deck do |t|

t.remove :description, :name 

t.string :first_name

t.index :part_number

t.rename :list_name, :last_name

end
26
26
Rails ActiveRecord
rake db:migrate
rake db:migrate VERSION=0
rake db:reset
27
27
Operating System
Nuke & Pave
Virtualize
Recreate
28
flickr.com/photos/x-ray_delta_one/4152356464
28
Vagrant
vagrant init lnx http://lnx/lnx.box	
vagrant up	
vagrant ssh	
vagrant reload --provision
29
29
Vagrant
Vagrant.configure("2") do |config|	
config.vm.box = "lnx"	
config.vm.provision :shell, :path => "bootstrap.sh"	
end
30
30
Benefits
Reproducible environment	

Solid results	

Fast results	

Repeatable results
31
Fast
feedback
leads to
fast fixes
32
Minimize Dark Times
Code Change
Validation
http://flickr.com/photos/bogenfreund/556656621/
33
When?
Day one	

Easiest
34
Easy?
No	

Difficult	

Necessary	

Code	

35
Alternatives
36
flickr.com/photos/lightsinthedark/5810724330/
Work in a vacuum
37
Ruthlessly
Automate!
Builds	

Deploys	

Tests
flickr.com/photos/pmillera4/9317924474
38
Steps
Automate builds	

Continuous Integration	

Add unit tests	

Automate deployments	

Continuous Delivery	

Add integration tests
flickr.com/photos/untitlism/2547423465
39
Your move
40
Exercise
Two 3x5 cards	

3 reasons for Continuous Testing	

3 barriers to adoption	

Pass cards to the next table	

Brainstorm on solutions
flickr.com/photos/curtisperry/6119618990
41
Tips
Open standards...	

Junit or Junit compatible	

Avoid vendor lock in	

Glue tools	

Time matters....	

Fast servers	

Incremental change
42
Resources
JUnit JUnit.org	

Jenkins Jenkins-ci.org	

BDD Dannorth.net/introducing-bdd	

Cucumber Cukes.info	

Continuous Deployment en.wikipedia.org/wiki/Continuous_delivery
43
Devops Resources
VagrantUp.com	

GetChef.com/chef	

PuppetLabs.com	

Ansible.com	

VirtualBox.org
44
Data Resources
Guides.RubyOnRails.org/active_record_basics.html	

Liquibase.org	

FlywayDB.org
45 46

More Related Content

PDF
What is new in JUnit5
PDF
Taming your CQ/AEM instances with the Apache Sling Health Checks
PDF
Automated self-testing and health check of CQ and Sling instances
PDF
PDF
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
PDF
Will it blend? Java agents and OSGi
PDF
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
PDF
GROWS at Southern Fried Agile 2015 in Charlotte
What is new in JUnit5
Taming your CQ/AEM instances with the Apache Sling Health Checks
Automated self-testing and health check of CQ and Sling instances
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
Will it blend? Java agents and OSGi
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
GROWS at Southern Fried Agile 2015 in Charlotte

Viewers also liked (20)

PDF
Grows for Executives
PDF
Acceptance Test Driven Development at StarWest 2014
PPTX
Continuous Testing in Vegas
PDF
Branded Customer Experience – Bridging promise and fulfillment
PDF
Brand Services – A user centric marketing tool
PDF
Fundamentals of Object-Oriented UX
PDF
Service Branding – Designing for distinction
PDF
A Brief Guide to Service Design (UX Brighton) by Paul Thurston & Nick Marsh
PDF
Archetypal Branding: Cult Branding 2.0
PDF
Creating a Culture of UX
PDF
Measuring What Matters: A UX Approach to Metrics :: UX Days Tokyo [April 2015]
PDF
UX 프로젝트 가이드 (UX Project Guide)
PPTX
Lean UX: Getting out of the deliverables business
PDF
An introduction to UX in Scrum
PDF
Ux design process
PDF
UX Fundamentals for Startups
PPTX
UX Playbook - 15 Minutes to Better Performance
KEY
Why UX Design Needs Content Strategy
PDF
Startup/Digital Marketing 2.0: Growth Hacking Thru UX
PDF
Our Startup Branding Journey - What Makes A Brand Memorable?
Grows for Executives
Acceptance Test Driven Development at StarWest 2014
Continuous Testing in Vegas
Branded Customer Experience – Bridging promise and fulfillment
Brand Services – A user centric marketing tool
Fundamentals of Object-Oriented UX
Service Branding – Designing for distinction
A Brief Guide to Service Design (UX Brighton) by Paul Thurston & Nick Marsh
Archetypal Branding: Cult Branding 2.0
Creating a Culture of UX
Measuring What Matters: A UX Approach to Metrics :: UX Days Tokyo [April 2015]
UX 프로젝트 가이드 (UX Project Guide)
Lean UX: Getting out of the deliverables business
An introduction to UX in Scrum
Ux design process
UX Fundamentals for Startups
UX Playbook - 15 Minutes to Better Performance
Why UX Design Needs Content Strategy
Startup/Digital Marketing 2.0: Growth Hacking Thru UX
Our Startup Branding Journey - What Makes A Brand Memorable?
Ad

Similar to Continuous Testing (20)

PDF
Continuous Testing
PDF
Testing in FrontEnd World by Nikita Galkin
PDF
Sprint 149
PDF
Никита Галкин "Testing in Frontend World"
PDF
How to Design a Program Repair Bot? Insights from the Repairnator Project
PPTX
Continuous Integration and Delivery using TeamCity and Jenkins
PPTX
Exploring version control ci cd for development
PDF
Continuous Deployment and Testing Workshop from Better Software West
PDF
(automatic) Testing: from business to university and back
PDF
From System Modeling to Automated System Testing
PDF
Troubleshooting tips from docker support engineers
PDF
PhD Dissertation Defense (April 2015)
PDF
Cloud Native Serverless Java — Orkhan Gasimov
PPTX
Bots on guard of sdlc
PDF
Hitchhiker's guide to Functional Testing
PPTX
Developer Group - Sitecore Application Lifecycle Management
PDF
Study Guide Comprehensive Outline for the OutSystems 11 Web Associate Applica...
PDF
Sprint 143
PDF
Binding android piece by piece
PDF
Testing, Learning and Professionalism — 20171214
Continuous Testing
Testing in FrontEnd World by Nikita Galkin
Sprint 149
Никита Галкин "Testing in Frontend World"
How to Design a Program Repair Bot? Insights from the Repairnator Project
Continuous Integration and Delivery using TeamCity and Jenkins
Exploring version control ci cd for development
Continuous Deployment and Testing Workshop from Better Software West
(automatic) Testing: from business to university and back
From System Modeling to Automated System Testing
Troubleshooting tips from docker support engineers
PhD Dissertation Defense (April 2015)
Cloud Native Serverless Java — Orkhan Gasimov
Bots on guard of sdlc
Hitchhiker's guide to Functional Testing
Developer Group - Sitecore Application Lifecycle Management
Study Guide Comprehensive Outline for the OutSystems 11 Web Associate Applica...
Sprint 143
Binding android piece by piece
Testing, Learning and Professionalism — 20171214
Ad

Recently uploaded (20)

PPTX
ai tools demonstartion for schools and inter college
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPT
Introduction Database Management System for Course Database
PPTX
history of c programming in notes for students .pptx
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
System and Network Administraation Chapter 3
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Essential Infomation Tech presentation.pptx
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Transform Your Business with a Software ERP System
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
System and Network Administration Chapter 2
ai tools demonstartion for schools and inter college
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Online Work Permit System for Fast Permit Processing
ManageIQ - Sprint 268 Review - Slide Deck
Introduction Database Management System for Course Database
history of c programming in notes for students .pptx
Materi_Pemrograman_Komputer-Looping.pptx
2025 Textile ERP Trends: SAP, Odoo & Oracle
System and Network Administraation Chapter 3
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Softaken Excel to vCard Converter Software.pdf
Essential Infomation Tech presentation.pptx
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PTS Company Brochure 2025 (1).pdf.......
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Transform Your Business with a Software ERP System
How to Migrate SBCGlobal Email to Yahoo Easily
System and Network Administration Chapter 2

Continuous Testing

  • 1. Continuous Testing J a r e d R i c h a r d s o n A g i l e A r t i s a n s 1 Who are you? 2 Jared Richardson CoAuthored Ship It! and Career 2.0 Screencast editor for PragProg.com Started AgileRTP in 2007 2nd public signatory of the Agile Manifesto Agile coach AgileArtisans.com 3 What Is Agile? 4
  • 2. AgileManifesto.org 5 Feedback Loops 6 Feedback Loops are Fractal flickr.com/photos/dancentury/4579906149 7 flickr.com/photos/bobowen/4501875907 flickr.com/photos/30691679@N07/3808395213 flickr.com/photos/kevino/1438502858 8
  • 3. Pairing Test First Daily Meetings Demos ??? Feedback Loops Inside Feedback Loops 9 Different Levels Good at the bottom Great at the top Ignore the middle 10 Continuous Feedback Continuous Integration Continuous Delivery Continuous Testing 11 Continuous Integration Watch Code Build product Run tests Publish results 12
  • 4. Continuous Testing Watch CI Deploy product Integration tests Publish results 13 Continuous Testing Build in CI (compile & unit tests) Deploy to dev (staging) Run integration tests 14 What does this tell us? If it works 15 Continuous deployment is controversial. 
 
 Most people ... think I’m advocating 
 low-quality code 
 or an undisciplined 
 cowboy-coding 
 development process. ERIC RIES radar.oreilly.com/2009/03/continuous-deployment-5-eas.html 16
  • 5. Language is a Tool Use it 17 What's this look like? 18 Java Tooling Publish results 19 Example Publish results javac (Oracle & IBM) message broker etc ws ejb deploy message broker tools sshexec (to scripts) JUnit HP's UFT Selenium Web page RSS Email 20
  • 6. Continuous Testing CI CT Compile & unit test Deploy & integration test 21 Multiplatform Deploys CI CD Win7 CD Linux CD AIX 22 Binaries Nuke & Pave Delete Recompile Deploy Use 23 flickr.com/photos/x-ray_delta_one/4152356464 23 Data Nuke & Pave Delete schema Drop tables Recreate Restock Rails Liquibase 24 flickr.com/photos/x-ray_delta_one/4152356464 24
  • 7. Rails ActiveRecord CREATE  TABLE  products  (        id  int(11)  NOT  NULL  auto_increment,        name  varchar(255),        PRIMARY  KEY    (id)   ); 25 25 Rails ActiveRecord change_table :card_deck do |t|
 t.remove :description, :name 
 t.string :first_name
 t.index :part_number
 t.rename :list_name, :last_name
 end 26 26 Rails ActiveRecord rake db:migrate rake db:migrate VERSION=0 rake db:reset 27 27 Operating System Nuke & Pave Virtualize Recreate 28 flickr.com/photos/x-ray_delta_one/4152356464 28
  • 8. Vagrant vagrant init lnx http://lnx/lnx.box vagrant up vagrant ssh vagrant reload --provision 29 29 Vagrant Vagrant.configure("2") do |config| config.vm.box = "lnx" config.vm.provision :shell, :path => "bootstrap.sh" end 30 30 Benefits Reproducible environment Solid results Fast results Repeatable results 31 Fast feedback leads to fast fixes 32
  • 9. Minimize Dark Times Code Change Validation http://flickr.com/photos/bogenfreund/556656621/ 33 When? Day one Easiest 34 Easy? No Difficult Necessary Code 35 Alternatives 36
  • 10. flickr.com/photos/lightsinthedark/5810724330/ Work in a vacuum 37 Ruthlessly Automate! Builds Deploys Tests flickr.com/photos/pmillera4/9317924474 38 Steps Automate builds Continuous Integration Add unit tests Automate deployments Continuous Delivery Add integration tests flickr.com/photos/untitlism/2547423465 39 Your move 40
  • 11. Exercise Two 3x5 cards 3 reasons for Continuous Testing 3 barriers to adoption Pass cards to the next table Brainstorm on solutions flickr.com/photos/curtisperry/6119618990 41 Tips Open standards... Junit or Junit compatible Avoid vendor lock in Glue tools Time matters.... Fast servers Incremental change 42 Resources JUnit JUnit.org Jenkins Jenkins-ci.org BDD Dannorth.net/introducing-bdd Cucumber Cukes.info Continuous Deployment en.wikipedia.org/wiki/Continuous_delivery 43 Devops Resources VagrantUp.com GetChef.com/chef PuppetLabs.com Ansible.com VirtualBox.org 44