2010年7月6日火曜日

functional test と unit test の違い

functional test と unit test の違いについて、非常に良い言葉を見つけたので貼っておく。[Testing, fun? Really?]

Unit tests tell a developer that the code is doing things right; functional tests tell a developer that the code is doing the right things.

副詞と形容詞の違いで、正当性を表す”right”がどの語に掛かるかが違ってくる(日本語に訳すと何故か鮮やかさが無くなってしまう・・・)。

この functional test と unit test の違いについては、開発プロセスについて決定権を持っているようなポジション人ですらよく分かってなかったりして、いろんな現場を渡り歩いているとたまにガッカリする事がある。

よくある誤解は、「xUnit を使ったら、そのテストは unit test」、「xUnit を使うから unit test」ってやつで、目的と手段が逆転しているパターン(別に NUnit でfunctional test も普通にやるし)。

さらにその上、自動テスト全般と xUnit を混同してる人もいて、「UIの unit test には TestComplete を使うから、Windows Forms のコードには テストコードは書く必要はないです」なんてメチャクチャな主張を聞く事もある。「結合テストをやるから単体テストはやりません」ってのと同じなんだが・・・

「コードが正しく動いて正しい事を実行している」って事のテストは、二つ別々の観点から別々に為されなきゃならないのになあ。

0 件のコメント:

コメントを投稿