📝
テスト・品質保証 2026年4月1日

テスト戦略

📁 概念 👁 -- 閲覧

テスト戦略

定義

ソフトウェアの欠陥を発見するために、どのテストをどの順序・粒度で実施するかの計画。

なぜ重要か

テストは欠陥を「見つける」活動であり、「ないことを証明する」活動ではない(Dijkstra)。

欠陥は発見が遅れるほど修正コストが上がる。単体テストで見つければ修正コスト = 1、本番後 = 100。テスト戦略を持つことで欠陥を早く・安く発見できる。

テストピラミッド

      /\
     /  \
    / E2E\       少ない・遅い・高コスト
   /------\
  /統合テスト\   中程度
 /----------\
/ 単体テスト  \  多い・速い・低コスト
  • 単体テスト(Unit): 関数・クラス単体の動作確認。高速・大量に実行可能
  • 統合テスト(Integration): コンポーネント間のインターフェースの動作確認
  • システムテスト(System): システム全体が要件を満たすかの確認

テスト技法

ブラックボックステスト(仕様に基づく):

  • 同値分割: 入力を等価なグループに分け各グループから1件テスト
  • 境界値分析: 境界付近の値(最小値・最大値・その前後)をテスト

ホワイトボックステスト(構造に基づく):

  • 文カバレッジ: 全コード行を少なくとも1回実行
  • 分岐カバレッジ: 全条件分岐の真・偽を実行

TDD(テスト駆動開発)

Red → Green → Refactor のサイクル。TDDの価値はテストの存在ではなく、テストを先に書くことで設計が改善される点にある。

適用場面

  • プロジェクト開始時にテスト戦略を決めるとき
  • E2Eテストが増えすぎてCIが遅くなっているとき
  • テストが書きにくいコードに対してアプローチを選ぶとき

関連概念

出典

実践ソフトウェアエンジニアリング(Pressman)第20〜23章