問題11
問題 #11
Section titled “問題 #11”モバイルバンキングアプリケーションのシステムテストを実施しています。開発は2チームに分かれています。
| チーム | 担当領域 | 特徴 |
|---|---|---|
| バックエンドチーム | サーバー上のビジネスロジック | 経験豊富。欠陥を迅速・確実にデバッグ・解決できる |
| フロントエンドチーム | GUI とモバイルアプリ | 人員の入れ替わりが多い |
直近リリースで解決された本番障害
Section titled “直近リリースで解決された本番障害”- 銀行口座番号の不正: 送金先の銀行に支払いが拒否された。根本原因はモバイル端末側の銀行口座バリデーション不足
- GUI 表示崩れ: 一部の画面サイズ・解像度で GUI 要素が正しく表示されず、支払い入力操作を妨げた
次のリリースに含まれる変更
Section titled “次のリリースに含まれる変更”- 新機能:請求書の写真を撮影して支払いを行う機能
- バグ修正:口座残高の計算に関する重大な欠陥を修正
- GUI 変更:アクセシビリティ基準に準拠するためナビゲーションバーを再設計
テストリソースが限られているため、すべてのリグレッションテストを実行することはできません。そのため 履歴ベースリグレッションテスト戦略 を採用しました。
このシナリオに最も適したテスト目標はどれか。2つ選べ。
- a) 写真撮影と手動入力の両方の支払い方法で、銀行口座バリデーションに関するリグレッションテストをすべて実行する
- b) 支払いの決済処理と口座残高計算に関連するすべての機能のリグレッションテストを実行する
- c) 潜在的な障害への影響がクリティカルまたは重大なリスクを持つリグレッションテストをすべて実行する
- d) ナビゲーションバーを含む GUI のリグレッションテストを、デバイス普及率の統計に基づき優先順位をつけながら、さまざまな画面サイズ・解像度のモバイル端末で実行する
- e) すべての要件に対して少なくとも1つのリグレッションテストを実行し、最も頻繁に使用されるシナリオを優先する
履歴ベースリグレッションテストとは
Section titled “履歴ベースリグレッションテストとは”履歴ベースリグレッションテスト(History-Based Regression Testing) は、過去の欠陥データや本番障害の履歴を根拠にテストを選択する戦略です。
- 過去に本番障害が発生した領域を優先的にテストする
- 過去に欠陥が多く発見されたテストケースを再実行する
- 障害が発生しやすい「不安定な領域」を重点的にカバーする
各選択肢の分析
Section titled “各選択肢の分析”a) 写真撮影と手動入力の両方の支払い方法で、銀行口座バリデーションのリグレッションテストを実行する ✓
Section titled “a) 写真撮影と手動入力の両方の支払い方法で、銀行口座バリデーションのリグレッションテストを実行する ✓”過去の本番障害:モバイル端末での銀行口座バリデーション不足による支払い拒否。この領域には明確な障害履歴があります。
さらに今回の変更で「写真撮影による支払い」という新しい入力経路が追加されたため、バリデーション処理が両方の入力方法で正しく機能するかを確認することが重要です。
履歴ベースの観点:過去に障害が発生した銀行口座バリデーション領域をターゲットにしており、戦略と一致しています。✓ 適切
b) 支払いの決済処理と口座残高計算に関連するすべての機能のリグレッションテストを実行する ✗
Section titled “b) 支払いの決済処理と口座残高計算に関連するすべての機能のリグレッションテストを実行する ✗”口座残高計算の欠陥は今回のリリースで修正された既知の不具合ですが、本番障害として記録されているのは「銀行口座バリデーション」と「GUI 表示崩れ」です。残高計算は本番障害履歴としては登場しておらず、履歴ベース戦略の根拠が薄い選択肢です。✗ 不適切
c) 潜在的な障害への影響がクリティカルまたは重大なリスクを持つリグレッションテストをすべて実行する ✗
Section titled “c) 潜在的な障害への影響がクリティカルまたは重大なリスクを持つリグレッションテストをすべて実行する ✗”これはリスクベースリグレッションテストの定義です。リスクの高さを優先基準にするこの戦略は、採用している「履歴ベース」戦略とは異なります。✗ 戦略が違う
d) ナビゲーションバーを含む GUI のリグレッションテストを、デバイス普及率統計に基づき優先順位をつけながら、さまざまな画面サイズ・解像度で実行する ✓
Section titled “d) ナビゲーションバーを含む GUI のリグレッションテストを、デバイス普及率統計に基づき優先順位をつけながら、さまざまな画面サイズ・解像度で実行する ✓”過去の本番障害:一部の画面サイズ・解像度での GUI 表示崩れ。この領域には明確な障害履歴があります。
さらに今回の変更でナビゲーションバーが再設計されており、過去に問題が発生した領域(画面サイズ依存の GUI 表示)が変更されています。デバイス普及率統計で優先順位をつけることで、実際の利用環境に即したテストが可能です。
履歴ベースの観点:過去に障害が発生した GUI 表示の領域をターゲットにしており、戦略と一致しています。✓ 適切
e) すべての要件に対して少なくとも1つのリグレッションテストを実行し、最も頻繁に使用されるシナリオを優先する ✗
Section titled “e) すべての要件に対して少なくとも1つのリグレッションテストを実行し、最も頻繁に使用されるシナリオを優先する ✗”「最も頻繁に使用されるシナリオを優先」するのは使用頻度ベース(Statistical / Usage-Based)リグレッションテストの特徴です。これも履歴ベース戦略とは異なります。✗ 戦略が違う
a) と d)
| 選択肢 | 根拠となる本番障害履歴 | 履歴ベース戦略との整合性 |
|---|---|---|
| a) | 銀行口座バリデーション不足による支払い拒否 | ✓ |
| b) | 本番障害履歴なし(内部欠陥の修正) | ✗ |
| c) | リスクベース戦略の説明 | ✗ |
| d) | 画面サイズ・解像度による GUI 表示崩れ | ✓ |
| e) | 使用頻度ベース戦略の説明 | ✗ |
リグレッションテスト戦略の違いを見分ける
Section titled “リグレッションテスト戦略の違いを見分ける”各戦略の判断基準となるキーワードを押さえておくことが重要です。
| 戦略 | キーワード・判断基準 |
|---|---|
| 履歴ベース | 過去の本番障害・欠陥履歴・障害が多かった領域 |
| リスクベース | リスクレベル・クリティカルな影響・障害の深刻度 |
| 使用頻度ベース | 頻繁に使われるシナリオ・ユーザー統計・デバイス普及率 |
| 変更ベース | コード変更箇所・影響分析・新機能 |
フロントエンドチームの状況と履歴の関係
Section titled “フロントエンドチームの状況と履歴の関係”「フロントエンドチームは人員の入れ替わりが多い」という情報は、GUI 関連の欠陥が今後も発生しやすいことを示唆しています。この文脈で過去の GUI 表示崩れの履歴を重視することは、履歴ベース戦略として特に合理的です。
本番障害と内部欠陥の区別
Section titled “本番障害と内部欠陥の区別”選択肢 b) が指す「口座残高計算の欠陥」は今回のリリースで修正された内部欠陥であり、本番障害として記録されているわけではありません。履歴ベース戦略においては、本番で実際に影響を与えた障害の履歴を最重視します。