クラステストとユニットテスト


JunitとかTestNGを使ってクラスをテストするのは、いわゆる単体テストとは違うと思うんです。
JUnitとかが取り沙汰される前は、単体テストと言えば画面も業務ロジックもひっくるめた機能の事を言ってたと思うんですね。
ところがこれが混同される事が結構あるように感じるんです。

例えば90%の品質の部品群が組合わさった製品は90%より低い品質になっちゃうわけで、小さな部品の一つ一つの性能が上げるってのは非常に重要です。
そういう意味でクラスのテストは品質を挙げるためには有効な手段だと思うんですが、部品の組み合わせが正しいかという所まではテストできないですよね。
なので、これまで「単体テスト」と呼ばれていたものも行う必要があると思うんです。

ところが、JUnitを説明する時に「ユニットテスト」とか「単体テスト」とか言っちゃうと、これまでやってた「単体テスト」を置き換えるものと考えてしまう人がいる。
むしろコーディングの一貫だと説明した方がしっくりくると思うんですけどね。
んーでもコーディングと単体テストを合わせて「製造」と言ってる所もあるから、これでも誤解は解けないかな。

JUnitとかTestNGをきちんと運用している組織を見てみたいなぁ。

Comment

  1. n-3104
    2008-10-08 Wed 00:32

    最近はマイクロテストとかいうらしいですよ。
    http://www.infoq.com/jp/news/2008/07/hill-microtesting

  2. tma
    2008-10-08 Wed 20:33

    確か以前にこの記事を読んだ記憶があるんですが、改めて読んでみると「マイクロテスト」っていいアイデアですね。
    今度言ってみよかな。