Skip to content

2.2 ステートメントテスト (Statement Testing)

「ステートメントテスト(Statement Testing)」 は、ソースコード内の「実行可能なステートメント(命令文)」に焦点を当てたホワイトボックステスト技法です。

このテストの目的は、コード内のすべての処理(計算、代入、メソッド呼び出しなど)が、テスト実行時に少なくとも1回は実行されるようにテストケースを設計することです。Foundation Level(FL)でも学習する基本的な技法ですが、テクニカルテストアナリスト(TTA)は、この技法を実務で適用し、カバレッジツールの結果を正確に分析する能力が求められます。


ステートメントカバレッジ(C0)の計算

Section titled “ステートメントカバレッジ(C0)の計算”

ステートメントテストの網羅率は 「ステートメントカバレッジ(Statement Coverage)」 としてパーセンテージで測定されます。一般的に C0カバレッジ とも呼ばれます。

計算式:

ステートメントカバレッジ = (実行されたステートメントの数 / 実行可能な全ステートメントの数) × 100

  • TTAのタスク: TTAは、コードカバレッジツールを実行し、ステートメントカバレッジが目標値(多くの場合100%)に達しているかを確認します。未実行のステートメントが残っている場合、TTAはコードの制御フローを分析し、その行を実行するための「特定の入力値」や「事前条件」を割り出してテストケースを追加します。

TTAが知っておくべき「限界」と「リスク」

Section titled “TTAが知っておくべき「限界」と「リスク」”

ステートメントテストは重要な第一歩ですが、TTAは 「ステートメントテストはホワイトボックステストの中で最も弱い(網羅性が低い)カバレッジ基準である」 という事実を深く理解していなければなりません。

1. False(偽)の条件を見落とすリスク

Section titled “1. False(偽)の条件を見落とすリスク”

ステートメントカバレッジの最大の弱点は、「判定の False(偽)側」に処理が書かれていない場合、それをテストしなくてもカバレッジが100%になってしまう点です。

// サンプルコード
1: int discount = 0;
2: if (isPremiumMember) {
3: discount = 10;
4: }
5: return price - discount;