テスト技法入門~ペアワイズ法~
はじめに
はじめまして!
Rehab for JAPAN QAエンジニアの山田です。
今後、QAエンジニアとして活動していく中での課題解決に向けた取り組やテスト技法など、
様々なことをブログを通して発信できればと思っています。
今回はテスト技法のご紹介として、組合せテスト技法の1つである
「ペアワイズ法」(オールペア法とも呼ばれている)についてご紹介させていただきます。
ターゲット
本記事のターゲットは以下です。
-
QAエンジニア歴1~2年目の方
-
テストケース数が膨大になってしまい、困っている方
-
テスト技法について学びたい方
ペアワイズ法とは
ペアワイズ法(Pairwise Testing)は、ソフトウェアテストにおける組み合わせテスト技法の一つです。複数の要因が存在する場合に、それらの要因のうち任意の2つの組み合わせを網羅するテストです。
ペアワイズ法を理解するには、まず「因子」と「水準」という言葉の意味を理解する必要があります。
- 因子とは「テストすべきテスト条件」のこと
- 水準とは「その選択値」のこと
実際にイメージをしてもらうために、Webシステムのログイン処理テストを例として、
下記の表に「因子」と「水準」をまとめてみました。
因子 | 水準 |
---|---|
OS | Windows |
Mac | |
ブラウザ | Google Chrome |
Safari | |
ステータス | 登録済み |
退会済み | |
権限 | 管理者 |
編集者 | |
閲覧者 |
ペアワイズ法を用いる際は、このように「因子」と「水準」を洗い出すことから始めます。
因子と水準は無数に存在するため、仕様を理解して重要な要素のみをピックアップすることが大切です。
さて、この「因子」と「水準」をそのまま組み合わせてログイン処理のテストをする場合、ケース数はどうなるでしょうか?
因子における水準の数をそのまま掛け算すると・・・
2(OS)×2(ブラウザ)×2(ステータス)×3(権限)=24ケース
全部で24ケースとなり、膨大なケース数になってしまいました。
品質を守るためには網羅率を上げることは重要である一方で、このように考慮する条件が増えるとテストするパターンの数は掛け算で増加していくので、全てのパターンをテストすることは現実的ではありません。
ここで活躍するのが、今回ご紹介する「ペアワイズ法」です。
ペアワイズ法は「欠陥は、2つの因子の相互作用で発生する可能性が高い」というエビデンスにもとづいて、
テストするパターンを合理的に削減する手法の一つです。
実際にペアワイズ法を使用し、
先ほど例として取り上げた因子と水準を、2つの因子の組み合わせにすることで、
どれだけケース数が削減できるのか見てみましょう。
OS | ブラウザ | ステータス | 権限 |
---|---|---|---|
Mac | Safari | 退会済み | 編集者 |
Mac | Safari | 登録済み | 管理者 |
Mac | GoogleChrome | 登録済み | 閲覧者 |
Windows | GoogleChrome | 退会済み | 管理者 |
Windows | GoogleChrome | 登録済み | 編集者 |
Windows | Safari | 登録済み | 閲覧者 |
上記のように、24ケース→6ケースまでケース数を削減することができました。
3つ以上の相互作用が存在する場合、ペアワイズテストでシステム故障を検知できないことがあるというリスクは残りますが、
合理的にケース数を削減する手法としては、非常に有効です。
まとめ
今回はわかりやすいよう、因子と水準を全て含む形でケース化していますが、
実際は「Windows×Safariは必要ないよね」だったり、「仕様上、これとこれの組み合わせはあり得ないよね」といった形で、
スコープや仕様に応じて、不要な部分やあり得ない組み合わせを省くことで、さらにケース数は削減されます。
また、因子や水準の洗い出しは仕様を読み込んで条件を整理することに繋がり、仕様理解度が上がります。
洗い出した情報をまとめておくことで、情報資産として様々な場面で活躍します。
ペアワイズ法はとても単純で理解しやすいなテスト技法ですが、QCDに対する効果は大きいです。
テストケース数が膨大になってしまい悩んでいる方は、ペアワイズ法を利用してみてはいかがでしょうか!
Discussion