ISTQB AL テスト自動化エンジニア試験問題サンプルの非公式翻訳

ISTQBのテスト自動化エンジニアのページには、試験問題と解答のサンプルが掲載されています。

[Advanced Level Test Automation Engineer - ISTQB® International Software Testing Qualifications Board](https://www.istqb.org/certification-path-root/test-automation-engineer.html)

日本ではまだ試験がないので、オレオレ翻訳（≒DeepLの翻訳）をしました。

## 問題

### 問1（1ポイント）

マニュアルテストと比較してテスト自動化のメリットとして、以下のうちどれが考えられるか。

a. テスト実行に必要な時間が長くなり、カバレッジが上がる
b. テスト実行に必要な時間が短縮され、カバレッジが上がる
c. テスト実行に必要な時間が長くなり、カバレッジが下がる
d. テスト実行に必要な時間が短縮され、カバレッジが下がる

### 問2（1ポイント）

自動化プロジェクトの技術的成功要因として重要なのは次のうちどれか。

a. TAAは学習可能性を考慮して設計されなければならない
b. TAAはすべての手動テストを自動化する能力をサポートしなければならない
c. SUTは自己文書化されていなければならない
d. GUIの操作とデータは、画面インターフェースと結合されていなければならない

### 問3（3ポイント）

あなたは、何年にもわたって本番で使用されることが予想される非常に複雑なシステムのために、機能テストの自動化アプローチを決定しようとしています。
あなたはすでに主要なツールベンダーに調査を行っており、ソフトウェアに必要な非標準のインターフェースが原因で、それらのツールを使用することはできないと判断しました。
あなたと開発者は、テストのために特別に実装されたカスタム・インターフェイスを介した最善の自動化アプローチを決定しました。このアプローチについて、あなたが持つべき2つの懸念事項は何でしょうか？(2つ選んでください)

a. リリース前にインターフェイスを無効にしておかないと、セキュリティリスクが発生する可能性がある
b. テストインタフェースの性能は、実際のインタフェースの性能よりもはるかに速いかもしれない
c. テストの自動化を開発するために費やした労力は、本番のコードの期待される寿命に見合わない
d. 干渉が多いため、誤報が発生する可能性がある
e. 干渉のレベルが低いため、テスト結果は本番コードを代表するものではない

### 問4（3ポイント）

あなたは、ビジネスに重要な機能を提供するレガシーアプリケーションを自動化しています。レガシーシステムの更新が承認され、開発者は新しい機能を提供するためにサードパーティ製のソフトウェアを使用する予定です。サードパーティのソフトウェアは既にテスト済みですが、既存のソフトウェアと新しいソフトウェアの間のインターフェースに問題があります。既存のテスト自動化を拡張して、これら2つの製品間のインターフェースをテストする必要があります。最適な自動化ソリューションを導入するには、どのようにアプローチすべきでしょうか？

a. レガシーアプリケーションとサードパーティ製アプリケーションを含むシステム全体のテスト自動化を開発する
b. サードパーティのソフトウェアとのインターフェースに使用されるAPIを介して自動化が可能かどうかを調査する
c. サードパーティソフトウェアのGUIを介してテストするための新しい自動化を開発する
d. 既存のGUI自動化に代わるCLIを使用して自動化を実装できるかどうかを検討する




### 問5（3ポイント）

あなたは、機能テスト自動化ツールを評価しています。あなたが好むツールは、あなたの組織に有利な費用便益率を提供することができ、マネージャにもアピールできます。
さらに、そのツールは他の技術的な基準を満たす上で優れていると感じています。
しかし、ツールには多くの機能があり、そのほとんどは決して使用されることはありません。その結果、このことがツールを過度に複雑にし、混乱させていると感じています。このツールの選択に関して、次のステップは何ですか？

a. よりユーザーフレンドリーな他のツールを検討する
b. 不要な機能をオフにするツールの設定の可能性を探る
c. このツールの選択を、長時間にわたる包括的なトレーニングセッションで補完する計画を立てる
d. 好ましいツールに対して、より使いやすいインターフェイスを提供できる追加ツールの取得を検討する

### 問6（1ポイント）

システムが試験性を考慮して設計されている場合、テストの結果期待する通りに動作したことを検証するために、テストケースがシステム内のインターフェースにアクセスできることが特徴の一つです。
この特徴は何と呼ばれているのでしょうか？

a. 観察性
b. 制御性
c. 保守性
d. 相互運用性

### 問7（1ポイント）

SUT を設計する際に重要な試験可能性の考慮事項は次のうちどれか。

a. 相互運用性
b. 制御性
c. 保守性
d. 運搬性

### 問8（1ポイント）

gTAAの構造のうち、手動のテストケース設計および自動化されたテストケースを作成するためのツールサポートを提供しているのはどの層ですか？

a. テスト適合レイヤー
b. テスト定義レイヤー
c. テスト生成レイヤー
d. テスト柔軟性レイヤー

### 問9（3ポイント）

あなたはテスト自動化プロジェクトの設計に従事しようとしています。gTAAは、あなたが採用される前にコンサルティング会社によって設定されました。あなたは今、gTAAからTAAを作成しようとしています。
TAA で対応しなければならない要件は以下の通りです。

1. TAA は、技術間の独立性をサポートしなければなりません。同じテストスイートを異なるテスト環境で実行したり、異なる技術を対象に実行したりする可能性があります。
2. テスト成果物はポータブルである必要があります。
3. ベンダー中立性が望ましい
4. TAAはメンテナンス可能であり、メンテナンスコストを最小限であることが極めて重要である。
5. 高度な技術者がシステムを構築したとしても、技術に明るくない方がメンテナンスができることが望ましい。
6. この取り組みには、今後2年間の事業予算が大きいが、それ以降は予算が減る。

これらの要件を考えると、TAE は、TAA の構築中に以下のうちどれを考慮すべきか。

a. TASがSUTと通信するために使用する通信プロトコル
b. システムが維持する自動テストケースの数
c. 実装によってサポートされるテストロール
d. 実装における抽象化の使用

### 問10（1ポイント）

TAA においてテスト定義とテスト実行を分離することが重要なのはなぜか。

a. 2つを分離することで、実行速度が向上する
b. 実行に使用するツールの知識がなくてもテスト定義を完成させることができる
c. 実行中に必要に応じてテスト定義にテストケースを追加できるようにする
d. テスト定義レイヤーは、様々なツールやインターフェースでテストを実行するために必要な適合を提供する

### 問11（1ポイント）

テスト適合レイヤーを設計する際に行うのは次のうちどれか。

a. テスト手順を実現するために、インタプリタ型のアプローチとコンパイル型のアプローチのどちらを採用するかの選択
b. データ駆動、キーワード駆動、パターンベースド、モデル駆動のテスト定義の選択
c. 手動または自動のテスト生成を選択
d. テストインターフェースを操作・観測するためのツールの選択

### 問12（1ポイント）

テスト自動化にとって、SUT の法的要件及び/又は標準要件を検討するのに最適な時期はいつか。

a. TASを開発するとき
b. SUTを実装するとき
c. TAAを設計するとき
d. TAFを作成するとき

### 問13（3ポイント）

あなたは、ユーザ受け入れテストの担当者がUATを行う際に用いるビジネスシナリオを自動化するテスト自動化プロジェクトに従事しています。ビジネスシナリオは有分に定義されており、UATの間頻繁に繰り返されます。
自動テストを実行することで、これらのシナリオと同じものをリグレッションテストの一部と
して実行できるようにすることもゴールです。

テスト自動化で使えるよう、構造化スクリプティング手法を用いて関数のライブラリが開発されています。

どんなスクリプティング技法を用いて、すでに構造化されたスクリプトを構築したり、ビジネスゴールに沿った自動テストを実装したりしますか？

a. シナリオ駆動型スクリプト
b. キーワード駆動型スクリプト
c. プロセス駆動型スクリプト
d. リニアスクリプト

### 問14（3ポイント）

あなたの上司から、一連のインフラの移行を行う予定のレガシーシステムで使用するテスト自動化の開発を依頼されています。スクリプトは、これらのインフラストラクチャの変更時に基本的な機能を検証するために使用されます。シンプルで高速なソリューションが必要です。
ソフトウェアへの変更が予想されないため、スクリプトの保守性は考慮されません。このような状況でのスクリプト作成のアプローチとして最適なものはどれですか？

a. 構造化スクリプト
b. データ駆動型スクリプト
c. キーワード駆動型スクリプト
d. リニアスクリプト

### 問15（2ポイント）

あなたはgTAAを使ってプロジェクトのTASを作成しています。プロジェクトを見直した結果、テストの自動化はユーザーインターフェースのレベルではなく、コマンドラインのレベルで行うべきだと判断しました。コマンドラインではすべての機能にアクセスでき、リリースされるプロジェクトの一部となるでしょう。この情報を考えると、標準のgTAAのどの部分をTASから省くことができるのでしょうか？

a. テスト定義レイヤーのテストデータコンポーネント
b. テスト適合レイヤーのGUIコンポーネント
c. テスト生成レイヤーのテストモデルコンポーネント
d. テスト実行レイヤーのユーザインタフェースコンポーネント

### 問16（2ポイント）

あなたはTAAからTASを実装しています。SUTは、安定していてテストの間に使用可能な別のシステムと通信しています。テストインターフェースは GUI を通して行われます。この情報を考えると、TAAのどのコンポーネントをTASから除外することができますか？

a. テスト生成レイヤー
b. テスト適合レイヤー内のシミュレータ
c. テスト実行レイヤー内でのテスト実行
d. テスト適合レイヤーのGUI

### 問17（1ポイント）

再利用に関する次の文章のうち、正しいのはどれですか？

a. 再利用はTAAに組み込まれており、TASで維持・改善されている。
b. 再利用はTAAとTASの両方に組み込まれ、gTAAで維持される。
c. 再利用はgTAAのみに適用される。
d. 再利用はTASに組み込まれ、TAAで維持・改善されている。

### 問18（2ポイント）

上層部は、テストの自動化を組織に導入したいと考えており、あなたにこの取り組みをリードしてほしいと依頼しています。組織には、重要度の異なる多数のシステムがあり、そのうちのいくつかは、TAAが成熟したら自動化の恩恵を受けるかもしれません。あなたはパイロットプロジェクトから始めるように指示を受けています。どのようにしてTASに適したプロジェクトを選ぶのでしょうか？

a. パイロットの成功を強調するための注目度の高いプロジェクト
b. TASによって発生しうる遅延を軽減するための非クリティカルなプロジェクト
c. シンプルで自動化しやすいプロジェクト
d. 未熟で開発途上の新規プロジェクト

### 問19（2ポイント）

あなたは、テスト自動化ツールのパイロットプロジェクトを実施するように依頼されました。あなたは、適切なターゲットプロジェクト（平均的な規模とコスト）を特定し、パイロットプロジェクトを計画し（開発の取り組みとして扱う）、パイロットプロジェクトを実施しました。次のステップは？

a. 重要なプロジェクトで別のパイロットプロジェクトを実施し、本当に重要なときにツールが機能することを確認する。
b. 些細なプロジェクトで別のパイロットプロジェクトを実施し、小規模なプロジェクトでも時間的な要件が高くならないようにする。
c. ステークホルダーを巻き込んで視点を集め、結果を評価する。
d. パイロットテストチーム内で結果を評価し、経営陣向けの報告書を作成する。

### 問20（3ポイント）

あなたのチームは、強力で保守性の高いTASの作成に取り組んでいます。そのTASは、少なくとも5年間は使用される想定のため、メンテナンス性の良さが非常に重要です。チームは以下のことを行いました。

1. 提案されているすべてのシステム変更の影響分析プロセスを作成しました。
2. TASの使い方を文書化
3. サードパーティ組織内の連絡先を含むサードパーティの依存関係を文書化
4. TASがSUT環境とは別の環境で動作していることの確認

このような情報を踏まえた上で、メンテナンス性の大きな要因のうち、対処されていないものは何でしょうか？

a. TASはモジュール化されており、必要に応じて主要部品を交換することができる。
b. TASはgTAAのコピーでなければならない。
c. SUTはTASと同じ環境でなければならない。
d. TASはテストスクリプトをTAFと統合しなければならない。

### 問21（3ポイント）

TASをアップデートして新機能を追加しました。その変更が既存の機能に悪影響を与えていないことを確認するには、どのような手順を踏むべきでしょうか？

a. 新旧のTASバージョンを比較し、違いの影響を評価する。
b. 新旧のTASの手順が同じであることを静的にチェックする。
c. 新しいTASでは、同じスタブとドライバーを使用していることを確認する。
d. SUTのリリースノートを使って、新しいTASが正しく動作するようにする。

### 問22（1ポイント）

なぜTASの標準的な命名規則が重要なのか？

a. 標準的な名前を使ったTASを使うことで、テストの自動化をより速く行うことができるため。
b. 標準的な名前を使ったTASの方が初めての人にも学習しやすいため。
c. 標準名を使用しているTASは、テストオートメーションの標準が変更されても、グローバルな置換に対応できるため。
d. 標準的な名前を使用したTASは、テストスクリプトとTAFを分離することができるため。

### 問23（2ポイント）

あなたの上司は、テストされたソフトウェアの品質が着実に向上していることを示すことができない限り、テスト自動化の実施の成功を評価することが困難になるのではないか、と懸念しています。
あなたは、実行が終了するたびにPass/Failの数が報告されることを説明しましたが、あなたの上司は、詳細がドリルダウンで見られるようなダッシュボードに、自動で追加される情報を見たいと言っています。
テスト自動化ソフトウェアからこの情報を自動的に提供する方法を教えてください。

a. できない。この情報は、各実行の最後に手動で収集する必要がある。
b. 自動化されたテストウェアを使用して、この情報をデータベースに報告し、データベース内のデータからダッシュボードを作成して、テストケースのPass/Failの傾向を表示することができる。
c. 自動化されたテストウェアは、テスト実行結果の各セットを、詳細な結果を示す公開可能なスプレッドシートに報告することができる。
d. TAE は、実行中の情報を記録し、それを管理報告用に提供できるグラフツールに報告することができる。


### 問24（2ポイント）

通常、自動化されたリグレッションテストスイートの実行は、長いテストなので、仕事の終わりに開始します。
時折、テストは開始から5時間以内に完了するはずなのに、次の日の開始までに完了しないことがあります。原因究明のために最も効率的な方法は何でしょうか？

a. 一日の初めにテストを実行し、手動でモニターする。
b. テストの進捗状況を測定するベンダーの報告ツールを評価する。
c. テストの実行中に監視する夜間スタッフで補う。
d. テスト実行結果の収集を自動化する。

### 問25（1ポイント）

テスト自動化のために結果報告を導入する場合、読者がテスト実行の進捗状況を素早く評価できるようにするには、どのような方法が良いでしょうか？

a. スプレッドシート
b. 信号機
c. 完了率の詳細報告書
d. 結果のデータベース

### 問26（1ポイント）

テスト自動化の結果を毎日配信してほしいとのご依頼をいただきました。この結果の配信方法としては、メールでの配信が望ましいと思います。このような情報を提供できるようになるテスト自動化レポートの重要な特徴は何でしょうか？

a. 共通のサードパーティツールと統合する
b. 結果を手動の解説で補足できるようにする
c. テストログライブラリを公開する方法を提供する
d. テスト結果に付随する音声メッセージをキャプチャできるようにする


### 問27（3ポイント）

あなたは良いテストカバレッジの自動テストスイートを使っています。

このスイートには 500 個のスクリプトが含まれており、以前は何の問題もなく実行されていました。最近、テスト実行の後半のいくつかのテストが失敗しています。

あなたはいくつかの分析を行いましたが、テストの失敗は、テスト実行の初期に行っている、1つ以上のテストで検出されないSUTの失敗によって引き起こされているように見えます。

擬陰性の結果が出たテストまたはテストを特定するためには、より多くの情報が必要です。分析を完了し、問題の特定に役立つ情報を得るためには、どのようなタイプのロギングが必要ですか？

1. 各テストケースの実行状況（合否）
2. 各テストケースの各ステップのタイミング情報
3. SUTに関する動的情報
4. 各テストを再生できるようにするための各テストケースのすべてのアクション
5. テストケース内でエラーが発生したステップの失敗情報

上記の１〜５のうち、必要なロギングの組み合わせを以下から選んでください。

a. 1, 2, 3
b. 2, 4, 5
c. 2, 3, 5
d. 1, 4, 5

### 問28（1ポイント）

テスト実行レポートを公開する際に、レポートに含まれている必要があるキー属性はどれですか？

a. テストケースのステップ
b. テスト環境
c. SUTの信頼性の評価
d. 故障の根本原因

### 問29（2ポイント）

あなたは、2年前から稼働しているシステムのテスト自動化を実装するように依頼されました。
ソフトウェアは比較的安定しており、アップデートは四半期に一度行われ、ソフトウェアの品質は非常に重要です。
この組織は、Vモデルのライフサイクルに沿っており、長年にわたってこのモデルを使用してきました。
四半期ごとのリリースではソフトウェアの品質は良好ですが、リグレッションテストに必要な時間が費用対効果に乏しく、新機能の流れを阻害しているという懸念があります。
この実装にはいくつかの課題がありますが、その中でも最も大きな課題はテストデータの作成と保存です。
テスト環境は安定して管理されていますが、テストデータは本番から頻繁に更新されるため、保守性の高いテスト自動化を書くことが難しくなっています。
これらの情報を考えると、このテスト自動化の効果で問題となる可能性が高いのは以下のうちどれでしょうか？

a. テストプロセスの成熟度
b. ソフトウェア製品のライフサイクルの段階に応じた自動化の適合性
c. 使用頻度
d. 自動化するための複雑さ

### 問30（1ポイント）

自動テストスクリプトの最も一般的な根拠は何ですか？

a. gTAA
b. SUT
c. 手動のテストケース
d. 機能的な要件

### 問31（1ポイント）

SUTの全体的な品質を確認する必要がある場合、自動化されたリグレッションテストのカバレッジの目標はなんですか？

a. ざっと
b. 広く
c. 深く
d. 広く深く


### 問32（1ポイント）

既存のTASに新機能を実装する場合、誰がTAEにフィードバックをするべきでしょうか？

a. ビジネスアナリスト
b. シニアマネージャー
c. ドメインの専門知識を持つテスト設計者
d. システム管理者

### 問33（1ポイント）

欠陥の確認テストを自動化する理由として、最も適切なもの次のうちどれか。

a. 既存の自動化のギャップを埋めるため
b. 修正が正しく反映され、継続して動作することを確認するため
c. 欠陥の発見に費やした時間を正当化するため
d. 構成管理プロセスをテストするため

### 問34（2ポイント）

あなたは自動テスト環境の信頼性や設定に問題を抱えています。実際のテストスクリプトを実行する前に、環境を検証するために実行できるテストスイートを作成することにしました。以下のうち、どれが環境のクイックテストに最適でしょうか？

a. 合格することがわかっている一連のテストを実行し、まだ合格していることを検証する
b. 失敗することがわかっている一連のテストを実行し、それでも失敗することを検証する
c. 合格と不合格の両方を含む一連のテストを実行し、結果が一貫していることを検証する
d. 部分集合は代表的なものではないので、自動テストの全セットを実行し、結果を検証する

### 問35（2ポイント）

あなたは毎月のサービスパックで更新されるシステムをテストしており、複数のバージョンのSUTを同時にテストしているます。あなたのTASは複雑で、異なるSUT環境でも一貫性を保つ必要があります。どのようにして同じバージョンのTASを使用して各SUTをテストするのでしょうか？

a. SUTのパッチが適用されるたびにTASを更新する
b. 手動テストに戻す
c. TASを中央リポジトリからSUT環境にインストールする
d. 過去の試験結果を追跡するツールを開発する

### 問36（2ポイント）

あなたは、本番にリリースされた製品の自動テストスイートを実行したことがあります。テストは合格しましたが、自動テストで十分にカバーされている領域で、本番環境で大規模な障害が発生しました。テストが合格し、結果の報告が正しいことを確認しました。検査の妥当性を確認するために、今から何をすべきでしょうか？

a. 失敗するはずのテストを実行し、失敗したことを確認する
b. 合格すべきテストを実行し、合格したことを確認する
c. 各テストケースの事後条件が正しく検証されていることを確認する
d. テストデータを変更して、再度テストを実行する

### 問37（2ポイント）

安全性が重要なヘルスケアアプリケーションのテスト自動化スイートを実行する準備をしています。テスト結果の正確性を検証するために、どのアプローチを取るべきでしょうか？

a. 失敗がわかっているテストケースを実行し、失敗が続くことを検証する
b. 生産システムからデータを抽出し、TASとの互換性を確認します。
c. 類似の SUT の過去の試験傾向を調べる。
d. テストスイートをゆっくりと計画的に実行する

### 問38（3ポイント）

あなたはTASのテストケースをレビューしていて、TAEがシステムエラーを処理するために使用してきた方法が多岐にわたっていることがわかりました。どのように対処すべきでしょうか？

a. TASにエラーリカバリープロセスを確立し、すべてのテストケースがそのプロセスを使用していることを確認する。
b. 復旧プロセスのライブラリを作成し、異なるスクリプト間での再利用性を高める。
c. キーワード主導型に移行し、回復をキーワードの一つにする。
d. システムエラーを回避するために、スクリプト中でより良い待機処理を提供する。

### 問39（3ポイント）

今までは安定したSUTの自動テストを提供していました。ビジネスの需要が変化しているため、SUTはAPIを介して通信するいくつかの新機能やプラグインを含むように更新されます。どのような方法でTASをアップデートすればいいのでしょうか？

a. APIコールが失敗した場合の耐障害性を高めるために、TASのリカバリを改善する。
b. APIのサポートを含むTASのドキュメントを更新する。
c. APIの不具合による予測される不具合の増加を把握するためのロギングを改善する。
d. TAAのアダプテーションレイヤーを変更して、TASがAPI経由でテストできるようにする。

### 問40（3ポイント）

あなたはTASの品質レビューを行っています。その結果、TASが3年間アップデートされていないことがわかりました。TASは適切に機能し、SUTをカバーしていますが、なるべく効率的に動作するようにしたいです。TASの効率を上げるためには、どのようなステップを考えればいいのでしょうか？

a. 新しい自動化コードの一貫した命名基準を確保する。
b. 最先端の業務に合わせて、TASを次々と変更していく。
c. 最新のライブラリがTASに組み込まれていることを確認する。
d. 現在のTASを第三者に評価してもらう。