どうも本職が時代遅れ・・・
最近になってdjunitというカバレッジ測定ツールがあることを知った。
名前は以前から聞いたことがありましたけどね。
javaでいろいろclassとか作っていくとそのclassが正しい動きをするのか!
ってのをテスト(試験)しなきゃならんのですが、そのときに活躍するツールです。
今まではjunitっていうテストツールで、いろんなテストパターン、
正常ケースとか異常ケース(パラメータがだめ!とかDB登録されてない!とか)を
考えてやってました(といってもそれぞれエラー時の設計をしているはずなのでそれに従ったパターンになる)。
このツールだけだと、その
パターンが想定通りの動きを「したか」「してないか」しか分からなくて
本当に全パターンテストできたんかなぁ・・・?って感じでした。
でも今回のこのdjunitっていうのは、
テスト対象のソースコードをトレースして
実際にテストパターンで「実行した行」「実行していない行」というのを表示してくれます!
つまりソース上で
「テストできていないパターン」を見つけることが可能なんです。
このソース全網羅(ラインカバレッジ100%)が確保できると、一応ソース上で全パターンのテストが
完了した!と客観的に証明できるんですね。便利便利。
ただまぁ、システムのバグなんてのは「想定していなかった」パターンで発生するのが普通なので
これはあくまで「想定していたパターンの正当性」を向上させるひとつの指標でしかないわけで・・・
ま、それでもテスト品質が向上するのは間違いないのでちゃんと測定しなきゃね。

↑テストパターンに基づいてテスト実行、、、結果
全27パターン 想定通りの動きをしてます。
これで完了!? と思いきや・・・

↑ラインカバレッジを見てみると86%
ソースに対して14%の未実行コードがある!
つまりはテストパターン漏れということ。
この不足テストパターンをテストクラスに実装して再テストすれば良い!ってことですね^^
PR
COMMENT