TEF/テスト技法
技法名 AllPair法 †
技法名(英語) pairwise testing もしくは All-pairs testing †
説明 †
ブラックボックステスト技法の1つです。本技法の適用目的は、直交表と同様で、デシジョンテーブル(原因結果グラフ、CFD法を含む)と異なり、入力条件の組合せに仕様上は論理関係が特にないようなケースで全体を網羅的に確認することです。
この技法は、まず、ソフトウェアに与えられる入力の種類を因子としてリストアップします(例:用紙サイズ、用紙方向)。次に各々の因子に対してその選択肢を同値分割・境界値分析などを使用して決定します(例:用紙サイズという因子に対する水準は、A3、A4、B4、葉書など)。そして、選定した因子・水準をAllPair法のツール(例えばPICT)に与えてテストマトリクスを作成します。
直交表と違うところは、直交表が2因子間の水準組合せが「同数回」出現するのに対して、AllPair法では「同数回」という条件を外すことでよりテストケース数を削減できる点にあります。
使用例 †
電車の切符を発券するソフトウェアを考えてみましょう。
乗車駅、下車駅、大人・子供、枚数、表示言語などが入力あたります。特急指定券の発券システムを考えるとさらに、座席の位置、禁煙席の希望、席のグレード、往復券とするか、支払方法といった因子が考えられます。それぞれの因子に対して水準を決定します。
例えば、因子・水準として、
因子 | 水準 |
乗車駅 | A、B |
下車駅 | 近県、遠方 |
種別 | 大人、子供 |
枚数 | 1枚、3枚 |
表示言語 | 日本語、英語 |
座席の位置 | 窓際、通路側 |
禁煙席の希望 | 禁煙、喫煙 |
席のグレード | 普通、グリーン |
往復券 | 片道、往復 |
支払方法 | 現金、カード |
分割払い | 一括、分割 |
を選んだとします。
このとき、現金で分割払いの組合せはない(=制約)ものとします。
まず、上記をPICT形式で書き換えます。
乗車駅:A,B
下車駅:近県,遠方
種別:大人,子供
枚数:1枚,3枚
表示言語:日本語,英語
座席の位置:窓際,通路側
禁煙席の希望:禁煙,喫煙
席のグレード:普通,グリーン
往復券:片道,往復
支払方法:現金,カード
カード払い方法:一括,分割
IF [支払方法] = "現金" THEN [カード払い方法] <> "分割";
そして、PICTでマトリクスを生成すると、
No. | 乗車駅 | 下車駅 | 種別 | 枚数 | 表示言語 | 座席の位置 | 禁煙席の希望 | 席のグレード | 往復券 | 支払方法 | カード払い方法 |
1 | B | 遠方 | 子供 | 1枚 | 英語 | 窓際 | 喫煙 | 普通 | 片道 | カード | 一括 |
2 | A | 近県 | 大人 | 3枚 | 日本語 | 通路側 | 禁煙 | グリーン | 往復 | 現金 | 一括 |
3 | A | 遠方 | 子供 | 1枚 | 日本語 | 窓際 | 禁煙 | 普通 | 往復 | 現金 | 一括 |
4 | B | 近県 | 大人 | 1枚 | 英語 | 通路側 | 喫煙 | グリーン | 往復 | カード | 分割 |
5 | B | 近県 | 子供 | 3枚 | 英語 | 窓際 | 禁煙 | グリーン | 片道 | 現金 | 一括 |
6 | A | 遠方 | 大人 | 3枚 | 英語 | 通路側 | 禁煙 | 普通 | 片道 | カード | 分割 |
7 | A | 近県 | 子供 | 3枚 | 日本語 | 窓際 | 喫煙 | 普通 | 片道 | カード | 分割 |
8 | B | 遠方 | 子供 | 1枚 | 日本語 | 通路側 | 禁煙 | グリーン | 往復 | カード | 分割 |
9 | A | 遠方 | 大人 | 3枚 | 英語 | 窓際 | 喫煙 | グリーン | 往復 | 現金 | 一括 |
となります。
また、同様のことをHAYST法を用いると、
No. | 乗車駅 | 下車駅 | 種別 | 枚数 | 表示言語 | 座席の位置 | 禁煙席の希望 | 席のグレード | 往復券 | 支払方法 | 分割払い |
1 | A | 近県 | 大人 | 1枚 | 日本語 | 窓際 | 禁煙 | 普通 | 片道 | 現金 | 一括 |
2 | A | 近県 | 大人 | 1枚 | 英語 | 通路側 | 禁煙 | グリーン | 往復 | 現金 | 一括 |
3 | A | 近県 | 大人 | 3枚 | 日本語 | 通路側 | 喫煙 | 普通 | 往復 | カード | 一括 |
4 | A | 近県 | 大人 | 3枚 | 英語 | 窓際 | 喫煙 | グリーン | 片道 | カード | 分割 |
5 | A | 遠方 | 子供 | 3枚 | 英語 | 窓際 | 禁煙 | グリーン | 往復 | 現金 | 一括 |
6 | A | 遠方 | 子供 | 3枚 | 日本語 | 通路側 | 禁煙 | 普通 | 片道 | 現金 | 一括 |
7 | A | 遠方 | 子供 | 1枚 | 英語 | 通路側 | 喫煙 | グリーン | 片道 | カード | 一括 |
8 | A | 遠方 | 子供 | 1枚 | 日本語 | 窓際 | 喫煙 | 普通 | 往復 | カード | 分割 |
9 | B | 近県 | 子供 | 1枚 | 英語 | 通路側 | 喫煙 | 普通 | 往復 | 現金 | 一括 |
10 | B | 近県 | 子供 | 1枚 | 日本語 | 窓際 | 喫煙 | グリーン | 片道 | 現金 | 一括 |
11 | B | 近県 | 子供 | 3枚 | 英語 | 窓際 | 禁煙 | 普通 | 片道 | カード | 一括 |
12 | B | 近県 | 子供 | 3枚 | 日本語 | 通路側 | 禁煙 | グリーン | 往復 | カード | 分割 |
13 | B | 遠方 | 大人 | 3枚 | 日本語 | 通路側 | 喫煙 | グリーン | 片道 | 現金 | 一括 |
14 | B | 遠方 | 大人 | 3枚 | 英語 | 窓際 | 喫煙 | 普通 | 往復 | 現金 | 一括 |
15 | B | 遠方 | 大人 | 1枚 | 日本語 | 窓際 | 禁煙 | グリーン | 往復 | カード | 一括 |
16 | B | 遠方 | 大人 | 1枚 | 英語 | 通路側 | 禁煙 | 普通 | 片道 | カード | 分割 |
となり、7件テストケースが増えます。
ただし、例えば「乗車駅×枚数」の水準の組合せが出現した回数をカウントすると、AllPair法で生成した方は、
乗車駅 | 枚数 | 出現回数 |
A | 1枚 | 1回 |
A | 3枚 | 4回 |
B | 1枚 | 3回 |
B | 3枚 | 1回 |
であり、HAYST法で生成した方は、
乗車駅 | 枚数 | 出現回数 |
A | 1枚 | 4回 |
A | 3枚 | 4回 |
B | 1枚 | 4回 |
B | 3枚 | 4回 |
とバランスよく組み合わされています。
どちらを選択すべきかは、テスト対象ソフトウェアによります。
補足 †
今回の例では、網羅率は、
テスト技法 | 2因子間網羅率 | 3因子間網羅率 |
AllPairs法 | 100% | 83.33% |
HAYST法 | 100% | 95.85% |
でした。
参考文献 †
書籍: ソフトウェアテストHAYST法入門
total 1220 today 3 yesterday 0