第6章:テストツールおよび自動化
キーワード駆動テストと、テスト設計・テストデータ準備・テスト実行に使うツールを扱う。
問題1
キーワード駆動テストの説明として最も適切なものを選びなさい。
- テストケースに画面座標やクリック位置だけを記述する方法
- 業務上意味のあるキーワードとデータの列を、対応する自動化スクリプトが実行する方法
- テストデータを使わずに自動実行する方法
- すべてのテストを手動で実行する方法
解答・解説
正解:2
キーワード駆動テストでは、Login、SearchOrder、CancelOrder などのハイレベルな相互作用をキーワードとしてテストケースに並べる。自動化担当が各キーワードを実行可能なスクリプトへ実装するため、テストケースの記述と自動化実装を分離できる。
問題2
キーワード駆動テストで、テストアナリストが主に担当する活動として最も適切なものを選びなさい。
- すべての自動化スクリプトの内部コードを書く
- ビジネスプロセス、キーワード、テストデータ、期待結果を作成・保守する
- テスト対象の本番コードを修正する
- 自動化フレームワークのライセンスを契約する
解答・解説
正解:2
テストアナリストは、ビジネスプロセスを表すキーワード、関連データ、期待結果を作成・保守し、実行結果を分析する。キーワードを実装するモジュール化スクリプトは、テスト自動化エンジニアやテクニカルテストアナリストが担当することが多い。
問題3
キーワード駆動テストが失敗したが、同じデータとテストケースを手動で実行すると失敗しなかった。この場合、最初に確認すべきものとして最も適切なものを選びなさい。
- 失敗を必ずアプリケーション欠陥と判断する
- 期待結果を記録せずに再実行を繰り返す
- 直ちに本番環境のデータを削除する
- キーワード、テストデータ、スクリプト、先行手順の影響
解答・解説
正解:4
手動では再現しない場合、アプリケーション以外に、キーワード、入力データ、自動化スクリプト、テストケースの順序を確認する。先行手順が誤ったデータを投入し、後続で故障として現れている可能性もある。
問題4
次のツールと用途の組み合わせとして正しいものを選びなさい。
| ツール | 用途 |
|---|---|
| a. テスト設計ツール | 要件やモデルから、指定カバレッジに必要な組み合わせを生成する |
| b. テストデータ準備ツール | 本番データの匿名化や合成テストデータの生成を行う |
| c. テスト自動実行ツール | 自動化したテストを実行し、実際の結果を確認する |
- aだけ正しい
- aとbだけ正しい
- bとcだけ正しい
- a、b、cがすべて正しい
解答・解説
正解:4
3 種類の説明はいずれも正しい。テスト設計ツールはケースや組み合わせの作成、テストデータ準備ツールは現実的かつ安全なデータの準備、テスト自動実行ツールは反復実行や結果確認を支援する。
問題5
次のキーワード列が表すものとして最も適切なものを選びなさい。
Login → SearchOrder → CancelOrder → VerifyOrderStatus
- 低レベルのクリック座標の一覧
- 注文キャンセルという業務シナリオを表すテストケース
- テストデータの匿名化手順
- 欠陥分類法の一覧
解答・解説
正解:2
キーワード列は、業務・システムのハイレベルな相互作用を順序付けたテストケースである。各キーワードの詳細な画面操作や API 呼び出しは、対応する自動化スクリプトが実装する。
問題6
キーワードとして ClickButtonAtX120Y300 より CancelOrder を使う利点として最も適切なものを選びなさい。
- 期待結果が不要になる
- テストデータを使えなくなる
- 自動化スクリプトを作成しなくてよくなる
- 業務上の意味を表し、画面実装の変更からテストケースを分離しやすい
解答・解説
正解:4
キーワードは通常、業務やシステムのハイレベルな相互作用を表す。UI の座標などの低レベル操作を隠蔽し、テストケースの保守性・可読性を高める。
問題7
UI のキャンセル確定ボタンの CSS セレクターが変更された。キーワード駆動テストで、通常修正対象になるものを選びなさい。
- すべての業務シナリオの目的
- 受け入れ基準をすべて削除する
- テストデータの意味を無条件に変更する
CancelOrderキーワードの実装スクリプト
解答・解説
正解:4
キーワード駆動では、テストケースの業務シナリオと自動化実装を分離する。UI の変更は、該当キーワードの実装モジュールを修正することで対応しやすい。
問題8
キーワード駆動テストのテストケースで、キーワードと関連付けるものとして最も適切なものを選びなさい。
- 自動化担当者の給与
- プロジェクトの全ソースコード
- 本番利用者の個人情報を未加工で保存したデータ
- キーワードが処理するテストデータと期待結果
解答・解説
正解:4
テストアナリストはキーワード、関連するデータ、期待結果を作成・保守する。個人情報を含むデータは、必要に応じて匿名化・選別して扱う。
問題9
キーワード実装をモジュール化する利点として最も適切なものを選びなさい。
- すべてのテストケースを 1 つの巨大なスクリプトに統合できる
- 期待結果を定義する必要がなくなる
- テスト対象の変更を無視できる
- 1 つの業務操作の変更を、そのキーワードの実装へ局所化しやすい
解答・解説
正解:4
モジュール化により、キーワードと実行処理の対応が明確になり、アプリケーションやインターフェースの変更時に保守しやすくなる。
問題10
継続的インテグレーションを利用するイテレーティブプロジェクトで、テスト自動化開発の説明として最も適切なものを選びなさい。
- 最終リリース直前に一度だけ行う
- テスト対象の変更に合わせて継続的に開発・保守する
- 実行結果が失敗しても変更しない
- テストアナリストはキーワードを作成しない
解答・解説
正解:2
反復型・継続的インテグレーション環境では、自動化開発も継続的なプロセスになる。キーワード、データ、スクリプト、期待結果を変更に合わせて保守する。
問題11
キーワード駆動テストが失敗した。アプリケーションに欠陥があるかを確認するための最初の切り分けとして適切なものを選びなさい。
- 自動化ツールを削除する
- 失敗したテストを合格に変更する
- 期待結果を削除する
- 同じデータを使って同じテストケースを手動実行する
解答・解説
正解:4
同じデータ・同じケースを手動で実行し、故障がアプリケーションにも存在するかを確認する。手動で再現しなければ、キーワード、データ、スクリプト、順序を調べる。
問題12
自動テストの「注文確定」が失敗したが、その前の「注文作成」が誤った商品 ID を登録していた可能性がある。この場合の分析として適切なものを選びなさい。
- 注文確定の欠陥と即断する
- 先行手順は常に正しいと仮定する
- すべてのキーワードを削除する
- 失敗したキーワードだけでなく、先行手順とデータの状態を確認する
解答・解説
正解:4
故障は後続処理で表面化しても、原因が先行手順の誤ったデータ投入にあることがある。テストケースの順序とデータ状態を確認する。
問題13
自動化テストの失敗原因として、テストアナリストが切り分ける対象の組み合わせとして適切なものを選びなさい。
- アプリケーションだけ
- 自動化担当者の名前だけ
- テストケースのタイトルの長さだけ
- アプリケーション、キーワード、入力データ、自動化スクリプト
解答・解説
正解:4
自動実行の失敗は、テスト対象の欠陥だけでなく、キーワード、入力データ、スクリプトの欠陥でも起きる。テストアナリストは原因を切り分け、必要なら技術担当や開発者へ情報を渡す。
問題14
テスト設計ツールの入力として使われるものの組み合わせとして、最も適切なものを選びなさい。
- テスト担当者の休日予定だけ
- 本番のログだけで、テスト目的は不要
- 欠陥報告だけで、テスト条件は不要
- 要件、モデル、テストアナリストが指定するパラメーターやカバレッジ
解答・解説
正解:4
テスト設計ツールは、要件文書、UML などのモデル、パラメーター、カバレッジ基準などを入力として、ケースや組み合わせの作成を支援する。
問題15
クラシフィケーションツールが、選択したカバレッジ基準に必要な組み合わせを生成した。この出力について、テストアナリストが行うべきことは何か。
- 生成結果を無条件に合格とする
- 期待結果は自動化担当に任せて定義しない
- すべての組み合わせを削除する
- 組み合わせに手順・期待結果を加え、実行可能なテストケースにする
解答・解説
正解:4
ツールは組み合わせの生成を支援するが、完全なテストケース、具体的なデータ、期待結果を定義する責任はテストアナリストに残る。
問題16
本番データを大量に使いたいが、個人情報の漏えいリスクがある。テストデータ準備ツールの利用として適切なものを選びなさい。
- 本番データをそのままコピーする
- すべてのデータを削除して空データにする
- 個人情報の有無を確認しない
- 内部整合性を保ちながら個人情報を選別・匿名化する
解答・解説
正解:4
テストデータ準備ツールは、本番データの整合性を維持しながら選別・匿名化し、個人情報の漏えいや誤用のリスクを抑えたデータを作れる。
問題17
現実的なデータ量が必要だが、本番データを利用できない。適切な対応として最も適切なものを選びなさい。
- テストデータを使わずに実行する
- 実行結果をすべて推測する
- 本番の個人情報を無加工で利用する
- データベース構造や入力パラメーターに基づいて合成テストデータを生成する
解答・解説
正解:4
テストデータ準備ツールには、指定された入力パラメーターやデータベース構造から合成テストデータを生成するものがある。
問題18
テスト自動実行ツールの目的として不適切なものを選びなさい。
- 同じテストを多くの環境で実行する
- 手動では困難な大規模データ妥当性確認を行う
- テスト結果の再現性を高める
- 期待結果を定義せずに、すべての結果を正しいと判断する
解答・解説
正解:4
自動実行ツールは、コスト削減、ケース数・環境数の増加、再現性向上、手動困難なテストを支援する。自動化しても期待結果と比較するテストオラクルは必要である。
問題19
新しいビルドごとに基本機能を短時間で確認したい。自動化の用途として最も適切なものを選びなさい。
- すべてのテストを手動で一度だけ実行する
- 期待結果を定義しない探索だけを行う
- テスト結果を記録しない
- スモークテストを自動化する
解答・解説
正解:4
スモークテストは頻繁に利用し、結果を迅速に得て、新しいビルドや CI 環境の評価に使えるため、自動化の対象として有効である。
問題20
CI で毎回自動テストを実行しているが、画面変更のたびに大量のスクリプト修正が必要になる。この状況で考慮すべきこととして最も適切なものを選びなさい。
- 保守コストは自動化では発生しない
- すべてのテストを自動化すれば問題はなくなる
- テストケースとスクリプトの分離をやめる
- 自動化の利点だけでなく、スクリプトやキーワード実装の保守コストも評価する
解答・解説
正解:4
CI やスモークテストの自動化は有効だが、変更頻度が高いと保守コストも増える。自動化によるカバレッジ・時間短縮と、実装・保守コストのバランスを評価する。
問題21
テスト実行ツールの適用について、最も適切な説明を選びなさい。
- システムテストでは絶対に使えない
- コンポーネントテストだけで使う
- レビューでのみ使う
- 一般に統合テストやシステムテストで使い、API テストなどはコンポーネントテストでも使うことがある
解答・解説
正解:4
テスト実行ツールは、統合テストやシステムテストで一般的に利用される。API テストツールなど一部のツールはコンポーネントテストにも適用できる。
問題22
テストツールを導入する前に確認すべきこととして、最も適切なものを選びなさい。
- ツールを導入すること自体が目的になるか
- 期待結果が定義できないか
- テストアナリストの責任をすべて消せるか
- 許容時間内にカバレッジや再現性などのテスト効率を高められるか
解答・解説
正解:4
ツールは、許容時間内によりよいカバレッジ、効率、再現性、データ準備などを実現できるかというテスト目的への貢献で評価する。
問題23
テスト自動化ソリューションを構築する際の協力関係として最も適切なものを選びなさい。
- テストアナリストだけで全自動化コードを作り、他者を関与させない
- 自動化エンジニアは期待結果を決め、テストアナリストは関与しない
- 開発者はテスト結果を確認してはならない
- テストアナリスト、開発者、自動化エンジニア、テクニカルテストアナリストが役割に応じて協力する
解答・解説
正解:4
テストアナリストは業務シナリオ、キーワード、データ、期待結果を担当し、自動化担当は実装、開発者やテクニカルテストアナリストは技術的な分析・連携を担う。役割分担しながら自動化を構築する。
問題24
キーワード駆動テストのキーワードとして最も適切なものを選びなさい。
ClickElement(cssSelector="#submit")注文を確定するWait(3000ms)driver.findElement(By.id("submit"))
解答・解説
正解:2
キーワードは、テストケースを実装詳細ではなく意味のある操作名で表す。画面要素のセレクターや待機時間などは自動化実装側に隠蔽し、業務シナリオから再利用できる粒度にする。
問題25
キーワード駆動テストで、画面の「注文を確定する」キーワードがUI変更のたびに失敗する。役割分担として最も適切なものを選びなさい。
- テストアナリストがすべてのUIロケーターを各テストケースに直接書き直す
- テストアナリストは業務上の意味・期待結果を確認し、自動化担当が共通キーワード実装を修正する
- 期待結果を削除して、キーワードが呼び出せれば成功とする
- UI変更をテスト対象外にする
解答・解説
正解:2
キーワード駆動では、テストの業務意味と実装を分離する。TAはキーワードが表す業務操作・データ・期待結果が妥当かを確認し、自動化担当はロケーターなどの技術実装を保守する。
問題26
次の説明として最も適切なものを選びなさい。
- ユースケーステストは利用者の目的・シナリオを表し、キーワード駆動テストはその操作を再利用可能な意味単位で実行する仕組みであり、両者は併用できる
- ユースケーステストとキーワード駆動テストは同じ概念なので、どちらか一方しか使えない
- キーワード駆動テストは非機能テストにしか使えない
- ユースケーステストでは期待結果を定義できない
解答・解説
正解:1
ユースケースやユーザーストーリーは「何を達成するか」というテストの観点・シナリオを与える。キーワード駆動は、そのシナリオの操作を「商品を検索する」などの意味単位で記述・自動実行する設計である。
問題27
自動化候補を選定する際、最も優先度が高い組合せを選びなさい。
- 一度しか実行せず、期待結果も頻繁に変わる探索的テスト
- 毎回実行する回帰テストで、手順と期待結果が安定している重要業務フロー
- 要求が未確定で、成功条件が合意されていない機能
- 自動化が困難で、結果を目視でしか評価できないテストだけ
解答・解説
正解:2
反復頻度が高く、手順と判定基準が安定した重要テストは、自動化による効率・再現性の効果を得やすい。自動化は目的ではなく、保守コストや技術的実現性も含めて評価する。
問題28
あるテストは自動化に5日かかり、以後の手動実行を1回あたり2時間削減できる。ただし、毎回30分の保守が必要である。判断材料として最も適切なものを選びなさい。
- 初期構築に時間がかかるので、必ず自動化しない
- 削減時間だけを見て、保守時間は無視する
- 実行回数、保守負荷、失敗時の調査、品質リスクを含めたライフサイクル全体で評価する
- 自動化できるテストはすべて同じ優先度で導入する
解答・解説
正解:3
自動化の価値は初期費用と実行時の便益だけでなく、変更への追随、誤検知の調査、環境維持、品質リスクなどを含めて判断する必要がある。
問題29
個人情報を含む本番データをテスト環境へコピーしたい。テストアナリストの対応として最も適切なものを選びなさい。
- 本番データを無加工でコピーする
- 利用目的・アクセス制御を確認し、匿名化または合成データを用いて必要な特性を保つ
- 氏名だけを削除すれば、他の識別情報はそのままでよい
- テストデータの内容は期待結果に影響しない
解答・解説
正解:2
テストデータ準備では、プライバシーやセキュリティを考慮しながら、境界値・相関・業務ルールなどテストに必要な特性を維持する。単純な一項目削除で再識別リスクがなくなるとは限らない。
問題30
自動テストが失敗したが、ログには「期待値と実際値が異なる」としか記録されていない。改善として最も有効なものを選びなさい。
- 失敗したテストを削除する
- 入力データ、環境、ステップ、期待値、実際値、スクリーンショットやログを追跡可能にする
- すべての失敗を環境障害として扱う
- 判定を常に成功にする
解答・解説
正解:2
自動実行の価値は実行だけでなく、結果を分析可能な形で残すことにある。十分な証跡があれば、製品欠陥・テスト欠陥・環境問題を切り分けやすくなる。
問題31
CIで同じテストが、同じビルドに対して一度は失敗し一度は成功した。最初に行う分析として最も適切なものを選びなさい。
- 成功した実行を正しいと決め、失敗を無視する
- テストの非決定性、環境差、データ競合、タイミング依存をログと再実行で調べる
- テスト対象の欠陥と断定する
- 待機時間を無条件に増やして終了する
解答・解説
正解:2
実行結果が揺れる場合、製品欠陥だけでなく、テストのタイミング依存、共有データ、環境、ツールの問題も考える。再現条件と証跡を確認して原因を分類する。
問題32
同じログイン操作のセレクターが50個のテストスクリプトに重複して記述されている。保守性を高める設計として最も適切なものを選びなさい。
- 50個すべてを手作業で個別修正する
- ログインを共通キーワードまたは共通部品に集約し、変更点を一か所にする
- ログイン検証を省略する
- 失敗したスクリプトだけを再実行する
解答・解説
正解:2
共通操作を抽象化すれば、UI変更時の修正箇所と不整合のリスクを減らせる。キーワード駆動では、意味のある共通キーワードと実装部品を分離して保守する。
問題33
新しいテスト自動化ツールを導入する前の評価として、最も適切なものを選びなさい。
- 機能数が最も多い製品を、対象プロジェクトを試さずに選ぶ
- 代表的なシナリオで概念実証を行い、要求適合性、保守性、連携、報告、スキル、費用を評価する
- ツールのデモ画面の見た目だけで決める
- 導入後に初めて成功基準を考える
解答・解説
正解:2
ツールは、テスト目的やプロセスへの適合性、既存環境との連携、学習・保守コストなどを実際の代表シナリオで確認して選定する。導入の成功基準も事前に定める。
問題34
次のキーワード駆動テストの設計として、最も適切なものを選びなさい。
| 順序 | キーワード | データ | 期待結果 |
|---|---|---|---|
| 1 | 商品を検索する | 商品名=ABC | 一致する商品が表示される |
| 2 | 商品をカートに追加する | 商品=検索結果の1件 | カート数量が1になる |
| 3 | 注文を確定する | 支払方法=カード | 注文番号が発行される |
- 業務上意味のあるキーワードとデータ・期待結果を分け、自動化実装の詳細をテストケースから隠す
- 各キーワードにCSSセレクターを直接記載し、UI変更時に全ケースを修正する
- 期待結果を自動化担当だけが決める
- キーワード名を画面上のボタンIDと同じにする
解答・解説
正解:1
キーワード駆動テストでは、業務操作を意味のあるキーワードとして記述し、データと期待結果を明確にする。セレクターや待機処理はキーワード実装側に隠蔽することで、再利用性と保守性を高める。
問題35
「顧客を登録する」キーワードを、顧客種別・氏名・メールアドレスを引数として複数のテストで再利用する設計の利点として、最も適切なものを選びなさい。
- 期待結果を一つに固定でき、どの顧客種別でも同じにできる
- 操作の実装を共通化しつつデータを変えられ、変更時の修正範囲と重複を減らせる
- テストデータの妥当性を確認しなくてよくなる
- キーワードの内部実装をテストケースへ露出できる
解答・解説
正解:2
パラメーター化は、同じ業務操作を異なるデータで再利用するのに有効である。ただし、顧客種別ごとの期待結果や制約は別途定義し、共通化によって重要な差異を隠さないようにする。
問題36
データ駆動テストとキーワード駆動テストの関係について、最も適切な説明を選びなさい。
- データ駆動はデータを変えて同じ手順を実行し、キーワード駆動は意味のある操作単位を組み合わせる。両者を組み合わせることもできる
- 両者は同じ概念で、データ駆動では期待結果を持てない
- キーワード駆動は自動化スクリプトを直接記述する方法である
- データ駆動は非機能テスト専用である
解答・解説
正解:1
データ駆動は入力・期待結果などのデータを分離して同じ操作を繰り返す考え方、キーワード駆動は操作を意味のあるキーワードとして分離・再利用する考え方である。組み合わせれば、業務操作とデータの双方を再利用できる。
問題37
自動テストが失敗した。ログには、期待値「注文確定」と実際値「注文保留」、同時刻の外部決済サービスのタイムアウトが記録されている。最初の切り分けとして最も適切なものを選びなさい。
- 直ちに製品欠陥と断定する
- 外部サービスの状態、仕様上のタイムアウト時の期待結果、テストデータ、再現性を確認して原因を分類する
- 期待値を「注文保留」に変更して合格にする
- 外部サービスを使うテストをすべて削除する
解答・解説
正解:2
自動テスト失敗は、製品欠陥、テスト実装・期待値の問題、環境や外部サービスの問題など複数の原因がある。タイムアウト時に注文を保留することが仕様上正しいかを含め、証跡に基づいて切り分ける。
問題38
同じ自動テストが、コード変更なしでも10回に1回失敗する。改善方針として最も適切なものを選びなさい。
- 失敗時だけ再実行して成功すれば、原因調査は不要とする
- 非決定性の原因を特定し、データ・待機・並行実行・環境を改善する。隔離する場合も理由と復帰条件を記録する
- テストを削除して失敗率を下げる
- すべてのテストの待機時間を無条件に長くする
解答・解説
正解:2
不安定なテストは、実際の欠陥を見逃したり結果への信頼を下げたりする。再現条件を調べて根本原因を修正し、隔離・再実行を使う場合も、追跡可能な基準と期限を持たせる。
問題39
UI変更で、50個の自動テストのうち30個が同じログインボタンのロケーターで失敗した。保守の改善として最も適切なものを選びなさい。
- 30個のテストケースにロケーターを個別に再記述する
- ロケーターを共通キーワード実装やページ部品に集約し、業務シナリオと技術詳細を分離する
- ログイン操作をテスト対象外にする
- 失敗数を減らすため、ログイン確認をスキップする
解答・解説
正解:2
共通の技術詳細を一か所に集約すれば、UI変更の影響を局所化できる。テストケースには「ログインする」などの意味を残し、実装側でロケーターを管理する。
問題40
テスト設計ツールとテスト実行ツールの組合せとして、最も適切なものを選びなさい。
- テスト設計ツールは技法に基づくケース・データ作成を支援し、テスト実行ツールは実行・結果・ログの収集を支援する
- テスト設計ツールは本番障害を自動修正し、実行ツールは要件を作成する
- 両者は同じ目的なので、どちらか一方だけでテストプロセス全体を置き換えられる
- テスト実行ツールには期待結果が不要である
解答・解説
正解:1
ツールの目的を区別すると、導入効果や不足機能を評価しやすい。実行ツールを使っても、期待結果やテスト条件の妥当性を定義する責任がなくなるわけではない。
問題41
本番データの匿名化で、氏名を置換したが、郵便番号・生年月日・購入履歴の組合せから個人を再識別できる可能性がある。最も適切な対応を選びなさい。
- 氏名を消したので安全とみなす
- 再識別リスクを評価し、必要な属性の一般化・置換・削除や合成データを検討し、テストに必要な相関は保つ
- テストデータをすべてランダム値にして業務ルールを壊す
- 本番データを開発者の端末へコピーして確認する
解答・解説
正解:2
匿名化は単一の識別子を置換するだけでなく、組合せによる再識別も考慮する。一方で、境界・相関・業務制約などテストに必要な性質は、適切な方法で維持する。
問題42
自動化候補Aは毎日実行する重要フローだが保守が難しい。候補Bは月1回の低リスク機能で、安定して自動化できる。候補選定として最も適切なものを選びなさい。
- 保守が容易なBだけを選び、実行頻度とリスクは考慮しない
- Aの便益・保守・実現性を評価し、重要度と実行頻度に見合うならAを優先する
- 自動化が難しいAは必ず除外する
- すべての候補を同時に導入する
解答・解説
正解:2
自動化の価値は、実行頻度、重要度、手動コスト、保守負荷、技術的実現性のバランスで決まる。難しいから除外するのでも、重要だから無条件に導入するのでもなく、投資効果を評価する。
問題43
新しい自動化ツールの概念実証で、代表的な業務フローは動作したが、既存CIへの連携、失敗時の証跡、担当者の保守方法は未確認である。次の判断として最も適切なものを選びなさい。
- 代表フローが動いたので、全社導入を決める
- 事前に定めた成功基準に対して未確認の観点を追加評価し、導入範囲・リスク・保守体制を合意する
- すべてのツール評価を中止する
- 失敗時の証跡は不要なので、CI連携だけ確認する
解答・解説
正解:2
概念実証は、単に一つのテストが動くことではなく、テスト目的、既存プロセスとの連携、結果の分析、スキル、保守、費用などの適合性を確認する機会である。
問題44
ECサイトの購入回帰テストをキーワード駆動で自動化する。現在、次の問題がある。
- テストケースには「商品を購入する」ではなく、画面座標とCSSセレクターが直接書かれている
- 本番由来の顧客データをそのままテスト環境へコピーしている
- 決済サービスのタイムアウト時に、失敗が製品・スクリプト・環境のどれか判別できない
- UI変更のたびに大量のケースを修正している
テストアナリスト、自動化担当、技術担当が協力して改善する方針として、最も適切なものを選びなさい。
- 業務キーワード、データ、期待結果をテストケースに定義し、UI操作を共通キーワードへ隠蔽し、匿名化・合成データを用い、タイムアウト時の仕様と証跡を整備して原因を切り分ける
- すべてのCSSセレクターをテストアナリストが各ケースへ再記述し、タイムアウトは常に製品欠陥として報告する
- 本番データの再現性を優先して無加工コピーを続け、失敗時はテストを再実行して成功すれば終了する
- UI変更を避けるため、購入回帰テストを削除して手動の探索的テストだけにする
解答・解説
正解:1
TAは業務上意味のあるキーワード、入力データ、期待結果を定義し、自動化担当は実装詳細を共通部品へ隠蔽する。個人情報は匿名化・合成データを検討し、タイムアウトは仕様、ログ、環境、データ、再現性から分類する。自動化は再実行回数だけでなく、保守性・安全性・分析可能性も含めて改善する。
問題45
保険会社がテストツール導入を検討している。候補ツールは、API実行・データ生成・結果レポートを提供するが、既存CIへの連携は追加開発が必要である。代表的な回帰テストを10本実行した概念実証では、手動より実行時間は短縮したものの、3本で誤検知が発生し、担当者はログから原因を特定できなかった。導入判断として最も適切なものを選びなさい。
- 実行時間が短縮したので、誤検知と分析性は導入後に解決する
- 追加開発が必要なので、候補ツールを即時に不採用にする
- 10本の代表テストが動いたため、全テストを一度に移行する
- 事前に定めた成功基準を、実行時間だけでなく誤検知率、失敗時の証跡・分類、CI連携、保守コスト、データ安全性まで広げ、改善後に再評価して段階導入を判断する
解答・解説
正解:4
ツール導入は、速度だけでなく、信頼できる結果、失敗分析、既存プロセスとの連携、保守・教育コスト、機密データの扱いを含むテスト目的への貢献で評価する。概念実証で見つかった誤検知や証跡不足を解消できるか確認し、段階的に導入する。
問題46
EC サイトの購入回帰テストをキーワード駆動で自動化する。現在、SearchProduct、AddToCart、Checkout、Pay、VerifyOrder のキーワードがあり、決済サービスはテスト環境によって応答が遅延する。UI のボタン名も頻繁に変更され、同じキーワードが複数のケースから利用されている。最も保守しやすい設計を選びなさい。
- 各テストケースへ画面座標、待ち時間、決済 API の詳細を直接書き込む
- UI 変更のたびにすべての業務シナリオを書き直し、遅延時は無条件に再実行する
- 業務キーワードとデータ・期待結果をケースに保持し、UI/API/待機・タイムアウト処理をキーワード実装の共通部品へ分離して、失敗時に原因情報を記録する
- 実装を隠蔽するため、
CheckoutとPayを 1 つの巨大キーワードへ統合する
解答・解説
正解:3
キーワード駆動では、テストケースを意味のある操作名の列として管理し、具体的な UI 操作や API 呼び出しを実装側へ隠蔽する。共通処理を局所化し、環境依存の待機・タイムアウト・ログを実装に持たせることで、変更と失敗分析を管理しやすくする。
問題47
同じ自動テストが、コード変更のない同一ビルドで 10 回に 1 回失敗する。失敗ログには、画面のタイムアウト、外部在庫サービスの遅延、テストデータの重複、期待値不一致が混在している。最初の分析として最も適切なものを選びなさい。
- 失敗を flaky と決めつけず、再現条件・環境・データ・外部依存・キーワードログを分離して収集し、製品欠陥・自動化欠陥・環境問題・データ問題を分類する
- CI の結果を安定させるため、失敗した実行を自動的に合格へ変換する
- 待ち時間を最大値まで増やし、原因を記録せず再実行する
- 同じテストを 100 回実行し、1 回でも合格すれば問題なしとする
解答・解説
正解:1
自動テストの失敗はテスト対象の欠陥だけでなく、キーワード、データ、環境、外部サービス、タイミングでも発生する。再試行だけでは原因を隠すため、実行条件と証跡を増やし、原因カテゴリと影響を分類してから対策を決める。
問題48
自動化ツールの概念実証で、代表的な 12 ケースは実行できた。しかし、実行結果の差分に業務上重要でない動的 ID が毎回含まれ、失敗時のスクリーンショットは取得できず、テストアナリストはキーワードデータを編集できない。次の判断として最も適切なものを選びなさい。
- 代表ケースが動いたので、問題を残したまま全回帰テストへ展開する
- テストアナリストが編集できないことは品質に関係しないため、評価項目から外す
- 動的 ID を含む差分をすべて無視し、失敗は担当者が画面を確認する
- 判定ルール、証跡、ロール分担、保守性を成功基準に追加し、少数ケースで改善を検証してから段階導入する
解答・解説
正解:4
概念実証は「動くか」だけでなく、信頼できる判定、失敗分析、適切な担当者が保守できること、CI やプロセスへの適合を検証する場である。動的値は意味のある差分と区別し、証跡と権限を整えてから導入範囲を広げる。
問題49
本番データを匿名化してテスト環境へ投入した。氏名は置換したが、郵便番号、生年月日、購入履歴の組合せで個人を再識別できる可能性があり、キーワード駆動テストのデータファイルには元の顧客 ID が残っている。最も適切な対応を選びなさい。
- 氏名が変わっているので、そのまま利用し、問題はテスト後に削除する
- 再識別リスクとデータファイルの参照を評価し、準同一識別子を一般化・置換するなど匿名化し、最小限の合成データへ切り替えてアクセスを制限する
- 自動化を止め、担当者が個人情報を含むデータを手動で入力する
- 顧客 ID だけをテストケースから削除し、データベース側の関連付けは確認しない
解答・解説
正解:2
匿名化は単一項目の置換だけでは不十分で、組合せによる再識別や、テストデータ・ログ・キーワード引数への漏えいも評価する。目的に必要な性質を保った合成データ、最小権限、アクセス制御、保持期間を含めて安全に準備する。
問題50
自動化スイートは 1 回の実行時間を 4 時間から 40 分へ短縮したが、画面変更のたびに 30% のケースが修正対象となり、失敗のうち 20% は環境起因、結果レポートには要件 ID がない。自動化の改善計画として最も適切なものを選びなさい。
- 実行時間だけをさらに短縮するため、失敗したケースを削除する
- 画面変更を禁止し、現在のスクリプトを維持する
- キーワードの共通化、環境依存の分離、失敗分類・証跡、要件とのトレーサビリティ、保守時間を指標にし、改善効果を継続的に測定する
- すべての環境起因失敗を製品欠陥として報告し、保守作業を開発者へ移管する
解答・解説
正解:3
自動化の価値は実行時間だけで決まらない。変更への耐性、保守コスト、失敗の診断性、結果の信頼性、トレーサビリティ、環境差の扱いを測定し、改善前後で評価する。失敗を分類できなければ、速く実行できても意思決定への価値は低い。