コラム
TOP >  コラム >  コラム詳細

上流工程で効く、 「テストの考え方」  第3回 : 「同値クラス」に注目してモレ抜けを無くそう
今回のテーマは、『同値クラスを上流工程で使う』です。上流工程で仕様を記述する際に、知っておくと役に立つアイデアを皆さんと一緒に考えていければと思います。


まず「同値クラス」、あるいは「同値分割」とは何でしょうか。さまざまな定義がありますが、JSTQBのソフトウェアテスト標準用語集(※)によれば、「同値分割:仕様上、コンポ-ネントやシステムの動作が同じと見なせる入力定義域や出力定義域の部分」とされています。

まさに私たちはこの「動作が同じと見なせる」という考え方にのっとって、より効率的なテストを実施することができるわけです。

第2回の図を例にとれば、「有効入力値a: 10≦a<100 (但しaは整数とする)」をテストするのに、10から99までの全ての値を入れなくてもそのうちの幾つかの値を入力することで済みます。


このように便利な同値クラスですが、その一方で、テスト担当者が、同値クラステストで一番恐れるのは、設計仕様書に表れていない同値クラスの存在です。



著者:石原 一宏
バルテス株式会社 R&D部 部長兼上席研究員。ソフトウェアテスト・品質の研究開発を行う傍ら、社内外のセミナー講師およびコンサルティングを行う。『ソフトウェアテストの教科書』(共著、ソフトバンク クリエイティブ社、2012年)、『いちばんやさしいソフトウェアテストの本』(共著、技術評論社、2009年)を執筆。
仕様書を元にソフトウェアは実装されますが、実装の過程で、仕様書には無い境界値や同値クラスが作りこまれてしまうことは少なくありません。
実装担当者しか知らないその同値クラスがテスト担当者に伝わらなければ、テスト自体が抜けてしまう恐れがあります。

前回、「設計」、「実装」、「テスト」の「3点の一致」が取れていることがソフトウェア開発では大切と申し上げました。


そこで、実装担当者の方にお勧めしたいのが、仕様書に無い同値クラスを実装した際には、後から見てわかるように、仕様書になんらかの反映を行う、ということです。


「そんなこと、時間が無くてやってられないよ!」というのであれば、手書きでもいいので、第2回の図のような数直線を仕様書に添付しておくとよいでしょう。

それだけでも、テストのとき、あるいは仕様変更のときには大きな威力を発揮します。「仕様書に記載のない同値クラス」の周知、ぜひご検討ください。


さて、もうひとつ同値クラスの活用例を。

要求定義を基本設計に落とし込む際などに、同値クラスの考え方を応用できます。今回お勧めしたいのは、「どうやってこの仕様をテストするか」を出来るだけ設計段階から考えて、そのテストの観点を一覧表にして仕様書に加えておく、というアプローチです。


よくあるサンプルとして、パスワード設定の文字入力の仕様を考えてみましょう。

1| 2

>

>>



第2回 第4回


連載一覧

1