界隈で使われる「組み合わせテスト」の狭義な意味
組み合わせテストについてのまとめ。こちらのやり取りを見て一緒くたにしておりちゃんと説明できる自信がないので備忘録として。
その人それぞれの定義の問題じゃないかな?
— ネモトノリユキ (@nemorine) March 30, 2019
組み合せ=DOEとかオールペアという人は組み合せは無則でいいと思う。
組み合せ=デシジョン、DOE、オールペアという人は有則と無則あるよね的な。
おさらい
まず組み合わせには3つのパターンが存在する。(※定義は自己解釈を含む)
なお、有則と無則は造語のためJSTQBのシラバスには存在しない
- 有則…因子同士を組み合わせて、影響のあるテスト
- 無則…因子同士を組合わせても何の影響もない入力セット
- 悪影響がないことをテストする目的で利用
- 禁則…組み合わせの出来ない入力セット
組み合わせテストって何?
組み合わせテストの定義は、Combinatorial testingである。(Combinationではない)
Combinatorialを使うのは以下の通り、明確な意図をもってテストケース数を減らすための技法となる。
対してCombinationはただ組み合わせただけで、テストケースは爆発する。
Cem Kaner氏のワークブックTest Designでは、"combination"と"combinatorial"を混同してはいけない、combinatorial techniquesは何らかのアルゴリズムによると書かれています。Combination testingはMechanical combination, Risk-based combination, Scenario-based combinationに分類されています。
— Keizo Tatsumi (@KeizoTatsumi) May 28, 2018
組み合わせテストとは、有則に絞っておりかつ因子間の組み合わせ可能なペアを精査したものと理解。
DT…Decision table
CEG…Cause-Effect Graph(原因結果グラフ)
CFD…Cause Flow Diagram
最後に
にしさんの耳の痛いお言葉で、まだまだ道具に振り回されているなあと改めて実感しました。
- 組み合わせテストっていうのも実はそこそこ曖昧な言葉で、水準の組み合わせを求めるアルゴリズム(直交配列表など)と、因子を抽出する方法がある。個人的には組み合わせテストという用語を使う時は前者に絞った方がいいと思う
- ちなみに、セミナーや書籍、シラバス、国際標準、学術論文の分類が常に絶対的に正しいとも限らない。分類には必ず前提があるから。前提を無視してふんわりしたイメージだけで分類の正確さを議論しても、収束はしないぜ。
- テストの技術は、何かを盲目的に信じられるほどまだ成熟してないんだってば。詳細に考えたいんだったら、自分でまず論理的に考えてみた方がいい。そうしないと前提の違う定義や分類、もしくは分かってない奴のせいで泥沼にハマるぜ。
- 他人の定義を暗記して自分の思考を停止させることは、勉強とは呼ばない。それは単なる知性の放棄である。
TODO
ISO/IEC/IEEE 29119-4 Test Techniquesを読む
29119-4って読んだ?(別に詰めてない。純粋に聞きたいだけ。)
— Yasuharu NISHI (@YasuharuNishi) March 30, 2019
コンテキストがよくわかっていないので確認する。
昔作成した比較表です。一つは14年前、もう一つは10年前で秋山さんにも橋梁九いただいたものです。ご参考に。 pic.twitter.com/7kBNsBAdTg
— Keizo Tatsumi (@KeizoTatsumi) March 31, 2019