~/talk

Testing The Untestable

Talkat Big Ruby 2014 · 2014-02-20..02-21· [ruby]

A five‑year build pack starts with exactly zero tests and becomes a deployable, testable system by running real git repos against Heroku, measuring deploy logs, and tolerating flaky networks with retries and parallelism. It uses Hatchet to clone and deploy, a reple runner to drive interactive shells, Bundler retry features, Travis for CI, and RSpec plus rspec retry for nondeterministic failures. Result: 44 real end‑to‑end cases run in ~12 minutes, and targeted refactors save ~200ms per run.

AI-written summary · about

  1. 0:00Intro
  2. 3:33What about the real world?
  3. 4:39What if the spreadsheet is wrong?
  4. 4:50Testing!
  5. 5:06Programmers are lucky
  6. 5:17Our tests are programs
  7. 5:42Outer Space is a lifeless vacuum
  8. 7:20Back To Software
  9. 7:40Task Force
  10. 8:38What is a buildpack?
  11. 9:074,573 lines of edge cases of
  12. 10:15Minimum Viable Patch
  13. 10:59the Fastest
  14. 11:17What's the cure for the MVP?
  15. 11:44Black box testing
  16. 12:32Real Ruby apps, real deploys
  17. 13:17clone repo create heroku app
  18. 16:08Process deadlock is no joke
  19. 18:50Your tests FAIL
  20. 21:41Failed assertions cause a test re-run
  21. 22:33code, use probability to approximate determinism
  22. 23:25Hatchet is test framework agnostic
  23. 23:38Run single tests
  24. 23:56RSpec plugin system is amazing
  25. 25:34First test: -5 minutes
  26. 26:34Parallel Rspec Runner
  27. 28:48Did testing make the buildpack faster?
  28. 29:21Unit test those components
  29. 30:40What does a black box Rails test look like?
  30. 30:57Mock for determinism
  31. 31:59Start with integration tests
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.