第3章:テスト技法
ブラックボックステスト技法と経験ベースのテスト技法を使い分け、仕様からテストケースとカバレッジを導く。
問題1
入力値 score は整数で、仕様は次のとおりである。
0〜59:不合格60〜79:合格80〜100:優秀0未満、100超、整数以外:入力エラー
単一パラメーターについて、すべての同値パーティションを 1 回以上テストする場合、最小テストケース数はいくつか。
- 3
- 4
- 5
- 6
解答・解説
正解:4(6ケース)
パーティションは、0〜59、60〜79、80〜100、0未満、100超、整数以外の 6 個である。したがって、単純な同値パーティションカバレッジの最小ケース数は 6 個。
同じパーティションから複数の値を選んでも、パーティションカバレッジは増えない。
問題2
次のルールを持つ処理を考える。
- 条件A:カードが有効か
- 条件B:PIN が正しいか
- A が偽なら、B に関係なく「支払い拒否」
- A が真かつ B が真なら「支払い許可」
- A が真かつ B が偽なら「支払い拒否」
条件値の組み合わせを整理し、関係のない条件を - として簡単化した場合、最小ルール数はいくつか。
- 1
- 2
- 3
- 4
解答・解説
正解:3
次の 3 ルールになる。
| A | B | アクション |
|---|---|---|
| 偽 | - | 支払い拒否 |
| 真 | 真 | 支払い許可 |
| 真 | 偽 | 支払い拒否 |
A が偽の場合、PIN の正しさは適用されないため - にできる。高リスク領域では、簡単化によって条件値の欠陥を隠さないかを確認する。
問題3
次の状態遷移モデルを考える。
stateDiagram-v2
[*] --> 未ログイン
未ログイン --> 未ログイン: ログイン失敗
未ログイン --> ログイン済み: ログイン成功
ログイン済み --> 未ログイン: ログアウト
初期擬似状態から「未ログイン」へ入る初期化遷移を除き、業務イベントによる遷移について 100% の 0 スイッチ(遷移)カバレッジを達成するために、少なくともカバーすべき遷移の数はいくつか。
- 1
- 2
- 3
- 4
解答・解説
正解:3
遷移は「ログイン失敗」「ログイン成功」「ログアウト」の 3 個。0 スイッチカバレッジは、すべての遷移を少なくとも 1 回通ることを意味する。
1 スイッチカバレッジなら、連続する 2 遷移の有効なシーケンスも対象になる。N スイッチは、連続する N+1 個の遷移を表す。
問題4
3 個の 2 値パラメーター A、B、C について、次のテストセットは 100%ペアワイズカバレッジを満たすか。
| ケース | A | B | C |
|---|---|---|---|
| 1 | 0 | 0 | 0 |
| 2 | 0 | 1 | 1 |
| 3 | 1 | 0 | 1 |
| 4 | 1 | 1 | 0 |
- 満たさない。A-B のペアが不足する
- 満たさない。A-C のペアが不足する
- 満たさない。B-C のペアが不足する
- 満たす
解答・解説
正解:4
A-B、A-C、B-C の各パラメーター組について、00, 01, 10, 11 のすべてが少なくとも 1 回出現している。したがって 100%ペアワイズカバレッジを満たす。
ペアワイズは全組み合わせではなく、任意の 2 パラメーター間の値ペアをカバーする。3 つ以上の相互作用は見逃す可能性がある。
問題5
あるユースケースに、基本フロー 1 個、互いに同時実行できない代替フロー 2 個、エラー処理 2 個がある。各フローを別々のテストケースでカバーする場合、最小テストケース数はいくつか。
- 2
- 3
- 4
- 5
解答・解説
正解:4
基本フローに 1 ケース、代替フロー 2 個、エラー処理 2 個で、合計 5 ケースになる。
ユースケースの最小カバレッジは、基本フロー 1 ケースと、代替・エラー処理を十分にカバーする追加ケースである。互いに互換性がある代替フローなら統合できるが、この問題では統合できない。
問題6
次の状況で、最も適切な技法を選びなさい。
予約人数によって「1〜4名」「5〜9名」「10名以上」で料金が変わる。特に料金区分の切り替わりに誤りがないかを確認したい。
- 状態遷移テスト
- ペアワイズテスト
- 境界値分析
- 欠陥ベースのテスト
解答・解説
正解:3
料金区分の境界で処理が変わるため、境界値分析が適切である。例えば整数なら 0,1,2、3,4,5、8,9,10 など、採用する境界と方法に応じて前後の値を選ぶ。
問題7
探索的テストをタイムボックスで実施する。テストセッションを開始する際に、最初に用意すべきものとして最も適切なものを選びなさい。
- すべての画面操作を固定した詳細スクリプト
- セッションの目的・範囲・成果物を示すテストチャーター
- テスト対象のソースコードの完全なコピー
- 乱数だけで生成したテストデータ
解答・解説
正解:2
探索的テストでは、学習・計画・設計・実行・評価を同時に行う。タイムボックスとテストチャーターで目的、範囲、集中する問題、成果物を管理する。
完全な固定スクリプトに従うテストとは性質が異なるが、無目的・ランダムに行うものでもない。
問題8
欠陥ベースのテスト技法とブラックボックステスト技法の違いとして正しいものを選びなさい。
- 欠陥ベースは仕様から、ブラックボックスは欠陥分類法から導く
- 欠陥ベースは欠陥分類法から、ブラックボックスは仕様やモデルから導く
- 欠陥ベースはシステムテストでしか使えず、ブラックボックスは他のレベルで使えない
- 2 つの技法は同じなので、組み合わせる必要はない
解答・解説
正解:2
ブラックボックステストは要件、ユーザーストーリー、状態モデルなどから振る舞いを体系的に導く。欠陥ベースのテストは、探したい欠陥タイプ、根本原因、故障の兆候などを整理した欠陥分類法から導く。
両者は補完関係にあり、仕様から体系的に導いたテストに、エラー推測・探索的テスト・欠陥ベースのテストを追加してカバレッジのギャップを補うことができる。
問題9
2 つの独立したパラメーターについて、次のパーティションがある。
- A:有効 3 個、無効 2 個
- B:有効 2 個、無効 1 個
有効パーティションは単純カバレッジ、無効パーティションは他の値を有効にして 1 つずつ単独でテストする場合、最小ケース数はいくつか。
- 3
- 5
- 6
- 8
解答・解説
正解:3
有効パーティションの最小ケース数は、各パラメーターの有効パーティション数の最大値であるため 3。無効パーティションは A の 2 個と B の 1 個を個別にテストするため、3 + 2 + 1 = 6 ケースになる。
問題10
入力欄は正数と負数を受け付けるが、正数と負数で処理が異なる。ゼロは受け付けない。この場合のパーティションとして最も適切なものを選びなさい。
- 数値と数値以外の 2 個だけ
- 正数、負数、ゼロ、数値以外
- すべての数値を 1 個のパーティション
- 正数と負数だけ。ゼロは無視する
解答・解説
正解:2
処理が異なる正数と負数は分ける。ゼロは正でも負でもなく、受け付けない無効パーティションとして分ける。数値以外も別の無効パーティションになる可能性がある。
問題11
金額の有効範囲が 1.00〜10.00 で、小数第 2 位まで入力できる。2 値法で下限と上限を確認するテストデータとして適切なものを選びなさい。
1.00, 10.000.99, 1.00, 10.00, 10.010, 1, 10, 111.01, 9.99
解答・解説
正解:2
2 値法では境界上と境界の外側を使う。最小増分が 0.01 なので、下限は 0.99, 1.00、上限は 10.00, 10.01 となる。
問題12
次のうち、境界値分析を適用しやすいものを選びなさい。
- ビジネス上の順序がない色の名称
- 配列の最大要素数
- 任意の文章の意味の良さ
- チームメンバーの所属部署名
解答・解説
正解:2
境界値分析は順序付けられたパーティションに適用する。数値範囲だけでなく、配列要素数、文字列長、ループ回数、メモリサイズ、継続時間などにも適用できる。
問題13
デシジョンテーブルをレビューする観点として、最も適切な組み合わせを選びなさい。
- ルールが重複していない、実現可能な組み合わせを網羅している、意図した動作を表している
- ルール数が必ず最大である、入力値がすべて同じ、期待結果が不要
- 条件だけがあり、アクションは不要
- 実現不可能なルールも必ず実行する
解答・解説
正解:1
デシジョンテーブルは一貫性、完全性、正しさを確認する。実現不可能な組み合わせは除外するか、実現不可能であることを明示する。
問題14
デシジョンテーブルの条件が「年収 > 100,000:真」となっている。テストケースを作る際の説明として最も適切なものを選びなさい。
- 条件値の「真」をそのまま入力欄に入力する
- 条件を満たす具体的な顧客データを作り、期待結果を定義する
- 条件を満たすデータは作れないため、ルールを削除する
- 条件が真なら期待結果は不要である
解答・解説
正解:2
デシジョンテーブルの条件値は、実際の入力値と同じとは限らない。「真」を実現する具体的なデータを作り、そのルールに対応する期待結果を定義する。
問題15
状態遷移テストで検出しやすい欠陥として、最も不適切なものを選びなさい。
- 初期状態が誤っている
- 無効な遷移が実行できる
- ガード条件が誤っている
- ソースコードの変数名が規約と異なる
解答・解説
正解:4
状態遷移テストは、初期・終了状態、イベント、アクション、ガード条件、必須状態、有効・無効遷移などの欠陥を検出する。変数名の規約は、この技法の直接の対象ではない。
問題16
状態 A から B、C を経由して A に戻るループがある。ラウンドトリップカバレッジの説明として正しいものを選びなさい。
- A から出る遷移だけを 1 回テストする
- 状態を一度も訪問しない
- 無効遷移だけをテストする
- A から A に戻るループを、開始・終了状態ごとにテストする
解答・解説
正解:4
ラウンドトリップカバレッジは、ある状態から同じ状態へ戻るループを対象にする。開始・終了状態を除き、特定の状態を複数回含めないループをテストする。
問題17
クラシフィケーションツリーを使う際の注意点として最も適切なものを選びなさい。
- クラスが増えても図の大きさは変わらない
- ツリーが作られれば期待結果も必ず決まる
- クラスが増えると図や組み合わせが大きくなり、完全なテストケースには追加情報が必要になる
- ツリーは同値分割やペアワイズには使えない
解答・解説
正解:3
クラシフィケーションとクラスの数が増えると組み合わせが増え、図も扱いにくくなる。また、ツリーはデータの組み合わせを作るものであり、手順や期待結果を加えて完全なテストケースにする必要がある。
問題18
OS とブラウザーの組み合わせに、Chrome は iOS ではサポートしないという制約がある。ペアワイズテストの入力を作る際に必要な対応として最も適切なものを選びなさい。
- 制約を無視して全組み合わせを実行する
- 両立不能な組み合わせを識別し、ツールやクラシフィケーションツリーに制約として反映する
- OS をテスト対象から外す
- ペアワイズを使えないため、テストを中止する
解答・解説
正解:2
ペアワイズでは、パラメーター間の論理関係や両立不能な組み合わせを考慮する。実現不能な組み合わせを除外し、必要な重要組み合わせは明示的に含める。
問題19
あるパラメーターが 10,000 個の値を持つ。ペアワイズテストの前に行うとよいこととして最も適切なものを選びなさい。
- 10,000 個をすべて別パラメーターとして扱う
- 他のパラメーターを削除する
- 期待結果を定義しない
- 同値分割法などで代表的な値やパーティションへ整理する
解答・解説
正解:4
値が非常に多い場合、先に同値分割法などで値を減らし、その後にペアワイズを適用すると、実行可能な組み合わせ数に抑えやすい。
問題20
基本フローと代替フローが同一のテストケース内で互換性を持つ場合、最小テストスイートの設計として可能なことを選びなさい。
- 代替フローをすべて削除する
- 複数の代替フローを 1 つのテストケースへ組み込む
- 基本フローをテストしない
- エラー処理を常に無視する
解答・解説
正解:2
ユースケースの最小テストスイートでは、互換性のある代替フローを 1 つのケースに組み込める。ただし、診断性を高めたい場合は代替フローごとに分けることもある。
問題21
ユースケースが性能テストのベースになる理由として、最も適切なものを選びなさい。
- 実際のユーザーや外部システムのトランザクションを表すため
- ユースケースには必ず性能値が含まれるため
- ユースケースを使うと機能テストが不要になるため
- ユースケースは画面デザインだけを表すため
解答・解説
正解:1
ユースケースは実際の使われ方やトランザクションを表すため、仮想ユーザーにシナリオを割り当て、現実的な負荷を作るベースにできる。
問題22
エラー推測の適用例として最も適切なものを選びなさい。
- 過去にパスワード処理で起きた欠陥を思い出し、異常な長さや文字を入力する
- 要件に登場する値をすべて順番に入力する
- 状態遷移表の全遷移を機械的に実行する
- 仕様にない操作を禁止する
解答・解説
正解:1
エラー推測は、過去の経験から発生しそうなエラーや故障モードを推測し、それを顕在化させる入力・操作を作る。ほかの技法を補完するためにも使える。
問題23
チェックリストベースドテストが特に適する状況として、最も適切なものを選びなさい。
- 頻繁なリリースで、類似の確認を繰り返す
- 期待結果がまったく定義できない
- ソースコードの全分岐を測定したい
- すべてのテストを一度だけ実行する
解答・解説
正解:1
ハイレベルなチェックリストは、詳細な手順を毎回保守せず、類似リリースへ繰り返し適用できる。スモークテストやリグレッションテストにも使える。
問題24
探索的テストで故障を再現しやすくするため、記録すべき情報として最も適切なものを選びなさい。
- 使用した入力、操作、期待結果、実際の結果、環境
- テスト担当者の名前だけ
- セッションの開始時刻だけ
- 画面の色だけ
解答・解説
正解:1
探索的テストは再現性が低くなりやすい。そのため、入力、操作、期待結果、実際の結果、環境、証跡などを記録し、故障の再現や原因分析に役立てる。
問題25
欠陥ベースのテストで、欠陥分類法に 20 個の欠陥タイプがあり、そのうち 15 個を対象にテストした。分類アイテムの単純カバレッジは何 % か。
- 15%
- 20%
- 75%
- 80%
解答・解説
正解:3
カバレッジは テストした分類アイテム数 ÷ 分類アイテム総数 × 100。したがって 15 ÷ 20 × 100 = 75%。
問題26
ユーザーインターフェースの欠陥を重点的に探す場合、欠陥ベースのテストで最初に考慮すべきものは何か。
- UI 欠陥に適用できる分類法
- プロジェクトと無関係な分類法
- 期待カバレッジを定義しないこと
- UI と関係のない性能メトリクスだけ
解答・解説
正解:1
欠陥分類法は、テスト対象と検出したい欠陥に適合するものを選ぶ。分類法を使う場合も、開始前に期待するカバレッジを定義する。
問題27
デシジョンテーブルで条件の組み合わせを整理した後、条件が数値範囲を持つ場合に追加すると効果的な技法を選びなさい。
- 同値分割法や境界値分析
- テストをすべて削除する
- 状態遷移だけに限定する
- 欠陥報告を行わない
解答・解説
正解:1
デシジョンテーブルでルールの組み合わせをカバーし、条件の値について同値パーティションや境界値を追加することで、論理条件と値の処理の両方を確認できる。
問題28
入力 X と Y の同値パーティションが次のとおりである。
- X:有効 3 個、無効 2 個
- Y:有効 4 個、無効 1 個
有効パーティションは単純カバレッジ、無効パーティションは他方を有効にして 1 個ずつ単独でテストする。このときの最小ケース数を選びなさい。
- 4
- 5
- 6
- 7
解答・解説
正解:4(7ケース)
有効パーティションのケース数は最大値の 4。無効パーティションは X の 2 個と Y の 1 個を単独で追加するため、4 + 2 + 1 = 7 となる。したがって、選択肢 4 の 7 が正しい。
問題29
整数の有効範囲が 10〜20 で、別の入力欄の有効範囲が 100〜200 である。両方に 3 値法を適用するテストデータの組み合わせとして適切なものを選びなさい。
- 1 つ目は
9,10,11,19,20,21、2 つ目は99,100,101,199,200,201 - 1 つ目は
10,20、2 つ目は100,200 - 1 つ目は
8,9,10,20,21,22、2 つ目は98,99,100,200,201,202 - 1 つ目は
11,19、2 つ目は101,199
解答・解説
正解:1
各境界について、前・境界上・後を選ぶ。10 の前後は 9,10,11、20 の前後は 19,20,21。もう一方も同様に選ぶ。
問題30
次の業務ルールをデシジョンテーブルで表す。
- 会員でなく、購入額もクーポンも関係ない場合は割引なし
- 会員で購入額が 10,000 円以上なら、クーポンに関係なく 20%割引
- 会員で購入額が 10,000 円未満、かつクーポンありなら 10%割引
- 会員で購入額が 10,000 円未満、かつクーポンなしなら割引なし
関係のない条件を - として簡単化した最小ルール数はいくつか。
- 1
- 2
- 3
- 4
解答・解説
正解:4
ルールは次の 4 個になる。
| 会員 | 購入額 10,000 円以上 | クーポン | アクション |
|---|---|---|---|
| 偽 | - | - | 割引なし |
| 真 | 真 | - | 20% |
| 真 | 偽 | 真 | 10% |
| 真 | 偽 | 偽 | 割引なし |
したがって正しくは 4。選択肢の 3 は誤りで、条件の組み合わせを表にして確認することが重要である。
問題31
次の状態遷移モデルを考える。
stateDiagram-v2
未認証 --> 未認証: 認証失敗
未認証 --> 認証済み: 認証成功
認証済み --> 未認証: タイムアウト
認証済み --> 未認証: ログアウト
図に示された有効遷移の連続 2 遷移をすべてカバーする 1 スイッチカバレッジで、必要なシーケンス数はいくつか。
- 4
- 6
- 8
- 10
解答・解説
正解:3
未認証からは「失敗→失敗/成功」「成功→タイムアウト/ログアウト」の 4 通り。認証済みからは「タイムアウト→失敗/成功」「ログアウト→失敗/成功」の 4 通りで、合計 8 シーケンスになる。
問題32
ログイン状態が「ロック中」のとき、一般ユーザーのログイン試行は無効と定義されている。状態遷移テストの設計として最も適切なものを選びなさい。
- 有効遷移だけをテストし、ロック中のログイン試行は除外する
- 無効遷移として、ロック状態が維持されることや適切なメッセージを確認する
- ロック状態を初期状態にできないので、テストしない
- すべての無効操作を成功扱いにする
解答・解説
正解:2
状態遷移テストでは、必要なカバレッジに応じて無効遷移もテストする。ロック中の操作で不正に認証済みへ遷移しないこと、状態やメッセージが正しいことを確認する。
問題33
クラシフィケーションツリーで、環境を「OS」と「ブラウザー」に分けた。iOS では Browser-X を利用できない。この情報をツリーに反映する目的として最も適切なものを選びなさい。
- 実現不能な組み合わせを識別し、テスト対象の組み合わせを現実的にする
- すべてのブラウザーを同じクラスにまとめる
- 期待結果を自動的に確定する
- OS のテストを不要にする
解答・解説
正解:1
クラシフィケーションツリーは、パラメーター・値・組み合わせ制約を視覚化し、両立不能な組み合わせや関心のある組み合わせを識別するのに役立つ。
問題34
3 つの設定値の相互作用だけで発生する欠陥がある。ペアワイズテストを 100%実施しても検出できない可能性がある理由を選びなさい。
- ペアワイズは任意の 2 パラメーター間を対象とし、3 パラメーター同時の相互作用を必ず網羅しない
- ペアワイズは値を 1 つもテストしない
- ペアワイズは状態遷移にしか使えない
- ペアワイズでは制約を扱えない
解答・解説
正解:1
ペアワイズカバレッジは、任意の 2 パラメーター間の値ペアをカバーする。3 つ以上の相互作用による欠陥は、対象の 3 ワイズなどを追加しない限り見逃す可能性がある。
問題35
ユースケースに、基本フロー、代替フロー A、エラー E がある。エラー E には「リトライ後に成功」と「リトライ上限で終了」という 2 つの結果がある。診断性を重視し、各振る舞いを分ける場合のケース構成として最も適切なものを選びなさい。
- 基本、A、E の 3 ケースだけ
- 基本、A、E の成功結果、E の上限結果の 4 ケース
- 基本フローは不要で、E の 2 ケースだけ
- すべてのケースを 1 件へ統合する
解答・解説
正解:2
基本フロー 1、代替フロー A 1、入れ子のエラー結果 2 で、4 ケースになる。最小ケース数を優先する場合は互換性によって統合できることもあるが、診断性を重視する条件では分ける。
問題36
デシジョンテーブルで「配送地域が国内」「会員ランクがゴールド」という条件の組み合わせをカバーした。しかし、会員ランクには複数の値があり、それぞれで処理が異なる。追加すべき設計として最も適切なものを選びなさい。
- 会員ランクの同値パーティションを識別し、必要な代表値を各ルールに適用する
- 条件の組み合わせを確認済みなので、値の違いは無視する
- すべての会員ランクを同じ値として扱う
- デシジョンテーブルを削除する
解答・解説
正解:1
デシジョンテーブルは条件の組み合わせを扱うが、条件値の処理が異なるなら EP でパーティションを分け、代表値や必要な境界値を追加する。
問題37
仕様書が不完全で、リリースまで 2 日しかない。ただし、過去の障害記録と経験豊富な担当者がいる。追加テストの方針として最も適切なものを選びなさい。
- 探索的テストやエラー推測をタイムボックスで行い、既存のブラックボックステストのギャップを補う
- 仕様が不完全なので、テストを行わない
- すべての値の全組み合わせを作る
- 経験ベースのテストだけで、結果を記録しない
解答・解説
正解:1
経験ベースの技法は仕様不足・時間制約・過去経験の活用に適する。探索的テストはチャーターとタイムボックスで管理し、エラー推測で既知の故障パターンを狙う。ただし、結果と再現手順は記録する。
問題38
「会員種別」と「購入金額」の2パラメーターに同値分割を適用する。会員種別は一般・法人・未登録、購入金額は0未満・0以上1万円未満・1万円以上とするが、未登録は購入金額にかかわらず購入不可である。購入可否を確認する代表ケースの考え方として最も適切なものを選びなさい。
- すべてのパーティションの直積を機械的に実行し、制約を無視する
- 各パーティションを少なくとも代表し、未登録との組合せなど実現不可能なケースを明示して除外する
- 会員種別だけをテストし、購入金額は一つの値に固定する
- 有効パーティションだけを選び、無効パーティションはテストしない
解答・解説
正解:2
同値分割では各パーティションの代表値を選ぶが、パラメーター間の制約によって実現不可能な組合せが生じる。制約を明示し、必要な有効・無効ケースを漏れなく扱うことが重要である。
問題39
「18歳以上65歳以下」を有効とする年齢入力に、3値境界値分析を適用する。代表値の組合せとして最も適切なものを選びなさい。
- 18、65だけ
- 17、18、19、64、65、66
- 1、18、65、100だけ
- 0、17、66、100だけ
解答・解説
正解:2
3値境界値分析では、各境界の直前・境界上・直後を確認する。下限18では17・18・19、上限65では64・65・66を選ぶ。
問題40
次のデシジョンテーブルについて、ルールを簡単化する際の考え方として最も適切なものを選びなさい。
| 条件 | R1 | R2 | R3 | R4 |
|---|---|---|---|---|
| 会員である | Y | Y | N | N |
| 支払確認済み | Y | N | Y | N |
| 注文を確定する | Y | N | N | N |
| 通知する | N | Y | Y | Y |
- R1とR2は会員条件を無視して統合できる
- R3とR4は会員条件が異なるため、通知アクションが同じでも常に別ルールである
- 同じアクションを持ち、結果に影響しない条件を「-」に置けるか確認する
- ルール数を減らすことを目的に、すべての条件を「-」にする
解答・解説
正解:3
デシジョンテーブルの簡単化では、アクションが同じルールを比較し、特定の条件が結果に影響しない場合に「-」へ一般化できるかを確認する。ただし、異なるアクションや実現不可能な組合せを隠してはいけない。
問題41
次の状態遷移で、認証失敗を3回連続するとロックされる。状態遷移テストで特に見落としやすい観点を選びなさい。
stateDiagram-v2
未認証 --> 認証済み: 成功
未認証 --> 未認証: 失敗(失敗回数を加算)
未認証 --> ロック: 3回目の失敗
ロック --> 未認証: 管理者解除
- 1回目と2回目の失敗後に、まだ認証を試行できることだけ
- 3回目の失敗でロックされる境界、ロック後の認証拒否、解除後の失敗回数リセット
- 成功遷移だけを1回実行すること
- 状態名の文字列がアルファベット順であること
解答・解説
正解:2
状態遷移では、遷移の境界、遷移後に許されるイベント、無効イベント、解除後の状態を確認する。特に3回目というカウント境界と、解除後に前の失敗回数が残らないことが重要である。
問題42
状態遷移図に存在しないイベントが発生したときのテストとして、最も適切なものを選びなさい。
- 図にないイベントは実装されないため、常にテスト対象外にする
- 現在状態・イベント・期待するエラーまたは状態維持を定義し、無効遷移として確認する
- 無効イベントを適当な有効イベントに置き換える
- 状態遷移図を変更せず、実際の動作だけを正解とする
解答・解説
正解:2
状態遷移テストでは、定義された遷移だけでなく、許されないイベントに対する振る舞いも重要である。エラー表示、状態維持、監査記録などの期待結果をテストベースに基づいて確認する。
問題43
3つの分類A、B、Cにそれぞれ4、3、2個の値があり、組合せ間の制約はない。ペアワイズテストの説明として最も適切なものを選びなさい。
- 全組合せ24通りを必ず実行する必要がある
- 各分類の値のペアが少なくとも一度現れるよう、全組合せより少ないテスト集合を作る
- Aの値だけを全て実行すれば、ペアワイズを満たす
- 2個のテストケースだけで、値の数にかかわらず必ず満たせる
解答・解説
正解:2
ペアワイズは、任意の2分類の値の組合せを少なくとも一度カバーする考え方で、全組合せテストよりテスト数を削減できる。ただし、3つ以上の相互作用や制約を完全に保証するものではない。
問題44
分類ツリーで「ブラウザー」と「OS」の値を選ぶとき、実現不可能な組合せが含まれることが分かった。最も適切な対応を選びなさい。
- ツールが生成したケースをそのまま実行する
- 制約をモデルに反映し、実現可能な組合せだけを生成対象にするか、除外理由を記録する
- OSの分類を削除してブラウザーだけをテストする
- 不可能な組合せも実行できるよう、製品仕様を変更する
解答・解説
正解:2
テスト技法で生成した集合は、仕様や環境の制約を満たす必要がある。制約を無視すると無駄なテストや誤ったカバレッジ評価につながるため、モデル・生成条件・除外理由を追跡可能にする。
問題45
「利用者が申請を作成し、承認者が承認すると完了する」ユースケースに、承認却下と承認者不在の代替フローがある。ユースケーステストの最小構成として最も適切なものを選びなさい。
- メインフローだけを1本実行する
- メインフロー、却下フロー、不在時フローを少なくとも各1本実行し、事前・事後条件を確認する
- 画面ごとにクリックできれば、フローの結果は確認しない
- 代替フローは仕様が複雑になるため削除する
解答・解説
正解:2
ユースケーステストでは、利用者の目的に沿ったメインフローと、価値・リスクに影響する代替・例外フローをカバーする。各フローの事前条件と事後条件も期待結果として確認する。
問題46
探索的テストで、テスト担当者がチャーターから外れた不具合を発見した。最も適切な対応を選びなさい。
- チャーター外なので記録せず、元の探索を続ける
- 発見内容・操作・環境を記録し、重要度を判断したうえでチャーターの延長・分割・別の課題化を決める
- 探索的テストでは記録を残してはならない
- その不具合が直るまで、無期限に同じ探索を続ける
解答・解説
正解:2
探索的テストは柔軟性があるが、タイムボックス、チャーター、観察結果を管理する必要がある。重要な発見を失わず、当初目的への影響と追加調査の必要性を判断する。
問題47
仕様が不完全で、過去に同じ種類の障害が多発している機能を、短時間で評価する。技法の組合せとして最も適切なものを選びなさい。
- エラー推測と探索的テストで既知の故障パターンを狙い、得られた情報を同値分割・境界値分析に反映する
- 仕様がないため、テストを実施しない
- 全入力値を総当たりし、探索の目的や記録は不要とする
- 使用性アンケートだけで機能正確性を判断する
解答・解説
正解:1
仕様不足や時間制約では経験ベースの技法が有効だが、暗黙の知識だけに依存すると再現性が下がる。探索で得た情報を仕様化・パーティション化し、体系的な技法と組み合わせる。
問題48
保険金請求機能について、次の業務ルールがある。
- 契約者種別は個人・法人・未契約である
- 請求額は0円超〜100万円以下が通常の受付範囲である
- 法人契約で請求額が50万円を超える場合は、追加承認が必要である
- 未契約者は金額にかかわらず受付不可である
- 100万円を超える請求は別窓口へ案内し、0円以下は入力エラーにする
限られたケースで、パーティション、境界、条件の組合せ、業務アクションを効率よく確認する方法として最も適切なものを選びなさい。
- 請求額の平均値だけを使い、契約者種別は個人に固定する
- 全契約者種別と全金額の直積を無条件に実行し、未契約・高額の制約は後から確認する
- 契約者種別と金額の同値分割・境界値分析を行い、追加承認・受付不可・別窓口・入力エラーをデシジョンテーブルで組み合わせ、実現不可能なルールを明示する
- 業務ルールが複数あるため、探索的テストだけを無期限に実施する
解答・解説
正解:3
金額の範囲と閾値には同値分割・境界値分析が適し、契約者種別と金額による追加承認や受付不可にはデシジョンテーブルが適する。未契約者の金額組合せなど、実現不可能なルールは制約として扱い、除外理由を残す。
問題49
モバイル決済アプリは、未認証・認証済み・一時停止・ロックの状態を持つ。認証済みで通信が切断されると一時停止へ移り、一時停止中に再接続すると認証済みに戻る。3回連続で認証に失敗するとロックされ、サポート解除後は未認証になる。対応OSは3種類、通信状態はオンライン・オフライン、認証方式は2種類である。リリース前の短時間テストとして最も適切な方針を選びなさい。
- 状態遷移で主要状態・失敗回数・無効イベント・解除後の遷移を確認し、OS・通信・認証方式は制約を反映したペアワイズで組み合わせる。ただし、同時切断など3要因以上の相互作用は追加のリスクベーステストで補う
- OS・通信・認証方式の全組合せだけを実行し、状態遷移は代表的な成功シナリオ一つで済ませる
- ペアワイズですべての品質リスクが保証されるため、ロックや解除の状態は確認しない
- 状態遷移は画面操作のテストなので、通信状態やOSの違いとは組み合わせない
解答・解説
正解:1
状態の変化、失敗回数の境界、無効イベント、サポート解除後の状態は状態遷移技法で体系的に確認する。環境要因の組合せは、制約付きペアワイズで削減できるが、ペアワイズは3要因以上の相互作用や状態シーケンスを保証しないため、リスクに応じて追加する。
問題50
保険金請求では、契約種別、請求金額、事故原因、添付書類の有無によって受付可否と審査ルートが決まる。金額には免責額の境界があり、事故原因には契約種別による適用外の組合せがある。短期間で設計する方針として最も適切なものを選びなさい。
- 金額の境界だけを境界値分析し、他の条件は代表値を 1 つずつ選ぶ
- 全条件の直積を実行し、実現不可能な契約・事故原因の組合せもテストする
- デシジョンテーブルで受付・審査ルートと実現不可能な組合せを整理し、金額には境界値分析、残る環境や利用者条件には制約付き組合せ設計を適用する
- 業務ルールが複雑なので、過去の障害を再現する探索的テストだけを行う
解答・解説
正解:3
条件の組合せとアクションはデシジョンテーブルで整理し、免責額のような順序付き境界は境界値分析で補う。実現不可能な組合せはテスト対象から機械的に外すのではなく、制約として明示する。さらに、リスクや過去欠陥に応じて探索的テストなどを追加する。