テスト技法:ドメイン分析の話

ドメイン分析というテスト設計技法があります。いろんな流派があって、ドメイン分析とはこれだ!みたいな決定版はないと思っています。多分日本で有名なのはBinderのドメイン分析でしょうか。この記事の目的は、各種あるドメイン分析の一つを紹介し、「ドメイン分析って色々ある」をご理解いただくことです。

紹介するのは、Pragmatic software testingというRex Blackさんが書かれた書籍の内容です。


ドメイン分析とは?

書籍の内容紹介の前に、まずはドメイン分析の概要から説明しておきます。

こちらを参照します。

ドメインは、定義済みの値のセットである
多次元ドメイン用の各テストケースは、関連する各変数の妥当な値を含む必要がある。

ドメイン分析とは、という話はないですが解釈すると「多次元の同値分割法や境界値分析」と言えそうです。

ドメイン分析の最小カバレッジは、各ドメインでIN、OUT、ON、およびOFFのそれぞれの値をテストすることである。たとえば、あるドメインのOUTの値が別のドメインのINの値であるといった場合など、値が重複している場合にテストを重複して実行する必要はない。このため、実際に必要なテストの数は、ドメイン当たり4未満となることが多い。

IN/OUT/ON/OFFという値を使って、カバレッジを考える、ということです。これはおそらくどの流派でも同じなのかな、と思います。

JSTQB AL TAではこれぐらいしか書いてなくて、どうすればいいかわかりませんよね。(同値や境界値の仲間ということだけは理解できる)

というわけで、JSTQB AL TAシラバスが参照しているPragmatic software testingを読んでみます。


Pragmatic software testingのドメイン分析

Pragmatic software testingでは、ドメイン分析をDomain Testingと呼んでいます。

Domain analysis is an analytical way to deal with the interaction of factors or variables within the business logic layer of a program

複数の変数を取り扱うのであればドメイン分析を使いましょう、ということです。


Much of the original work in the area of domain testing was done by Boris Beizer and lately has been carried on by Robert Binder and Lee Copeland

ドメインテストはBeizerやBinder、Copelandによって作られたということです。「ソフトウェアテスト技法」に載ってますね。


They have written that in order to test a domain, there are four types of interesting test values

これがON/OFF/IN/OUTです。ここら辺はJSTQB TAと同じ定義かなと思いますが、もう少しだけ詳しいですかね。OFFはこちら。

A value just off a domain boundary by the smallest recognizable amount and outside of the domain

ここのoutside of the domainというのが、この書籍における特徴です。どちらからdomainを見ているかによってOFFの取り方が違っています。

IN/OUTは一般的な定義と同じなので、OFFだけが議論ポイントかなと思います。

この書籍では上記考え方から、1-99の有効ドメインに対して、

-7(OUT), -1(OFF), 0(ON), 15(IN)
15(IN), 100(ON), 101(OFF), 126(OUT)

をとる、と言っています。境界値が0と100である、と言っているところも特徴的ですね。まぁこれは仕様の書き方に依存するので、0より大きく100より小さい有効ドメイン、と書けば境界値はこれで正しくなります。それよりも、OFFの取り方ですね。僕の記憶が正しければBeizer本では、0より大きく100より小さい有効ドメインの場合ONが0、OFFが1になるはずです。

ここまでが一次元の例でした。二次元の例も載っています。ただ、二次元でも同じで、1.000が境界値(1.000が上のドメインに含まれるか、下のドメインに含まれるかの言及はなし)で、

下から見た場合、ONが1.000、OFFが1.001
上から見た場合、ONが1.000、OFFが0.999

となっています。まぁある意味、ON/OFFって境界値分析で一番わかりにくい概念だと思うので、これはこれでありかな、と思います。僕は使いませんが。


まとめ

ドメイン分析にはいろんな流派があり、Rex Blackの流派は特に値の組合せをするような話ではなく、境界ごとにON/OFF/IN/OUTを取ろう、という話でした。個人的にはちょっと論理が弱いかなと思っています。

Binderさん、Copelandさんの流派も読んでみます。

この記事が気に入ったらサポートをしてみませんか?