組み合わせテスト(ペアワイズ法)の基礎知識
はじめに
ソフトウェアテスト技法練習帳を解き進めるにあたって、基本的な技法を再度学びなおして記事としてアウトプットしました。
あくまで基礎的な内容ですが参考になれば。
組み合わせテストとは
組み合わせテストは、複数の条件を組み合わせてシステムの動作を確認するテスト技法である。テスト対象のシステムにおいて、挙動を変化させうる条件を洗いだし、組み合わせたテストケースを実施することで、複数の条件が組み合わさった場合においても欠陥なくシステムが動作することを確認する。
すべての組み合わせを網羅する方法もあるが、テストケースが膨張してしまうため、2つの因子の組み合わせのパターンを網羅することでおおむねバグを検出できるという傾向に基づいてテストケースを洗い出すペアワイズ法がある。
例題:ログイン画面のテストケース
あなたはあるWebアプリケーションのログイン画面のテストを担当している。
ログイン画面では以下の3つの入力条件がある。
項目 | 値のバリエーション |
---|---|
ユーザーID | 未入力 / 正常ID / 不正ID |
パスワード | 未入力 / 正常PW / 不正PW |
「ログイン状態を保持する」チェック | ON / OFF |
種類 | 定義内容 |
---|---|
正常ID | システムに登録されている正しい形式かつ登録済みのユーザーID(例:user123 )。``このIDは、パスワードが正しければログインに成功する。 |
不正ID | 以下のいずれかに該当するID:・存在しない(未登録)ユーザーID(例:`no_user`) ・形式エラー(例:空白を含む、記号のみなど)``・過去に削除されたIDなど無効なID |
単純な組み合わせだと、3×3×2 = 18通りとなる。
これくらいであれば問題なくこなせそうであるが、できるだけ少ないテストケースにするためにペアワイズ法を用いてテストケースの洗い出しを行う。
ペアワイズ法を用いたテストケースの作成
今回自動的にテストケースを作成するツールとしてGIHOZを利用した。
例題をもとに各パラメータを入力し、テストケースを生成する
以下のテストケースが生成される。
全部で9通りとなり、全組み合わせを網羅する場合と比較して半分のテストケースに削減できた。
1 | 正常ID | 不正ID | ON |
---|---|---|---|
2 | 正常ID | 未入力 | OFF |
3 | 正常ID | 正常ID | OFF |
4 | 不正ID | 正常ID | ON |
5 | 不正ID | 未入力 | OFF |
6 | 未入力 | 不正ID | OFF |
7 | 不正ID | 不正ID | OFF |
8 | 未入力 | 未入力 | ON |
9 | 未入力 | 正常ID | ON |
まとめ
ペアワイズ法を用いることで、効率的にバグを検出するためのテストケースを網羅することができる。
しかし、あくまで2因子の組み合わせによって発現するバグを検出できるだけであり、それ以上の組み合わせに基づくバグの検出は行えないため、テスト対象のシステムの特性に基づいて、適宜テストケースを調整する必要がある。ペアワイズ法を用いているから万全、というわけではないことに注意すべきである。
Discussion