3 ソフトウェアテスト見積りでの成功と失敗例
4.3 テスト網羅性尺度とテスト量見積り方法
4.3.3 合理的なテスト量の削減方法
(1)単一項目への入力項目値設定の工夫による合理的なテスト省略方法
連続する値、あるいは複数の値を、取り得る入力項目に対するテスト量の増加を回避するため
の工夫について述べます。
① 同値クラステスト
入力項目が連続する領域を持つ場合、入力領域を同値クラス(同様の出力結果が得られ
る部分集合)に分け、それぞれの同値クラスの代表値1つをテストします。
例えば、有効な値の範囲が整数5~8である場合、同値クラスは次のように3つに分けるこ とができます。
<同値クラス>
図4.5 同値クラスの例
このとき、テストケースは次のような3つのケースが考えられます。
<テストケース>
図4.6 同値クラスのテストケース例
5 8
無効同値クラス 有効同値クラス 無効同値クラス
5 8
無効同値クラス 有効同値クラス 無効同値クラス
ケース1 入力値= 2
ケース2 入力値= 6
ケース3 入力値= 10
79 ② 境界値テスト
入力項目が連続する領域を持つ場合、入力領域を同値クラスに分け、それぞれの同値
クラスの境界値をテストします。
例えば、有効な値の範囲が整数5~8である場合、同値クラスは次のように3つに分ける ことができます。
<同値クラス>
図4.7 同値クラスの例
このとき、テストケースは次のようなケースが考えられます。
<テストケース>
図4.8 境界値テストのテストケース例
5 8
無効同値クラス 有効同値クラス 無効同値クラス
5 8
無効同値クラス 有効同値クラス 無効同値クラス
ケース2 入力値= 5 ケース1
入力値= 2
ケース3 入力値= 8
ケース4 入力値= 10
③ ドメイン分析テスト
相互作用のある複数の入力項目を同値クラステスト/境界値テストの観点でテストし
ます。同値クラステスト、境界値テストの入力項目は1つですが、ドメイン分析テストは 複数の入力項目を考慮します。
例えば、入力項目A(整数値)、入力項目B(整数値)がある時、10≦A≦100かつ20
≦B≦50の領域ABが有効範囲である場合、それぞれの境界値の組み合せにより、以下 の12のケースが考えられます。
<テストケース>
図4.9 ドメイン分析テストのテストケース例 A
B 100
10
20 50
1 2
3 4
5 6
7 8
9 10
11 12
81
(2)組み合せ網羅に関する合理的なテスト省略方法
複数の項目や機能の組み合せの網羅により、テスト量が爆発的に増加することを回避し、かつ、
数学的に一律の深さで組み合せを抽出する工夫について述べます。
① ペア構成テスト(オールペア法)
複数の入力項目があるとき、任意の 2 項目間の入力値の全組み合せを網羅するテスト を行います。ただし、テストケースの割り付けに際しては、可能な限り同じ組み合せが 現れないようにするため、後述の直交表よりもケース数は少なくなります。
また、禁則処理を行うことが可能ですが、任意の 3 項目間の組み合せ網羅率は直交表 より低くなります。
下表は 4 つの入力項目がそれぞれ 3 つの値を取り得る場合のテストケースです。以下 の 9 つのケースが考えられます。
表4.2 オールペア法のテストケース例
A B C D
ケース1 1 1 1 1 ケース2 1 2 2 2 ケース3 1 3 3 3 ケース4 2 1 2 3 ケース5 2 2 3 1 ケース6 2 3 1 2 ケース7 3 1 3 2 ケース8 3 2 1 3 ケース9 3 3 2 1
② ペア構成テスト(直交表)
オールペア法と同じく、複数の入力項目があるとき、任意の 2 項目間の入力値の全 組み合せを網羅するテストを行います。直交表の性質上、任意の 2 項目について同じ 値のペアが同一回数現れるため、オールペア法に比べてケース数は多くなります。
また、禁則処理を行うことはできませんが、任意の 3 項目間の組み合せについても ある程度、網羅されるのが特徴です。
下表は 7 つの入力項目がそれぞれ 2 つの値を取り得る場合のテストケースです。直 交表では 8 つのケースが考えられます。
表4.3 直交表のテストケース例
A B C D E F G ケース1 1 1 1 1 1 1 1 ケース2 1 1 1 2 2 2 2 ケース3 1 2 2 1 1 2 2 ケース4 1 2 2 2 2 1 1
ケース5 2 1 2 1 2 1 2 ケース6 2 1 2 2 1 2 1 ケース7 2 2 1 1 2 2 1 ケース8 2 2 1 2 1 1 2
③ ホワイトボックス分析併用テスト
ブラックボックス的観点から考察すると多数のバリエーションのテストが必要とな
るテスト項目(たとえば、不連続なコード値の妥当性チェックなど)について、ホワ イトボックス的分析(たとえば、コードのチェックはテーブル化されているなど)を 併用することによりケース数を削減します。