Alex Rodionov
Alex Rodionov

I have been doing software testing for more than 12 years. For the last 5 years, I help to improve the quality in Toptal, the largest fully distributed high-skilled workforce in the world. Contributor to Mozilla. A developer of Watir. Selenium committer and maintainer of selenium-webdriver gem.

Crystalball: predicting test failures

Tests are often slow and are a bottleneck in development. We build complex CI systems with heavy parallelization to reduce the amount of time it takes to run all the tests, but we still tend to run all of them even for the slightest change in code. What if instead, we could run only the tests that might fail as a result of our changes? In a world of static languages, it's not hard, but Ruby is very flexible and dynamic language so implementing this idea is tricky.

Meet Crystalball - a regression test selection library we built in Toptal. I'll demonstrate how to use it with RSpec, how it predicts what tests to run and how it can be extended.