単体テストの効率化を考える(15)
単体テスト設計書の再考

どもです。

以前投稿した単体テストの効率化を考える(8)で、単体テストの設計書としてのデシジョンテーブルの例を紹介しました。
しかし最近、実際にデシジョンテーブルを作成していて、「コレ、使いにくいな…」と感じることがありました。

そこで今回は、どのようにしたらデシジョンテーブルが使いやすくなるか、さらにツールでも使いやすくなるかを考えてみます。

1. いきなり結論

色々書く前に、まず結論を示します。
デシジョンテーブル、コレでいいんじゃないか?



2. 何を変えた?

結論を示したトコロで、先に紹介したデシジョンテーブルからの変更点を書きます。

2.1. 列の順番

変更点の1つ目は、テーブルの「列の順番」です。
先に紹介したテーブルでは、左から「判定内容」→「代表名」→「代表値」の順番になっています。
しかし、デシジョンテーブルの目的や作り方を考えた場合、「値の範囲」を示す「判定内容」が「代表名」よりも左にある(先に読まれる)のは不適切です。
そこで順番を、「代表名」→「判定内容」→「代表値」の順番に変更しています。

加えて、列の名前を下表のように変更しています。

変更前 変更後
代表名 変数名
判定内容 範囲

のように、より記載する内容に従った記載に変更しています。

2.2. セル結合の解除

2つ目の変更点は、「セル結合の解除」です。

先出の表ですが、パッと見るとセルが結合されているように見えます。
しかし実はセル結合を解除し、文字色を白っぽい色(白ではない!)に変更しています。
実際にセルの背景色を変更すると、下図のようになります。



このように、空白に見えるセルに対しても何某かの文字列を設定し、空白になっているセルは(基本的に)ありません。
「戻り値」の「説明」のみ空欄になっていますが、これは「特に記入することがない」ため空白のままにしています。

なお、「空白に見えるセル」の文字色は、エクセルの「条件付き書式」を使用して設定しています。

3. 何が良くなる?

ここまで、デシジョンテーブルの変更点について書いてきました。
そこで気になるのが、「このように変更することで、何が嬉しい?」という点です。

デシジョンテーブルを前出のように変更することで嬉しい内容は、

  • セルの結合を解除することで、行の追加/削除が容易になる。
  • テーブルの解析を行うツールの実装が楽になる

です。

この変更点のうち、特に2つ目は「単体テストの効率化」では重要になるのかな、と思います。

4. まとめ

今回は、単体テストの設計で作成するデシジョンテーブルについて書きました。
単体テストの効率化を考える(8)で紹介したフォーマットと比較すると、得られる情報は同じです。
しかし、テーブルの変更とツールでの解析の容易性は、だいぶ違うのではないかと考えます。

今回紹介したデシジョンテーブルの書式が、誰かの助けになれば幸いです。

ではっ!

ex. 参考

今回のデシジョンテーブルの書式の変更では、総務省が公開している統計表における機会判読可能なデータの表記方法の統一ルールの策定の内容を参考にしています。
ルールの数は少なく、また各ルールの内容も実にシンプルです。
そのため、実践/導入もそれほど難しくないと思います。