LoginSignup
90
74

More than 5 years have passed since last update.

組み合わせテストの用語「2因子間網羅」「直交表」「All-Pairs法」

Last updated at Posted at 2019-01-10

本稿では、組み合わせテストの用語について簡潔に解説する。2因子間網羅、直交表、All-Pairs法について触れる。

組み合わせテスト

  • 組み合わせテスト(combinatorial testing):複数の条件を組み合わせてテストする手法

全網羅組み合わせテスト

  • 全網羅組み合わせテスト: 考えられるすべての条件の組み合わせをテストする手法
  • 当然、全網羅組み合わせテストのほうが欠陥を検出できる可能性は高い。
  • しかし、組み合わせ数が膨大になると、全網羅組み合わせテストは現実的に不可能になる。

たった3つの条件がそれぞれ3パターンあるだけで27通りのテストが必要。

組み合わせ 全網羅組み合わせテストの数
2 * 2 4
3 * 3 * 3 27
4 * 4 * 4 * 4 256

2因子間網羅

  • 因子(parameters): 変数名
    • 例: "OS"
    • 例: "PHPのバージョン"
    • 例: "データベース"
  • 水準(values): 因子がとりうる値
    • 例: Windows, Linux, macOS
    • 例: PHP7.1, PHP7.2, PHP7.3
    • 例: MySQL, PostgreSQL, SQLite
  • 2因子間網羅: 2因子間の組み合わせを網羅した状態
  • 2因子間網羅を満たす組み合わせを作成する手法
    • 直交表(orthogonal array)
    • All-Pairs法(Pairwise法)

全網羅とAll-Paris法による2因子間網羅の例

全網羅とAll-Paris法による2因子間網羅の例

  • 2因子間網羅では、「OSとPHP」「PHPとデータベース」「OSとデータベース」の組み合わせが全通り存在する。
  • 2因子間の網羅率が100%であれば、妥当なテストと言える
    • 経験的根拠「多くの欠陥は2因子間でみつかる」1
    • 1因子で見つかる欠陥: 29%〜68%
    • 2因子で見つかる欠陥: 70%〜97%
    • 3因子で見つかる欠陥: 89%〜99%
    • 1因子のテストは簡単だが、効果が薄い。
    • 3因子は2因子とそんなに変わらない割に、テストが大変。
    • だから、2因子間網羅で大抵は妥当。

Fig. Failure triggering fault interactions, cumulative distribution.

2-Figure1-1

  • 2因子間網羅を採用するか、3因子間網羅以上を採用するかは、テスト工数と欠陥見逃しリスクのトレードオフになる。
    • テスト対象の重要度やバグりやすさによって、3因子間網羅、4因子間網羅、N因子間網羅、全網羅…とリスク回避に重きを置く選択もあり。
    • 例: 新機能はバグりやすいから、3因子間網羅にする。
    • 例: 返品返金処理は大クレームに繋がりやすいから、全網羅にする。
    • ちなみに、3因子間網羅のテストは3-wise testingと言われる。

All-Pairs法と直交表の違い

  • All-Pairs法と直交表: どちらも2因子間網羅なのは同じ。
  • All-Pairs法: 2因子間が重複しないことを重視
    • したがって、組み合わせ数が少なくなる。
    • 水準の出現回数が均一にならないことがある。
      • 例: MySQLは4回しかテストされないが、PostgreSQLは5回ずつテストされる
  • 直交表: 水準の出現回数が均等になること重視
    • したがって、重複したペアがあることがある。
    • 組み合わせ数が多くなる。
    • 直交表は科学実験の手法。実験ではデータが偏らないよう水準を均等に割り付けるのは大事な特性。
      • 例: 投薬Aの実験はデータが10回あるのに、投薬Bは7回しかないと実験データとしては良くない。

参考文献

90
74
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90
74