Skip to content

テストとは何か?

JSTQB Foundation Level(V4.0)における「テスト」の定義と、よく混同される「デバッグ」との違いについて整理します。

多くの人は「テスト」と聞くと、ソフトウェアを動かしてバグを見つけること(テスト実行)だけをイメージしがちです。しかし、JSTQBにおけるテストは、ソフトウェア開発ライフサイクル全体を通じたプロセスを指します。

  • 静的テスト: コードを実行せずに行う(レビュー、ドキュメントのチェックなど)。
  • 動的テスト: コードを実行して行う(単体テスト、システムテストなど)。

テストは「実行」だけでなく、計画、分析、設計、そして結果の報告までを含んだ活動です。

テストの目的は状況(テストレベルやSDLC)によって異なりますが、主に以下のようなものがあります。

  1. 作業成果物の評価: 要件定義書、ユーザーストーリー、設計書、コードなどの品質を確認する。
  2. 欠陥の検出: 故障や欠陥を見つけ出し、修正できるようにする。
  3. カバレッジの確保: テスト対象が十分に網羅されているかを確認する。
  4. リスクの低減: 未発見の欠陥が残っているリスクを減らす。
  5. ステークホルダーへの情報提供: リリース判断に必要な品質情報を提供する。
  6. プロセス順守の確認: 契約や法的要件、標準規格に準拠しているか確認する。

この2つは密接に関係していますが、役割が異なります。

項目テスト (Testing)デバッグ (Debugging)
主体テスト担当者(または開発者)開発者
活動欠陥によって引き起こされる故障を示すこと。故障の原因となる欠陥を見つけ、分析し、修正すること。
プロセス欠陥を見つけるための活動。修正後に、再発していないか確認する活動(確認テスト)も含む。

つまり、 「テストで故障を見つけ、デバッグでその原因(バグ)を直す」 という関係性です。