2014-11-14 - why test driven development (tdd) works for sysadmins @ lisa14
DESCRIPTION
Why TDD Works for Sysadmins - Presented 2014-11-14 at LISA in Seattle.TRANSCRIPT
![Page 1: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/1.jpg)
Garrett Honeycutt [email protected]
learnpuppet.com @learnpuppet
Garrett Honeycutt [email protected] learnpuppet.com @learnpuppet
![Page 2: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/2.jpg)
![Page 3: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/3.jpg)
![Page 4: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/4.jpg)
TDD?
![Page 5: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/5.jpg)
Why Test?
![Page 6: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/6.jpg)
![Page 7: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/7.jpg)
![Page 8: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/8.jpg)
DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS!
![Page 9: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/9.jpg)
![Page 10: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/10.jpg)
![Page 11: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/11.jpg)
![Page 12: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/12.jpg)
![Page 13: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/13.jpg)
![Page 14: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/14.jpg)
![Page 15: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/15.jpg)
![Page 16: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/16.jpg)
![Page 17: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/17.jpg)
Why Test First?
![Page 18: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/18.jpg)
![Page 19: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/19.jpg)
![Page 20: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/20.jpg)
![Page 21: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/21.jpg)
![Page 22: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/22.jpg)
![Page 23: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/23.jpg)
![Page 24: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/24.jpg)
What to Test?
![Page 25: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/25.jpg)
![Page 26: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/26.jpg)
![Page 27: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/27.jpg)
![Page 28: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/28.jpg)
Tooling
![Page 29: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/29.jpg)
![Page 30: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/30.jpg)
![Page 31: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/31.jpg)
![Page 32: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/32.jpg)
![Page 33: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/33.jpg)
![Page 34: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/34.jpg)
![Page 35: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/35.jpg)
![Page 36: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/36.jpg)
![Page 37: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/37.jpg)
![Page 38: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/39.jpg)
$ 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](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/40.jpg)
![Page 41: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/41.jpg)
![Page 42: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/42.jpg)
![Page 43: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/43.jpg)
Monitoring
![Page 44: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/44.jpg)
![Page 45: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/45.jpg)
$ 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](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/46.jpg)
$ 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](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/47.jpg)
![Page 48: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/48.jpg)
write tests (which fail)
![Page 49: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/49.jpg)
just enough code to pass
![Page 50: 2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14](https://reader033.vdocuments.mx/reader033/viewer/2022052622/55928e941a28aba8708b45e0/html5/thumbnails/50.jpg)
refactor