ペアワイズ法テストケース生成が可能なOSS「PICT」
ペアワイズ法とは
ペアワイズ法(Pairwise Testing)は、ソフトウェアテストのテクニックの一つ
システムのテストケースを効果的に減らしながら、重要な組み合わせのバグを検出することを目的としている。
特に、複数の入力パラメータがある場合、すべての組み合わせをテストするのは現実的でないため、
ペアワイズ法を用いて、各パラメータのペア(2つのパラメータのすべての組み合わせ)をテストケースに含めるようにする。
オールペア法、ペアワイズテストとも呼ばれる
背景
ソフトウェアでは多くの入力パラメータが存在し、各パラメータが複数の値を取る場合、
全てのパラメータの組み合わせ(直積)をテストするためのテストケースは爆発的に増加する。
この問題に対処するために、ペアワイズ法が導入された。
複数の研究結果によれば、
ペアワイズ法のポイント
- 入力パラメータの組み合わせ数を削減: 全てのパラメータの組み合わせをテストするのではなく、2つのパラメータのすべての組み合わせを網羅するようにテストケースを作成する
- コスト削減: テストケースの数を大幅に減らし、テスト作業を効率化する
- バグ検出能力: 多くのバグは、2つのパラメータの相互作用によって発生するため、ペアワイズ法は多くの重要なバグを効果的に検出できる
例
例えば、あるシステムで3つのパラメータA、B、Cがあり、それぞれが次のような値を取るとする「
A: {1, 2}
B: {X, Y}
C: {True, False}
全ての組み合わせをテストする場合、2×2×2 = 8通りのテストケースが必要となるが、
ペアワイズ法を使用すると、次のような4つのテストケースだけで、2つのパラメータのすべてのペアの組み合わせを網羅できる
A=1, B=X, C=True
A=1, B=Y, C=False
A=2, B=X, C=False
A=2, B=Y, C=True
これにより、テストケースの数を削減しつつ、主要なパラメータ間の相互作用をカバーできる
ペアワイズ法の利点
- 効率的なテストケースの削減: テストケースの数を劇的に減らすことで、テスト時間やコストを削減できる
- バグ検出能力が高い: 多くの実際のバグは2つのパラメータの組み合わせに起因するため、ペアワイズ法は実際の問題の多くをカバーできる
ペアワイズ法の限界
- 3つ以上のパラメータ間の相互作用を検出できない: 2つのパラメータのペアに限定されるため、複数のパラメータが絡む複雑なバグを見逃す可能性がある
- すべてのバグを見つけるわけではない: ペアワイズ法では、全てのパラメータの組み合わせを網羅しないため、すべてのバグを検出するわけではない
pictを使ってテストケースを生成する
pictは、コマンドラインから使用できるペアワイズ法によるテストケース自動生成ツール
これを用いて、実際にテストケースを作成する例を示す
例:パラメータ1、パラメータ2、システム設定でテストを作成する
これらの組み合わせを全て網羅するには、3 x 5 x 2 = 30通りの組み合わせとなる
パラメータ1 | パラメータ2 | システム設定 |
---|---|---|
A | 1 | ON |
A | 1 | OFF |
A | 2 | ON |
A | 2 | OFF |
A | 3 | ON |
A | 3 | OFF |
A | 4 | ON |
A | 4 | OFF |
A | 5 | ON |
A | 5 | OFF |
B | 1 | ON |
B | 1 | OFF |
B | 2 | ON |
B | 2 | OFF |
B | 3 | ON |
B | 3 | OFF |
B | 4 | ON |
B | 4 | OFF |
B | 5 | ON |
B | 5 | OFF |
C | 1 | ON |
C | 1 | OFF |
C | 2 | ON |
C | 2 | OFF |
C | 3 | ON |
C | 3 | OFF |
C | 4 | ON |
C | 4 | OFF |
C | 5 | ON |
C | 5 | OFF |