~/talk

Deterministic Solutions to Intermittent Failures

Talkat RubyConf 2017 · 2017-11-15..11-17· [testing]
github:tmertens
slides:none on file

Claims a repeatable workflow that turns “flaky” tests into deterministic failures, with concrete tools and steps: run the failing test alone, re-run the CI test group with the reported RSpec --seed, use RSpec’s --bisect to find the minimal reproducer, loop a test 100.times, and inspect data pollution, unordered queries, caching, timezones, and async timeouts. Cites Timecop/Timecop‑rspec, SitePrism load validation, parallel CI pain, and months of work fixing thousands of tests to make builds stable.

AI-written summary · about

  1. 0:00Intro
  2. 2:30Source Code Examples
  3. 3:47Tests Are Software Too
  4. 10:32Common Reproducible Failures
  5. 13:12RSpec Test Group
  6. 14:03Re-running Test Group With Seed
  7. 16:23Data Pollution
  8. 16:43Defensive Testing
  9. 18:52Class/Singleton Caching
  10. 20:33Mutated Constants
  11. 22:14Mutated (Test) Constants
  12. 24:07Running Tests in a Loop
  13. 25:12Unordered Queries
  14. 26:42Frozen Time
  15. 27:48Randomized Test Data
  16. 29:18Date and Time
  17. 30:24UTC vs Local Date/Time
  18. 31:23SQL Date Comparisons
  19. 32:46Timeouts and Asynchronous Javascript
  20. 35:19Environmental Differences
  21. 37:02Strategies for Unreproducible Failures
  22. 39:56Takeaways
~/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.