Slide 1

Slide 1 text

@robb1e Software Engineer, Pivotal Labs Robbie Clutton Quarantine

Slide 2

Slide 2 text

@robb1e $ rake ..........F......... $ rake ................... $ rake ....F...........F.... $ rake ...................

Slide 3

Slide 3 text

@robb1e You say... Oh, it’s just that flakey test, run the build again

Slide 4

Slide 4 text

@robb1e 3 minutes ago: failed 12 minutes ago: passed 30 minutes ago: failed 45 minutes ago: failed 2 hours ago: passed

Slide 5

Slide 5 text

@robb1e You say... Run all build agents, one of them will go through

Slide 6

Slide 6 text

@robb1e

Slide 7

Slide 7 text

@robb1e Confidence, meet window

Slide 8

Slide 8 text

@robb1e @quarantine Scenario: Something flakey #.... describe “Flakey”, :quarantine do # ...

Slide 9

Slide 9 text

@robb1e #regular ci build #!/bin/bash cucumber --tags ~@quarantine rspec . --tags ~quarantine

Slide 10

Slide 10 text

@robb1e #quarantine ci build #!/bin/bash cucumber --tags @quarantine rspec . --tags quarantine

Slide 11

Slide 11 text

@robb1e Regular Quarantine Deploy Continuous Integration

Slide 12

Slide 12 text

@robb1e BUILD NANNY 1. Rewrite 2. Rethink 3. Delete

Slide 13

Slide 13 text

“You should not be afraid to delete tests that are no longer providing value, no matter whether you originally planned to keep them or not. We tend to treat tests as these holy creatures that live blameless, irreproachable lives once they have sprung into existence. Not so. The maintenance required to keep a test running weighs against its value in further development. Sometimes these lines cross, and the test simply becomes a burden on the project. Having the skill and experience to recognize a burdensome test is something we should be bringing to our clients, as well as the fortitude to rewrite it, rethink it, or delete it." - Adam Milligan

Slide 14

Slide 14 text

@robb1e Request Controller Model View Javascript Decorator Database

Slide 15

Slide 15 text

@robb1e $ rake ................... $ rake ................... $ rake ................... $ rake ...................

Slide 16

Slide 16 text

@robb1e 3 minutes ago: passed 12 minutes ago: passed 30 minutes ago: passed 45 minutes ago: passed 2 hours ago: passed

Slide 17

Slide 17 text

@robb1e Time to get the confidence back

Slide 18

Slide 18 text

@robb1e Q/A