非決定的なテスト - CI/CD用語集の定義
非決定的なテストは時刻や乱数といった制御されない入力に依存し、その結果を予測不能にします。
非決定的なテストは、タイミング、乱数、システムクロックなどの制御されていない要因に依存する結果を生むため、コードを変更しなくても成功したり失敗したりします。非決定性はほとんどの不安定さの根源です。
原因には、シード未設定の乱数値、実際のタイムスタンプ、ネットワークの遅延、実行順序への依存が含まれます。テストを決定的にするとは、これらの入力を制御することです。
修正方法
乱数生成器にシードを与え、フェイクの時計を注入し、ネットワーク呼び出しをスタブ化します。決定的なテストは、どのrunnerでも毎回同じ結果を返します。
関連ガイド
Flaky Test - CI/CD Glossary DefinitionFlaky Test: A flaky test passes or fails inconsistently on the same code, without any change. Common causes a…
Fake - CI/CD Glossary DefinitionFake: A fake is a test double with a working but simplified implementation, such as an in-memory database ins…
Test Isolation - CI/CD Glossary DefinitionTest Isolation: Test isolation means each test runs independently, without depending on or affecting other te…