コンテンツにスキップ

ペアワイズ法テストケース生成が可能な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、システム設定でテストを作成する

パラメータ1: A, B, C
パラメータ2: 1, 2, 3, 4, 5
システム設定: ON, OFF

これらの組み合わせを全て網羅するには、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

Reference