第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水準にして、ペアワイズのツールにかけて組み合わせ表をつくります。
復習は以上とし、今回のnoteのテーマに移ります。
≡ ペアワイズテストのカバレッジ、検出できる欠陥の種類
■ ペアワイズテストのカバレッジ
JSTQBのALTAシラバスより該当箇所の全文を引用します。
ものすごく単純で、わかってしまえば何てことないのですが、分かるまで「何をいっているの?」ってなります。私もなりました。
下の図は、「ASTERセミナー標準テキスト」の128ページにあるものですが、この図を納得して他人に説明できるようになるまで眺めると良いです。
私は、ずっと今回のnoteのキャッチイメージの図表で説明してきました。以下に再掲します。
左の表はペアカバレッジが取れている組合せ表です。右の方は全組合せです。
左の表で、任意の2因子を取り出したときの水準の組合せが全て出ていること(線が引かれていること)を確認してください。線の色と行見出しの色を合わせています。
■ ペアワイズテストの検出できる欠陥の種類
こちらも短いので、JSTQBのALTAシラバスより該当箇所の全文を引用します。ISTQBの委員はペアワイズテストにあまり興味がないのかもしれません。
いや、まぁ、「そこを網羅したテストするように組合せ表をつくっている」のですから、としか言いようがない説明です。
例えば、「因子、水準に入力値だけでなく状態変数とその値を取れば状態遷移の欠陥を見つけることができる」「シナリオテストの条件の組み合わせに応用することができる」といったヒントを書いておいてくれるといいのになあと思います。
≡ JSTQB ALTA試験対策
いつものことですが、まずは、「学習の目的」を確認します。
「K4」なので「理解」して「適用」できるだけではなく「分析」まで求められる重要な項目ということです。試験問題には、ペアワイズテストをつくることができるかどうか、あるいは、抜けている組合せを見つけるような問題が出ると思います。
答えは次回に書きます。
≡ おわりに
今回は、「ペアワイズテストのカバレッジ、検出できる欠陥の種類」がテーマでした。
覚えることが少ししかありませんので、ALTAの試験に出たらラッキーですね。
ペアワイズテストは人間が組合せを考えるわけではなくツールが網羅基準にしたがって機械的に多くの組合せを持った表を生成します。
この、人間の恣意性が入らないところがテストをしていなかった組合せにつながり、思わぬバグを見つけるのだと思います。
以下は私が組み合わせテストに取り組んできた経緯の記事です。一般の人に向けた記事なので分かりやすいかなと思います。2回目はまだ公開されていません。
次回は、「3.2.7 ユースケーステスト」の前編として、「ユースケーステストの定義」について書きます。
この記事が気に入ったらサポートをしてみませんか?