ソフトウェアのデバッグ(ソフトウェアテスト)は以下に大別される
*ホワイトボックス(White Box)テスト:プログラムが正しく動作するかをプログラマ自身または他のプログラマによりプログラムの論理や記述が正しいかをチェックする。プログラム知識が必要で、その知識によりバグが含まれそうな部分を重点的にチェックすることが行われる。
しかし、網羅的ではないため見落としもあり、このテスト後、次のブラックボックステストは欠かせない。
ソフト開発者も少なくとも仕様どおりの動作するかはチェックしているが、場合によってはそのチェック数は膨大となることがあり、小さな直交表を用いて仕様チェックを行なうことは効率的である。
*ブラックボックス(Black Box)テスト:ユーザーのさまざまな入力(信号)に対し、意図通りの結果が得られるかどうかをチェックすることで、プログラムの知識は不要。ハードも含めた総合チェックが可能であるが、信号の種類や水準により組み合わせは膨大。
注)モニターテスト:ブラックボックスの1つだが、モニターが網羅的に偏りなくテストをしてくれることは期待できず、コントロールしないと偏った調査となり、時間、費用からも発見効率が悪い。
品質工学では、主にブラックボックステストの効率化を提案する。
テスト計画の良否の評価は網羅率で判断され、網羅率は一般に高い方が良い。
網羅率とは、全組み合わせ数に対する、テストを実施する組み合わせ数の比率
テストに含まれる組み合わせ数の数(1信号、2信号、3信号など)/全組み合わせ数 の比率
直交表の活用により高い網羅率が得られるが、信号数とその水準数が直交表とたまたま一致することは少なく、直交表をそのまま用いず、直交表の組み合わせや部分的に総当りを柔軟に割付けた方が網羅率が上がることが多い。
テストの良さの評価は網羅率とテスト数で行う
網羅率の計算方法 Coverage
バグはお客様の信号(使用条件や設定、入力など)の組み合わせによって発生する。
仮に、信号1:4水準、信号2:3水準、信号3:3水準、信号4:2水準 の場合
2信号の組み合わせ数は、以下の合計で 12+12+8+9+6+6=53通り
信号1と信号2の組み合わせ 4×3=12
信号1と信号3の組み合わせ 4×3=12
信号1と信号4の組み合わせ 4×2=8
信号2と信号3の組み合わせ 3×3=9
信号2と信号4の組み合わせ 3×2=6
信号3と信号4の組み合わせ 3×2=6
3信号の組み合わせ数は、以下の合計で 36+24+24+18=102通り
信号1と信号2と信号3の組み合わせ 4×3×3=36
信号1と信号2と信号4の組み合わせ 4×3×2=24
信号1と信号3と信号4の組み合わせ 4×3×2=24
信号2と信号3と信号4の組み合わせ 3×3×2=18
例えば、以下の4テストを行った場合、この中に含まれる組み合わせ数は
No. 信号1 信号2 信号3 信号4
1 1 1 1 1
2 2 2 2 2
3 3 3 3 1
4 4 1 3 2
2信号の組み合わせでは、23組が含まれ、2信号での網羅率は 24/53=45%
3信号の組み合わせでは、16組が含まれ、3信号での網羅率は 16/102=16%
テスト数を増やせば網羅率は上がるが、線形的ではないので安易に100%を目指すとテスト数が激増することになる
デバッグの目的とバグによる損失とテスト期間と費用のバランスが大切。
欠番直交表も参考に