Что такое deterministic testing?

Middle+
313 просмотров
AFK Offer AI

Deterministic testing — тесты которые дают одинаковый результат при каждом запуске. Concurrent код по умолчанию недетерминирован — порядок горутин непредсказуем. Как добиться детерминизма: 1) Контролируй время через clock interface. 2) Контролируй random через seed. 3) Используй каналы для синхронизации вместо sleep. 4) Сортируй результаты перед сравнением если порядок не важен. 5) Мокируй внешние зависимости. Flaky test — тест который иногда проходит, иногда нет — это недетерминированный тест. Каждый flaky test подрывает доверие ко всему test suite.

Следующий вопрос

Что такое goroutine dump?