テスト技法(test techniques)

JSTQB AL TAの(JSTQB Advanced Level テストアナリスト)シラバスv3.1.1で定義されているテスト技法についてのまとめです。

ブラックボックステスト技法(black-box test techniques)

システム要件仕様やユーザーストーリーなどの仕様ドキュメントに基づき、ソフトウェアの内部構造を見ずに外部の振る舞い(入力と出力)に注目してテストケースを設計する技法です。

  1. 同値分割法 同じように処理されると期待される入力値や出力値のグループ(同値パーティション)を作成し、各グループから代表値を選んでテストすることで、テストケースを効果的に削減します。
  2. 境界値分析 順序付けられた同値パーティションの境界上、および境界のすぐ外側の値(2値または3値)を使用して、境界付近の処理に関するロジックエラー(条件のズレなど)を検出します。
  3. デシジョンテーブルテスト 複数の条件の組み合わせと、それによって引き起こされるアクションを表形式(デシジョンテーブル)で表し、システムに適用される複雑なビジネスルールや論理を網羅的にテストします。
  4. 状態遷移テスト イベントの発生によってシステムが定義された状態間をどのように遷移するかをテストします。有効な遷移だけでなく、無効な状態への移行や無効な遷移も検証します。
  5. クラシフィケーションツリー技法 入力パラメーターとその値の同値パーティションをツリー状に視覚化する技法です。テストすべきデータの組み合わせ(ペアワイズテストの入力など)や境界値を特定するのに役立ちます。
  6. ペアワイズテスト 多数のパラメーターがある場合に、すべての組み合わせをテストするのではなく、「任意の2つのパラメーターの値のペア(オールペア)」が少なくとも1回は網羅されるように組み合わせを絞り込み、効率的にテストします。
  7. ユースケーステスト ユーザー(アクター)とシステム間の相互作用を定義した「ユースケース」を用いて、想定されるトランザクションやシナリオをエミュレートします。基本の振る舞いだけでなく、代替フローや例外・エラー処理の振る舞いもカバーします。

経験ベースのテスト技法(experience-based test techniques)

テスト担当者のスキルや直感、過去の類似アプリケーションや技術における経験を活用してテストを行う技法です。仕様のドキュメントが不足している場合や、テスト時間が厳しく制限されている場合に特に有効です。

  1. エラー推測 テスト担当者の経験を活かして、コード設計や開発時に開発者が犯しそうな「潜在的なエラー」を推測し、それを顕在化させて故障として認識できるようなテストケースを作成します。
  2. チェックリストベースドテスト 過去の経験や標準(ユーザーインターフェースの標準など)に基づいて作成された、検証すべき項目やルールのハイレベルな一覧(チェックリスト)を使用してテストを行います。
  3. 探索的テスト テスト対象の学習、テストの設計、実行、および結果の評価を「同時」に行うアプローチです。通常は事前に用意されたスクリプトに縛られず、テストの目的を示した「テストチャーター」や、制限時間を設ける「タイムボックス」を用いてセッションを管理しながら実行されます。
  4. 欠陥ベースのテスト技法 すでに知られている欠陥のタイプ、根本原因、故障の兆候などをまとめた「欠陥一覧(分類法)」をベースとして、それらの欠陥を体系的に顕在化させるためのテストケースを導き出します。

まとめ

これら2つのカテゴリーのテスト技法は補完関係にあります。ブラックボックステスト技法の体系的なアプローチに存在するカバレッジの隙間を、経験ベースのテスト技法が埋めることができるため、これらを組み合わせて使用することが最も効果的とされています。