🆗 Selective Test Execution at Stripe: Fast CI for a 50M-line Ruby monorepo
#testing #engineering
Цікавий кейс того, як зробили імпакт аналіз для автотестів в Stripe.
💡 Ідея
Запускати тільки ті автотести, які тестують конкретну зміну в PRі. Замість запуску 100 000 тестів на кожен PR, можна запускати декілька сотень. Як результат - швидший та більш точковий фідбек на те, де щось зламалося.
🛠 Імплементація
Очевидний варіант це статичний аналіз залежностей: який код тестує який тест. Це непогано працює для статично типизованого коду. В Stripe використовується динамічно-типізована мова Ruby. Тому розробники додали інструментальний код, що слідкує які файли використовувались під час запуску тесту. На основі цього будуються scope для тестів та їх індекси.
📚 Почитати більше про підхід
1. Accelerated Continuous Testing with Test Impact Analysis – Part 1
2. The Rise of Test Impact Analysis
3. Speed up testing by using Test Impact Analysis (TIA)
А ви користуєтесь impact analysis у вашій автоматизації?
Post #819
1.41K