« [コラム] テストファーストの終了条件 ( どれだけテストを書けばいいのか? ) | トップページ | [ブログ紹介] Silverlight の UnitTest »

2009年9月 7日 (月)

[ブログ紹介] TDD アンチパターン

2006年 11月に James Carr 氏が blog に "TDD Anti-Patterns" と題した記事を載せました。 なかなか興味深い記事です。
その日本語訳を、 「Java言語で学ぶデザインパターン入門」 の著者である結城浩氏が書いてくださっています。 ( コミック・数学ガール(上,下) の方を紹介すべきかな? )

TddAntiPatterns - TDD のアンチパターン

TDD のアンチパターン

少し前から TDD のアンチパターンのことを書きはじめた。 中でも "現実に" よくあるものからざっと書き出して、 それから yahoogroup の testdrivendevelopement メーリングリストに投稿してみた。 するとすばらしいフィードバックの数々を受けることができた!

そして、 アンチパターン (失敗に陥るパターン) が 22項目ほど説明されています。
いずれも、 注意しないと嵌りがちな落とし穴ではあるのですが、 ただ、 ちゃんと TDD していれば起きないだろうというパターンも散見されます。

たとえば最初の 「嘘つき (The Liar)」 アンチパターン。
これは、 明らかに TDD を実践していないから起きることです。 レッド ( 失敗するテストを書く ) を確認しないで製品コードを書いてしまい、 後からユニットテストを書いたものと思われます。
※ 私も、 社内プロジェクトでけっこう見ました。 カバレッジ 100% のためだけに 「テスト」 メソッドを書いてあるけれど、 Assert 文も ExpectedException 属性も無いというのを。

また、 「検査官 (The Inspector)」 アンチパターンが挙げられています。
しかし、 私はこれをアンチパターンとするのには反対です。 TDD 3原則に従っていれば、 C0 カバレッジはほぼ 100% になるからです。

最後の 「のろまな動き (The Slow Poke)」、 これも TDD を実践していないからでしょう。 ひとつのテストに何分も待たされたのでは、 レッド → グリーン のリズムに乗れません。 それでは TDD が苦痛ですから、 テストのスピードアップに取り組むはずです。
※ TDD ではなく、 受け入れテストとして書いているなら、 時間が掛かるのもアリかもしれません。

http://bluewatersoft.cocolog-nifty.com/blog/2008/01/tdd_329c.html

|

« [コラム] テストファーストの終了条件 ( どれだけテストを書けばいいのか? ) | トップページ | [ブログ紹介] Silverlight の UnitTest »

ブログ紹介」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [ブログ紹介] TDD アンチパターン:

« [コラム] テストファーストの終了条件 ( どれだけテストを書けばいいのか? ) | トップページ | [ブログ紹介] Silverlight の UnitTest »