問題24:アジャイルプロジェクトにおけるテスト技法の組み合わせ
問題 #24
Section titled “問題 #24”保険会社SecureLifeのマーケティング部門は、HIPPOS(Health Insurance Product Public Order Sales)というプロジェクトを開始した。このプロジェクトの目的は、潜在的な顧客が年齢や様々な健康要因に基づいて保険料やボーナスを計算できる新しいインターネットアプリケーションを作成することである。また、この新アプリケーションにより、個人顧客がオンラインで健康保険商品を注文できるようにもなる。
プロジェクトHIPPOSで作成される新しいアプリケーションは、SecureLifeのアジャイル開発チームによって開発およびテストされる。このアジャイル開発チームは過去3年間、マーケティングチームと協力してWebアプリケーションを開発してきた。アジャイルチームは十分なトレーニングを受けたテスト担当者と開発者で構成されている。彼らは構成テストと回帰テストのためのテスト自動化を実装しており、一般的な欠陥と一般的なセキュリティ問題の分類体系(タクソノミー)を構築している。
プロジェクトHIPPOSでは、マーケティング部門のプロダクトオーナーが、最初のリリースプランニングミーティングの前に、アジャイルチームに対して以下のユーザーストーリー(US)を提示した。
- US1: Web健康保険計算機能は、アクチュアリー(保険数理士)および保険計算ビジネス部門によって記述されたルールに従って、保険料とボーナスを計算しなければならない。
- US2: HIPPOSアプリケーションのユーザーインターフェースは、他のマーケティングWebアプリケーションと同じ標準に従い、過去2年間使用されてきたページフレームとダイアログの事前定義されたセットアップを使用しなければならない。
- US3: Webアプリケーションは、様々なタイプのWebブラウザ(Internet Explorer、Google Chrome、Firefox、Safari)の最新3バージョンをサポートしなければならない。
- US4: セキュリティは、他のマーケティングWebアプリケーションと同等のレベルでなければならない。
アジャイルチームは、テストアプローチの準備を求められている。プロダクトオーナーはチームに対し、リリースプランニングミーティングでテスト技法の使用に関する提案を発表するよう求めている。与えられたシナリオを最もよくサポートする提案はどれか?
- a) アジャイルチームは、探索的テストを主要なテスト技法として使用する。US1には同値分割と境界値分析も使用し、US4には追加のブラックボックステスト技法を使用する。
- b) アジャイルチームは、探索的テストと欠陥ベースのテストを主要なテスト技法として使用する。US1にはデシジョンテーブルテストも使用する。US3には適応性テストを使用し、US4にはチェックリストを使用した攻撃ベースのテスト(attack-based testing)を特別に使用する。
- c) アジャイルチームは、探索的テストを主要なテスト技法として使用する。US1には相互運用性テストも使用する。US3には適応性テストを使用し、US4には攻撃ベースのテストも使用する。
- d) アジャイルチームは、ブラックボックステスト技法を主要なテスト技法として使用する。US1には状態遷移テストと境界値分析も使用し、US4には追加で探索的テストも使用する。
b) アジャイルチームは、探索的テストと欠陥ベースのテストを主要なテスト技法として使用する。US1にはデシジョンテーブルテストも使用する。US3には適応性テストを使用し、US4にはチェックリストを使用した攻撃ベースのテスト(attack-based testing)を特別に使用する。
この問題は、チームの背景(コンテキスト)と各ユーザーストーリー(US)の要件を正確に読み解き、適切なテスト技法をマッピングできるかを問う総合問題です。
- a) 不正解。 チームが構築した貴重な「欠陥分類体系」を活用する「欠陥ベースのテスト」に全く言及していません。また、US1のルールベースの計算には同値分割/境界値分析よりもデシジョンテーブルの方が適しており、US4のセキュリティテストにブラックボックス技法を提案している点もシナリオ(分類体系の存在)と合致しません。
- b) 正解。 複数の技法を組み合わせた最も可能性の高い提案です。
- シナリオには「一般的な欠陥の分類体系(タクソノミー)を構築している」とあるため、欠陥ベースのテストが直接的にサポートされています(アジャイル環境での探索的テストとの親和性も高いです)。
- US1(計算ルール): ビジネス部門が記述した複雑な「ルール」に基づく計算には、同値分割などよりもデシジョンテーブルテストが適しています。
- US3(ブラウザサポート): 自動化された構成テスト(シナリオの背景で言及)と適応性テストが要件に合致しています。
- US4(セキュリティ): 構築済みの「セキュリティ問題の分類体系」を活用した、チェックリストベースの攻撃ベースのテストが最適です。
- c) 不正解。 主な誤りは、US1(計算ルール)に対して「相互運用性テスト」を提案している点です(US1にはシステム間の連携等の記述はありません)。また、シナリオで明記されている「欠陥ベースのテスト」への言及も不足しています。
- d) 不正解。 アジャイル開発において(特にこのシナリオの文脈で)ブラックボックステストを主要な技法とすることは適切ではありません。また、US1に状態遷移テストを適用する根拠はなく、代わりにデシジョンテーブルが提案されるべきです。
JSTQB AL TA試験における「シナリオ問題」を解くためのフレームワークです。長文の問題は、以下の要素に分解してキーワードを拾うと正解が見えてきます。
- チームの「資産」を見逃さない: 問題文第2段落の「一般的な欠陥と一般的なセキュリティ問題の分類体系を構築している」が最大のヒントです。前回の問題(23)でも触れた通り、タクソノミ(分類体系)=欠陥ベースのテストのトリガーです。これに言及していない選択肢(a, c, d)はこの時点で大きく減点されます。
- US1:「ルール」に基づく計算機能: 保険料の計算のように「年齢」「健康要因」などの複数の条件(ルール)の組み合わせで結果が変わるシステムには、デシジョンテーブルテストがベストプラクティスです。
- US3:多様なブラウザ環境への対応: OSやブラウザの違いに対応できるかを確認するのは 適応性テスト(または構成テスト) の領域です。
- US4:セキュリティへのアプローチ: セキュリティテストには様々なアプローチがありますが、チームが「セキュリティ問題の分類体系(過去の脅威リスト)」を持っている場合、それを利用した 攻撃ベースのテスト(Attack-based testing) が最も効率的かつ効果的です。
アジャイルにおけるテスト技法の比重 アジャイル開発では、変化に強く、テスターのスキルを活かせる「探索的テスト」や「経験ベース/欠陥ベースのテスト」が(主要なアプローチとして)非常に好まれます。ブラックボックステスト(特に重厚なドキュメントを伴うもの)を全面に押し出している選択肢は、アジャイルの文脈では不正解になりやすい傾向があります。