見出し画像

第285回: 「ALTAのテキストをつくろう」40 (ペアワイズテスト/後編)

◀前の記事へ 次の記事へ▶︎


≡ はじめに

前回は、「3. テスト技法」の「3.2 ブラックボックステスト技法」の「3.2.6 ペアワイズテスト」の中編として、「ペアワイズテストの適用、制限/注意事項」について書きました。

前回の復習は以下で模擬試験問題の確認を通して行います。
今回はJSTQBのALTAシラバスの「3.2.6 ペアワイズテスト」の後編として、「ペアワイズテストのカバレッジ、検出できる欠陥の種類」について書きます。



≡ 前回の復習

以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。


𝕏によるアンケート結果

投票の結果、選択肢2の「水準を同値分割して減らしてから組み合わせる」が65.6%と最も多く、正解も2です。

易しい問題すぎたでしょうか。でも、実務を観察していると、普通の人は、「この因子は絶対関係ないから」っていいながら、因子をバンバン落としています。
どの因子が関係するか分からないから組み合わせテストをする】のですが、、、。😅

実はこれ、最悪手なんです。なぜかといえば、1水準のみを残した因子にしたら組合せテストケース数は1件も増えることがないけど、因子を消してしまうと、その因子との組合せ網羅率は0になってしまうという天と地ほどの違いがあるからです。

「(そりゃそうだけど)1水準じゃバグがでない」と思われたかもしれません。いえいえ、そんなことはありません。
たとえば、プリンタードライバーの設定で「拡大縮小率」という因子(パラメータ)が「100%, 90%, 110%, 70%, 130%, 50%, 150%」と7つの水準(値)を持っていたとします。

このときに、「「拡大縮小率」なんて前のバージョンにもあったし、これまでも組み合わせてバグったことなんて1度もないから組み合わせテストから省いてしまおう」と考えてしまう人が多いです。(もちろん「拡大縮小率」のところは自分のテスト対象で考えてください)

そうはせずに、「拡大縮小率」の因子を消さず、水準を「90%」の1水準にして、ペアワイズのツールにかけて組み合わせ表をつくります。

これは、「拡大縮小率」をデフォルトの「100%」にしてしまうと、プログラムの内部で「拡大縮小率」のモジュールが一切実行されないからです。
【設定水準の別に関わらず、その因子が動くだけで他の因子に影響を与えること】が多々あります。そして、1水準に減らしてもそのようなケースの組合せバグが見つかります。

※ ここで、組合せテストケース数は1件も増えませんが、90%に設定する手間は増えます(自動化していたら手間は気にならないかもしれません)。
また、水準について50%などの極端な値としてしまうと、「極端に縮小されてしまったため別の因子の効果(例えば画質の「高精細」の設定が効いているか)をチェックしにくくなる」ことに注意が必要です。

※ そこで、例でも90%を選択しています。

復習は以上とし、今回のnoteのテーマに移ります。



≡ ペアワイズテストのカバレッジ、検出できる欠陥の種類


■ ペアワイズテストのカバレッジ

JSTQBのALTAシラバスより該当箇所の全文を引用します。

ペアワイズカバレッジ100%とするためには、任意の2つのパラメーターについて、各値のすべてのペアを1つ以上の組み合わせに含める必要がある。

JSTQBのALTAシラバス43ページより

ものすごく単純で、わかってしまえば何てことないのですが、分かるまで「何をいっているの?」ってなります。私もなりました。

下の図は、「ASTERセミナー標準テキスト」の128ページにあるものですが、この図を納得して他人に説明できるようになるまで眺めると良いです。

ペアカバレッジ100%とは

私は、ずっと今回のnoteのキャッチイメージの図表で説明してきました。以下に再掲します。

ペアカバレッジと全組合せ

左の表はペアカバレッジが取れている組合せ表です。右の方は全組合せです。
左の表で、任意の2因子を取り出したときの水準の組合せが全て出ていること(線が引かれていること)を確認してください。線の色と行見出しの色を合わせています。

なお、これは直交表を使ってペアワイズをした時だけの話になるのですが、全組合せのなかで直交表に現れない組合せ(右の表で×が付いている組合せ)は、OFF-OFF-ON, OFF-ON-OFF, ON-OFF-OFF, ON-ON-ON, の4つですが、はじめの3つは他の水準がOFFですので単機能テストと同じになり、単機能テストはペアワイズテストの前にしておきますから、省いても問題ないということになります。

※ これが、「直交表を使った方が3つの組合せまでバグが見つかる」という実感の正体です。
重要なテストの場合には、ペアワイズのツールを使うときには3パラメータまでの組合せを作ってみる方が良いです。




■ ペアワイズテストの検出できる欠陥の種類

こちらも短いので、JSTQBのALTAシラバスより該当箇所の全文を引用します。ISTQBの委員はペアワイズテストにあまり興味がないのかもしれません。

このテスト技法で見つかる最も一般的な欠陥のタイプは、2つのパラメーターの値の組み合わせに関連する欠陥である。

JSTQBのALTAシラバス43ページより

いや、まぁ、「そこを網羅したテストするように組合せ表をつくっている」のですから、としか言いようがない説明です。

例えば、「因子、水準に入力値だけでなく状態変数とその値を取れば状態遷移の欠陥を見つけることができる」「シナリオテストの条件の組み合わせに応用することができる」といったヒントを書いておいてくれるといいのになあと思います。



≡ JSTQB ALTA試験対策

いつものことですが、まずは、「学習の目的」を確認します。

TA-3.2.6 (K4)ペアワイズテストを適用して、特定の仕様アイテムを分析しテストケースを設計する。

ALTAシラバス29ページ

「K4」なので「理解」して「適用」できるだけではなく「分析」まで求められる重要な項目ということです。試験問題には、ペアワイズテストをつくることができるかどうか、あるいは、抜けている組合せを見つけるような問題が出ると思います。

《問題》
 ペアワイズテストで見つかる最も一般的な欠陥のタイプはどれですか。

1. 2つのパラメーターの値の組み合わせに関連する欠陥
2. 特定の条件の組み合わせに基づく論理的な処理が正しく行われず、想定外の結果
3. 提示された条件の誤った処理
4. 正しくないイベントタイプまたは値

答えは次回に書きます。



≡  おわりに

今回は、「ペアワイズテストのカバレッジ、検出できる欠陥の種類」がテーマでした。

覚えることが少ししかありませんので、ALTAの試験に出たらラッキーですね。

ペアワイズテストは人間が組合せを考えるわけではなくツールが網羅基準にしたがって機械的に多くの組合せを持った表を生成します。
この、人間の恣意性が入らないところがテストをしていなかった組合せにつながり、思わぬバグを見つけるのだと思います。

以下は私が組み合わせテストに取り組んできた経緯の記事です。一般の人に向けた記事なので分かりやすいかなと思います。2回目はまだ公開されていません。

次回は、「3.2.7 ユースケーステスト」の前編として、「ユースケーステストの定義」について書きます。


この記事が気に入ったらサポートをしてみませんか?