Skip to content

3.2 振る舞いベースのテスト技法 (Behavior-Based Test Techniques)

「振る舞いベースのテスト技法(Behavior-Based Test Techniques)」 は、システムが外部のイベント、ユーザーの操作、あるいは時間の経過に対してどのように反応するか(=振る舞い)に着目してテストケースを導出するブラックボックス技法です。

前節のデータベースドテスト技法がデータの構造や値の境界に焦点を当てていたのに対し、振る舞いベースの技法はシステムの一連のプロセスやシナリオ、状態の遷移を網羅することを目的としています。テストアナリストは、エンドユーザーの視点やビジネスプロセスの視点から、システムが期待通りに機能するかを検証するためにこれらの技法を適用します。

最新のシラバスv4.0では、主に以下の技法がこのカテゴリに分類されています。


データベースや永続ストレージで管理されるデータエンティティのライフサイクル(作成から破棄まで)に着目してテストを設計する技法です。CRUDは以下の4つの基本操作の頭文字です。

  • C (Create): データの作成

  • R (Read): データの読み取り・検索

  • U (Update): データの更新

  • D (Delete): データの削除

  • テストアナリストのタスク: 単一の操作だけでなく、「作成してから更新する」「作成してから削除する」「削除したものを読み取ろうとする」といった、 操作のシーケンス(連続した流れ) が正しく処理されるかを検証します。状態遷移テストと似ていますが、データオブジェクトの操作に特化しています。

  • 考慮すべき観点: UI(画面)を通じた操作だけでなく、APIを介した操作の検証、ユーザーのアクセス権限(特定の権限を持つユーザーだけが削除できるかなど)の制御、および関連するデータ間の整合性(親データを削除したときに子データがどうなるか)の確認が含まれます。

2. 状態遷移テスト (State Transition Testing)

Section titled “2. 状態遷移テスト (State Transition Testing)”

システムが持つ複数の「状態」、状態が変わる契機となる「イベント」、状態が変わる際のアクション、および「遷移」をモデル化してテストを設計する技法です。

  • テストアナリストのタスク: システムが特定の状態にあるとき、特定のイベントが発生した場合に正しく次の状態へ遷移するかを検証します。
  • カバレッジ基準: 全ての有効な状態を網羅する基準(All States)や、全ての有効な遷移を網羅する基準(All Transitions / 0-スイッチカバレッジ)、さらには複数の遷移の組み合わせを網羅する基準(1-スイッチカバレッジなど)を、リスクに応じて選択します。また、発生してはならない不適切なイベントに対する堅牢性を確認するための 「無効な遷移」 のテストも重要です。

3. シナリオベースのテスト (Scenario-Based Testing)

Section titled “3. シナリオベースのテスト (Scenario-Based Testing)”

ユーザー(アクター)が特定の目標を達成するために、システムとどのように相互作用するか(一連の連続した操作)をテストする技法の総称です。シラバスでは代表的なアプローチとして以下の2つを挙げています。

3.1 ユースケーステスト (Use Case Testing)

Section titled “3.1 ユースケーステスト (Use Case Testing)”

アクター(ユーザーや外部システム)とテスト対象システムとの間のやり取りを定義した「ユースケース」からテストケースを導出する技法です。

  • プロセスの網羅: ユーザーが目的を達成するまでの最も一般的な成功ルートである 「基本フロー(メインサクセスシナリオ)」 だけでなく、途中で別のルートを通る 「代替フロー」 や、エラーが発生して目標を達成できない 「例外フロー」 を網羅するように設計します。
  • カバレッジ基準: すべてのシナリオ(基本フロー、代替フロー、例外フロー)の振る舞いを、少なくとも1回は実行(カバー)するようにテストケースを設計します。

3.2 ユーザーストーリーテスト (User Story Testing)

Section titled “3.2 ユーザーストーリーテスト (User Story Testing)”

アジャイル開発などで広く用いられる「ユーザーストーリー」と、そこに付随する 「受け入れ基準(Acceptance Criteria)」 に基づいてテストを設計する技法です。

  • アジャイルにおける役割: ユーザーストーリーは通常「[役割/ユーザー] として、[機能/目的] が欲しい。なぜなら [価値/理由] だからだ」という形式で記述されます。
  • テストアナリストのタスク: 記載された受け入れ基準が満たされているかを検証するだけでなく、要件に書かれていない隠れたエラーやエッジケースを発見するため、「ポジティブ(正常系)」と「ネガティブ(異常系・無効な入力)」の両方の観点からテストケースを拡張して構築します。

テストアナリストとしての適用ポイント

Section titled “テストアナリストとしての適用ポイント”

振る舞いベースのテスト技法を適用する際、テストアナリストは以下の点に留意する必要があります。

  • ビジネスドメイン知識の最大活用: ユーザーがシステムをどのように使うか、業務の現場でどのようなイレギュラーな操作が発生しうるかというドメイン知識が、優れたシナリオ(代替フローや無効な遷移)を洗い出す鍵になります。
  • 技法のブレンド: 振る舞いベースの技法で大枠のテストシナリオ(ユースケースやCRUDのフローなど)を定義し、そのシナリオ内で入力する具体的なデータパターンに対してデータベースドテスト技法(例: 同値分割法や境界値分析)を掛け合わせることで、漏れがなく効率的なテストスイートを設計することができます。