テスト失敗は、必ずしも実装の不具合とは限りません。仕様変更で期待値が古い、時刻や順序に依存する、CIだけ設定が違う場合もあります。
切り分け順
- 最初の失敗メッセージを読む
- 対象テストだけを再実行する
- 毎回同じ結果か確認する
- 直前の実装・テスト・設定変更を見る
- 実際値と期待値のどちらが仕様に合うか確認する
三つの候補
| 候補 | 例 |
|---|---|
| 実装 | 計算結果やエラー処理が仕様と違う |
| テスト | 古い文言や順序を期待している |
| 環境 | タイムゾーン、DB、環境変数が違う |
不安定なテスト
再実行すると通るテストは放置しません。固定待ち時間、共有状態、実行順、外部通信への依存を確認します。
修正後
失敗した理由を説明でき、同じ原因を再現するテストになっているか確認します。単に期待値を実際値へ合わせるだけでは、バグを承認する可能性があります。