ISTQB Foundation Level(CTFL)試験の勉強シリーズ第5回です。
今回も公式サンプル問題をもとに、よく出題される テスト設計技法・カバレッジ・ホワイトボックステスト に関する5問を解説します。
問題の意図や選択肢の違いを理解すれば、単なる暗記ではなく「本質的な考え方」が身につきます。
【問題21】二値境界値分析(2-value BVA)のカバレッジを求める
シナリオ:
学生の成績を点数によってランク付けするシステムをテストしています。
|
点数範囲 |
評価 |
|---|---|
|
0~50 |
Fail |
|
51~60 |
Fair |
|
61~70 |
Satisfactory |
|
71~80 |
Good |
|
81~90 |
Very Good |
|
91~100 |
Excellent |
テスターは各範囲から1つずつテストケースを作成しました(合計6件)。
このとき、「2値境界値分析(Two-value Boundary Value Analysis)」のカバレッジ率はいくつでしょうか?
選択肢:
A. 50%
B. 67%
C. 75%
D. 100%
■ 解説
2値境界値分析では、各同値分割の下限値と上限値をテストする ことがルールです。
したがって、各範囲につき「2つのテストケース」が必要です。
|
範囲 |
下限値 |
上限値 |
|---|---|---|
|
Fail |
0 |
50 |
|
Fair |
51 |
60 |
|
Satisfactory |
61 |
70 |
|
Good |
71 |
80 |
|
Very Good |
81 |
90 |
|
Excellent |
91 |
100 |
→ 6つの範囲 × 2 = 12テストケース が必要。
現在あるテストは6件のみなので、カバレッジは
6 ÷ 12 = 50%
✅ 正解:A(50%)
💡ワンポイント
2値境界値分析=各範囲の両端をテストする
1値境界値分析(one-value BVA)は、1つの境界点(例えば下限のみ)を確認する手法です。
試験では「two-value」「three-value」などの表現が出たら、必ず境界ごとのテスト数を意識しましょう。
【問題22】決定表における「不可能な組み合わせ」を探す
シナリオ:
自転車レンタル店の会員管理システム(CRM)をテストします。
仕様は以下の通り:
-
誰でもレンタルできるが、会員は20%割引を受けられる。
-
返却期限を過ぎた場合は割引が無効。
-
会員が15回レンタルすると、Tシャツをプレゼント。
■ 質問:
上記の仕様に基づく決定表の中で、不可能なルール(組み合わせ) はどれか?
選択肢:
A. R4 — 会員であり、返却期限を守り、15回目のレンタル → 20%割引とTシャツのプレゼントを受ける。
B. R5 — 非会員であり、返却期限を過ぎており、15回目のレンタルではない → 割引なし、Tシャツなし。
C. R6 — 非会員であり、返却期限を守り、15回目のレンタルではない → 割引なし、Tシャツなし。
D. R8 — 非会員であり、返却期限を過ぎており、15回目のレンタル → Tシャツがプレゼントされる。
■ 解説
会員でない人が割引を受けたり、Tシャツをもらうことは仕様上あり得ません。
したがって「非会員がTシャツをもらう」条件が不可能な組み合わせです。
表では R8(非会員+期限超過+15回目レンタル=Tシャツ贈呈) が該当。
✅ 正解:D(R8)
💡ポイント
「非会員に特典がついている」など、仕様に反する条件を見つけることがコツです。
実務例:
クレジットカードの特典ロジックをテストする際も、
「ゴールド会員限定特典が一般会員に適用されている」
→ 不可能なルール(バグ) となります。
【問題23】状態遷移テスト:有効な遷移をすべて網羅する最小テスト数
シナリオ:
システムは以下の状態遷移を持っています。
Init → Test → Run → Pause/Resume → Done/Off
■ 質問:
有効な遷移をすべてカバーするために必要な最小のテストケース数はいくつ?
選択肢:
A. 1
B. 2
C. 4
D. 3
■ 解説
遷移の網羅には、すべての「有効な矢印(transition)」を1回以上通る必要があります。
-
Init → Test → Done
-
Init → Run → Error → Done
-
Run → Pause → Resume → Pause → Done
これで全ての遷移を網羅できます。
つまり、3つのテストケースで十分です。
✅ 正解:D(3件)
💡補足
状態遷移テストでは「遷移を全部通ること」が目的。
全ての状態をテストする「状態カバレッジ」と混同しないよう注意。
【問題24】100%ステートメントカバレッジを達成した場合の意味
質問:
テストスイートで100%ステートメントカバレッジを達成しました。
この結果が意味することはどれ?
■ 選択肢の確認
A. すべての命令が少なくとも1回実行された。
B. より多くのテストケースを追加すれば必ず100%カバレッジになる。
C. すべての経路が1回以上実行された。
D. すべての入力組み合わせが1回以上テストされた。
■ 解説
ステートメントカバレッジは「全ての命令を1回以上実行」すること。
経路や入力組み合わせを網羅するものではありません。
✅ 正解:A
💡補足例
if x > 0:
print(“positive”)
else:
print(“negative”)
-
x = 1 → 両方のステートメントが実行される(100%ステートメントカバレッジ)
-
しかし条件分岐(if/else)の両方を通ったわけではない(ブランチカバレッジは未達成)
【問題25】ホワイトボックステストについて「正しくないもの」はどれ?
■ 選択肢
A. ホワイトボックステストではソフトウェアの内部構造を考慮する。
B. カバレッジメトリクスは追加テストケースの特定に役立つ。
C. ホワイトボックステクニックは静的テストでも使える。
D. ホワイトボックステストは要件の欠落を発見できる。
■ 解説
ホワイトボックステストは、コード内部の構造・ロジックを対象とする技法です。
要件の抜け漏れ(要求の不備)はブラックボックステストで検出するもの。
✅ 正解:D
💡補足
ホワイトボックス=「実装の正しさ」
ブラックボックス=「要件どおりの動作」
実務では、両者を組み合わせて品質を保証します。
📝 まとめ:Part 5で学んだポイント
|
テーマ |
学びの要点 |
|---|---|
|
二値境界値分析 |
各範囲の上下限をテスト。100%カバレッジには範囲数×2 |
|
決定表テスト |
仕様に反する組み合わせ=不可能条件を見つける |
|
状態遷移テスト |
最小テスト数で全遷移を通る |
|
ステートメントカバレッジ |
命令を1回ずつ実行することが目的 |
|
ホワイトボックステスト |
内部構造をテスト、要件の抜け漏れは対象外 |
💬 まとめコメント
このPart 5では、「境界値分析」「決定表」「状態遷移」「ホワイトボックス」など、CTFLで頻出のテスト設計技法を総復習できました。
単なる暗記ではなく、“なぜそうなるのか” を理解することが合格への近道です。



コメント