Quantcast
Channel: 組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題
Viewing all articles
Browse latest Browse all 58

組み合わせテストは無則だけをテストする? 有則・無則・禁則の考え方

$
0
0

有則・無則・禁則とは

組み合わせテストに関係した用語に「有則」「無則」「禁則」があります。禁則を除き、これらの言葉はもとからあるのではなく造語であり、直交表を用いる組み合わせテストで用いられています。ちなみに禁則はペアワイズ法では英語で Constraint といい、日本語では「制約」と呼びます。

禁則という言葉が登場したのはJasst05東京での「直交表を活用したソフトウェアテストの効率化 -HAYST法の活用-」が最初だと思われます。

さらに有則と無則という言葉が登場したのは、Jasst07東京の「ソフトウェアテストの展望 SW機能テストから、システム挙動の評価へ」が最初のようです

禁則とは、パラメータ(要因)を組み合わせることのできる組み合わせが制限されているという意味です。例えばエアコンの運転モードと設定の組み合わせでは、送風モードのときは温度設定は行えないので、これらの組み合わせは組み合わせることができず、禁則の関係にあります。

それでは有則はどういう意味でしょうか。組み合わせによって出力に影響を及ぼす組み合わせを有則の組み合わせといいます。例えばデシジョンテーブルでは条件の組み合わせ(ルール)に応じて出力であるアクションが様々に変化します。デシジョンテーブルは有則のテストであるということができます。

その他にデシジョンテーブルほどルールのパターンは多くなくても、組み合わせによって出力が変化するといったことはよくあることです。こうした組み合わせも有則の組み合わせといえます。

出力に影響を及ぼさないと考えられる組み合わせを無則の組み合わせといいます。どのように組み合わせても出力は常に同じであると考えられる関係を無則といいます。

組み合わせテストは無則だけをテストする?

直交表関係の組み合わせテストを論じている記事では、組み合わせテストは無則の関係をテストするとしています。記事を読んでみると、どうも組み合わせテストでは有則の関係にある組み合わせは考慮されていないようです。

前出の「ソフトウェアテストの展望…」では、「無則のテストは、悪影響が無いことをテストする 実験計画法(直交表)、All-Pair法は、無則の一部をテストする技法」と書かれています。どのような組み合わせであっても出力が変化しないと考えられる組み合わせだけをテストすると読めます。

この記事以外でも、組み合わせテストでは無則だけをテストする、としている記事がほとんどです。しかし、本当にそうでしょうか。実際のテストの現場で、組み合わせテストはどのような組み合わせでも出力が影響を受けない、変化しない組み合わせだけを扱っているでしょうか?

組み合わせテストでは有則の組み合わせもテストが必要

機能の組み合わせを考えた場合、機能Aと機能B、機能Cがあり、機能Aは機能Bと機能Cを呼び出してその出力結果に応じて異なる出力を行う、といった処理はよくあることです。そして各機能にはデータ設定があり、その設定内容に応じて異なる動作となる、といったこともよくある処理です。

このような機能の数が多くなると、結合テストあるいは総合テストではそれぞれのデータ設定の異なる内容の組み合わせを考慮するとテストケースが多くなりすぎる場合があります。そうした場合は組み合わせテストが最も最適なテスト技法だといえます。

組み合わせが多すぎるため、デシジョンテーブルは現実的ではありません。2つまでの要因の組み合わせで発生する障害を効率よく検出することができる組み合わせテストこそ、こうしたテストにふさわしいものです。

このテストではデータ設定内容に応じて動作が異なるので有則のテストです。したがって、有則のテストも組み合わせテストの対象になるのです。

もちろん、組み合わせによって出力が影響を受けないと考えられる無則のテストも組み合わせテストの対象です。またテストによっては無則の組み合わせと有則の組み合わせを組み合わせて実施する場合もよくあります。

 

組み合わせによって異なる結果となる場合、組み合わせに対応する結果を自動的にテストケースに設定できるように、PictMasterでは結果表という機能が用意されています。組み合わせテストにおいて、こうした機能の必要性は海外の論文などでは論じられています。


なお、2パラメータ間の組み合わせだけでは組み合わせに応じて異なる結果のバリエーションのすべてを網羅することができない場合は、テストケースは多くなりますがデシジョンテーブルですべての組み合わせをテストする必要があります。

「組み合わせテストは無則だけをテストする」といった誤解があるようですので指摘させていただきました。

 


Viewing all articles
Browse latest Browse all 58

Trending Articles