2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

51
Garrett Honeycutt [email protected] learnpuppet.com @learnpuppet Garrett Honeycutt [email protected] learnpuppet.com @learnpuppet

description

Why TDD Works for Sysadmins - Presented 2014-11-14 at LISA in Seattle.

Transcript of 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

Page 2: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 3: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 4: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

TDD?

Page 5: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

Why Test?

Page 6: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 7: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 8: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS!

Page 9: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 10: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 11: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 12: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 13: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 14: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 15: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 16: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 17: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

Why Test First?

Page 18: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 19: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 20: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 21: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 22: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 23: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 24: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

What to Test?

Page 25: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 26: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 27: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 28: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

Tooling

Page 29: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 30: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 31: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 32: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 33: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 34: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 35: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 36: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 37: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 38: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

require 'spec_helper' !

describe package('httpd') do it { should be_installed } end !

describe service('httpd') do it { should be_enabled } it { should be_running } end !

describe port(80) do it { should be_listening } end

Page 39: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

$ rake spec !

Package "httpd" should be installed !

Service "httpd" should be enabled should be running !

Port "80" should be listening !

4 examples, 0 failures

Page 40: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 41: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 42: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 43: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

Monitoring

Page 44: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 45: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

$ ping -c1 example.com PING example.com (93.184.216.119): 56 data bytes 64 bytes from 93.184.216.119: icmp_seq=0 ttl=58 time=4.947 ms !

--- example.com ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 4.947/4.947/4.947/0.000 ms

Page 46: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

$ curl example.com -I HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control: max-age=604800 Content-Type: text/html Date: Thu, 13 Nov 2014 03:52:15 GMT Etag: "359670651" Expires: Thu, 20 Nov 2014 03:52:15 GMT Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT Server: ECS (pae/3796) X-Cache: HIT x-ec-custom-error: 1 Content-Length: 1270

Page 47: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
Page 48: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

write tests (which fail)

Page 49: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

just enough code to pass

Page 50: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14

refactor