Minimize Test Overlap(テストの重複を最小限にする)
1. 原則
テストケース間でテスト内容の重複はこれを避ける
- 複数のテストケースで同じロジックや振る舞いを繰り返し検証しない
- 各テストケースは、他のテストケースが検証していない独自の観点を担当する
- テストカバレッジの向上を目的とし、無意味な重複テストは排除する
2. 根拠
テストの効率化と保守性
- 重複したテストは、コード変更時の修正作業を増やす
- 同じバグに対して複数のテストが失敗すると、デバッグが煩雑になる
- 無駄なテスト実行時間を削減し、フィードバックを早く得る
3. 指針
独自の検証項目
- テスト対象のメソッドやクラスの振る舞いを網羅的に洗い出す
- 各振る舞いに対して、ユニークな観点を持つテストケースを作成する
- 例えば、正常系、境界値、異常系など、異なるシナリオごとにテストを設計する
4. 注意事項
テストスイートの整理
- テストスイート全体を俯瞰し、テストの役割分担を明確にする
- 各テストケースが、なぜ存在し、何を検証しているのかを理解する
- リファクタリング時に、冗長なテストケースは統合または削除する