この記事は筆者の学習をまとめたものです。
ソフトウェアテストテストを学ぼう
- 開発者も積極的にテストをしよう
- テスト専門家とコミュニケーションできるようになろう
という考えでソフトウェアテスト技法について学んでいきます。
- 同値分割法と境界値分析
- デシジョンテーブル
- 状態遷移テスト
- 組み合わせテスト(本記事)
テスト技法:組み合わせテスト
組み合わせテストとは、複数の条件の組み合わせによる欠陥を特定するために用いられるテスト技法です。複数の条件に対して全ての組み合わせ(全網羅)についてテストを行おうとすると、テストの数が膨大になる場合があります。その時に一定のルールに従って作成した組み合わせでテストを行い、発見される欠陥数に大きな影響を与えることなく、テストにかかる時間を削減することを組み合わせテストの目的としています。
用語「因子」と「水準」
組み合わせテストにおける用語「因子」と「水準」について説明します。まず「因子」とは、テスト対象のシステムが持つパラメータのことです。例えばラーメンの因子には麺、具、スープなどがあります。次の「水準」とは、因子が取り得る具体的な値のことです。例えばラーメンの因子「麺」には細麺や太麺などの水準があります。組み合わせテストでは、テスト対象が持つパラメータの「因子」と、その因子の具体値である「水準」に注目します。
組み合わせテストの技法「ペアワイズ法」
組み合わせテストの技法「ペアワイズ法」について説明します。ペアワイズ法とは、2つの因子の組み合わせを網羅する組み合わせを作成する手法です。なぜ「2つの因子の組み合わせなのか」というと、欠陥は1~2因子の組み合わせに多く存在することが知られているからです。欠陥が多く予想される2因子の組み合わせを網羅することで、全網羅よりもテスト数を削減することが狙いです。削減されたテストにより欠陥を発見することは出来ないので、「テストの数」が減る代わりに**「欠陥を見逃してしまうリスク」が増える**というトレードオフの関係になります。
(ペアワイズ法はオールペア法と呼ばれることもあります。基本的に同じ技法を指しているようです。)
組み合わせ生成ツール「PictMaster」
PictMasterは組み合わせ生成をサポートするExcelベースのフリーソフトです。ツールに因子と水準を入力することで組み合わせを生成することができます。
ツールのダウンロード先は下記PictMasterのサイトを参照してください。インストールの方法は同梱されるユーザーズマニュアルに記載されています。
2023年8月にダウンロード先が変更になったようです。以前のosdn.net
からはダウンロードできなくなったようなので、下記PictMasterのサイトを参照して新しいダウンロード先から取得してください。
実例:ラーメンの組み合わせ
PictMasterを使ってラーメンの「麺の硬さ・スープ・具」の組み合わせを作成してみます。まずは対象の因子と水準を整理した表「因子水準表」を作ります。
因子水準表
因子名 | | | 水準1 | 水準2 | 水準3 | 水準4 |
---|---|---|---|---|---|
麺の硬さ | | | バリカタ | 硬め | 普通 | 柔め |
スープ | | | 味噌 | 塩 | 醤油 | トンコツ |
具 | | | 味玉 | チャーシュー | 海苔 | ねぎ |
PictMasterで組み合わせの生成
ラーメンの組み合わせには上記のような因子と水準があるとします。全網羅でテストしようとすると4 × 4 × 4
で64の組み合わせが必要になります。全網羅にすると多くの組み合わせが必要なので、組み合わせテストの技法を使って組み合わせ削減していきます。
PictMasterの「パラメータ」の列に因子を、「値の並び」の列には因子に対応する水準を記入します。そして実行して生成されたのが次の組み合わせです。
生成された組み合わせ
麺の硬さ | スープ | 具 |
---|---|---|
普通 | 塩 | 味玉 |
柔め | トンコツ | 海苔 |
柔め | 味噌 | ねぎ |
バリカタ | 塩 | 海苔 |
柔め | 醤油 | 味玉 |
普通 | 醤油 | チャーシュー |
バリカタ | 醤油 | ねぎ |
硬め | 塩 | チャーシュー |
普通 | トンコツ | ねぎ |
柔め | 塩 | チャーシュー |
硬め | 塩 | ねぎ |
硬め | 醤油 | 海苔 |
普通 | 味噌 | 海苔 |
硬め | 味噌 | 味玉 |
バリカタ | 味噌 | チャーシュー |
バリカタ | トンコツ | 味玉 |
硬め | トンコツ | チャーシュー |
組み合わせの数に注目してみましょう。全部で17の組み合わせが生成されました。全網羅だと64ですから、だいたい1/4ほどになっています。
次に「麺の硬さ」が普通
の組み合わせに注目してみましょう。「スープ」は塩,醤油,トンコツ,味噌
、「具」は味玉,チャーシュー,ねぎ,海苔
の組み合わせが存在し、2因子の間で網羅されていることがわかります。
まとめ
ソフトウェアテスト技法の「組み合わせテスト」について学習し、それを記事としてまとめました。
- 組み合わせテストとは、複数の条件の組み合わせによる欠陥を特定するために用いられるテスト技法
- 欠陥は1~2因子の組み合わせに多く存在するので、ペアワイズ法で2因子間を網羅する組み合わせを生成する
- 「テストの数」と「欠陥を見逃してしまうリスク」がトレードオフの関係になる
- Excelベースのツール「PictMaster」を使って組み合わせを生成することができる
参考