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;