「因子・水準」をやめて「カバレッジ項目」を使い始めた

因子・水準ってなに?

因子・水準という言葉がテスト設計界隈で使われ始めたのはHAYST法からだと認識しています。HAYST法では実験計画法が使われていて、つまりは直交表を使うために因子・水準が使われていると認識しています(間違っていたらごめんなさい)。
で、この因子・水準は実験計画法における何らかの要因となり得るものが「因子」でそれを測るための基準をもつものが「水準」であるといった意味で使われていると思います。つまりは、因子に設定するものは何らかの要因になっている必要があって、水準はその要因を測る上での基準となっていなければならない、ということになります。

ではテスト設計における因子・水準とは?

テストの文脈において因子・水準という言葉を使うのは、例えば、テストを行うことで不具合発見の要素となり得るものが因子だと捉えることもできるのでそれほど違和感がないように思います。しかしながら現場で因子・水準と軽はずみに使っているところでは(因子・水準と呼ばれた経緯もどこから使われたかも知ろうともせずに、そう呼ぶことが当たり前のように使っているところでは)、不具合の”因子”となり得るかどうかは関係なしに単純に仕様ベースで仕様から落とし込んだ要素を因子・水準と呼んで使っていたりします。

何がよくないの?

で、それで何が悪いかというと、軽はずみにテストケースとなりうるものを全て因子・水準という言葉を使ってしまうと無駄なテストを作ってしまいがちなんです。単純に要素を抜き出すだけになってしまうので。
なのである変更に対して、その変更に影響がある要素を抜き出さないといけないところで仕様書の、その機能に書いてある条件や設定値をただただ抜きだして、並べて、組み合わせてテストする。テストがやたら増えるわりには、不具合を見逃してしまう、ということが起こり得ます。

カバレッジ項目

一方、カバレッジ項目という言葉を使うとそれが多少防げると思っています。言葉から得られる印象はとても大事で、定義をちゃんとしていればいいのですが、その定義は、言葉が受け継がれるたびに薄れていき、忘れられてしまうものです。そういった意味でも言葉というのはとても大切です。

で、カバレッジ項目ってその言葉の印象から「カバレッジを確保したい項目」と捉えることが容易なのでこの言葉ってとても良い言葉だと思いました(ISO/IEC/IEEE 29119で使われている言葉)。それまで私は「要素」を使っていましたが、これもあまりよくない言葉です。ただただ抜き出してしまうので。

そういった意味で、カバレッジ項目という言葉を現場で使うようになりました。メンバーには馴染みがない言葉なのですが、これから浸透させていければと思っています


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