アジャイル開発では、ドキュメントを最小限に抑えながらも、品質を確保するためのテスト設計が欠かせません。
今回は、ISTQB Agile Tester Extensionシラバスの「3.3.3 Functional and Non-Functional Black Box Test Design(機能的・非機能的ブラックボックステスト設計)」についてわかりやすく解説します。
1. ブラックボックステスト技法とは?
ブラックボックステストとは、内部構造を考慮せず、外部から見たシステムの入力と出力の関係を確認するテスト手法です。
代表的な技法には以下があります。
-
同値分割法(Equivalence Partitioning)
入力値を「同じ結果をもたらすグループ」に分けて、各グループから1つだけ代表値を選んでテストする方法。
-
境界値分析法(Boundary Value Analysis)
エラーが発生しやすい「境界値(境目)」に着目してテストする方法。
-
決定表テスト(Decision Table Testing)
条件と結果を表にまとめ、組み合わせを体系的に網羅する方法。
-
状態遷移テスト(State Transition Testing)
システムの状態変化をもとに、状態間の遷移やイベントをテストする方法。
これらは、従来型(ウォーターフォールなど)の開発でも用いられてきた正式な技法です。
しかしアジャイル開発でも、必要に応じてこれらの技法を活用することが可能です。
2. アジャイル開発におけるテスト設計の特徴
アジャイルでは「最小限のドキュメントで、迅速にフィードバックを得る」ことが重視されます。
そのため、従来のような長大なテスト仕様書は作成せず、次のような軽量な形式が一般的です。
-
テストシナリオを簡潔にまとめる
-
1行で表現した「論理テストケース」を用意する
-
ユーザーストーリーや受け入れ基準(Acceptance Criteria)から直接テストを導出する
しかし、すべてを簡略化するわけではありません。
リスクの高い領域や重要な要件に対しては、正式なブラックボックス技法を適用し、より体系的にテストケースを設計することが推奨されます。
3. 機能テストと非機能テストの両方に適用できる
ブラックボックス技法は、機能テストだけでなく非機能テストにも活用できます。
たとえば:
✅ 機能テストの例
-
入力フォームに「年齢」を入力し、0歳未満や150歳以上を入力した場合の動作を確認する(境界値分析)
-
ログイン処理の条件を組み合わせて正常・異常パターンを網羅する(決定表テスト)
✅ 非機能テストの例
-
「レスポンスタイムが2秒以内であること」という性能要件に対し、境界値を設定して測定する
→ 例:1.9秒(合格)、2.0秒(境界値)、2.1秒(不合格)
-
「1時間あたりの処理失敗数が5回未満であること」という信頼性要件をテストする
→ 同値分割法を使って「0〜4回」と「5回以上」の区分を定義して確認
このように、非機能要件も“数値的な条件”を持つ場合は、ブラックボックス技法で体系的にテスト設計が可能です。
4. 実務での活用イメージ
アジャイル開発では、テスターと開発者が密に協力します。
例えばスプリント中に次のような流れでテストを設計します。
-
ユーザーストーリーの受け入れ基準を確認
-
リスク分析を行い、重要度の高い項目を特定
-
テスト技法を選択(例:境界値分析)
-
テストケースを作成し、開発者とレビュー
-
実装と並行してテストを実行
これにより、「開発中にテストが追いつかない」「品質リスクが見落とされる」といった課題を防ぐことができます。
5. 例題:レスポンスタイム要件のテスト設計
問題:
Webアプリケーションのレスポンスタイム要件は「3秒以内」と定義されています。
以下の入力条件のうち、境界値分析を用いると最も適切なテストデータの組み合わせはどれでしょうか?
選択肢:
A. 2秒、3秒、4秒
B. 1秒、2秒、3秒
C. 2.9秒、3.0秒、3.1秒
D. 2秒、3.5秒、4秒
正解:C. 2.9秒、3.0秒、3.1秒
→ 境界値分析では、要件の境界付近(3.0秒前後)を重点的にテストします。
6. まとめ
-
アジャイル開発でも、必要に応じて正式なテスト設計技法を活用することが重要。
-
ブラックボックステスト技法は、機能・非機能の両面で有効。
-
軽量なドキュメントでも、テストの論理性と網羅性を担保することが可能。
-
テスターと開発者が協力してテストケースを並行設計することで、品質向上と開発スピードの両立が実現できる。


コメント