[ブログ紹介] TDD アンチパターン
2006年 11月に James Carr 氏が blog に "TDD Anti-Patterns" と題した記事を載せました。 なかなか興味深い記事です。
その日本語訳を、 「Java言語で学ぶデザインパターン入門」 の著者である結城浩氏が書いてくださっています。 ( コミック・数学ガール(上,下) の方を紹介すべきかな? )
TDD のアンチパターン
少し前から TDD のアンチパターンのことを書きはじめた。 中でも "現実に" よくあるものからざっと書き出して、 それから yahoogroup の testdrivendevelopement メーリングリストに投稿してみた。 するとすばらしいフィードバックの数々を受けることができた!
そして、 アンチパターン (失敗に陥るパターン) が 22項目ほど説明されています。
いずれも、 注意しないと嵌りがちな落とし穴ではあるのですが、 ただ、 ちゃんと TDD していれば起きないだろうというパターンも散見されます。
たとえば最初の 「嘘つき (The Liar)」 アンチパターン。
これは、 明らかに TDD を実践していないから起きることです。 レッド ( 失敗するテストを書く ) を確認しないで製品コードを書いてしまい、 後からユニットテストを書いたものと思われます。
※ 私も、 社内プロジェクトでけっこう見ました。 カバレッジ 100% のためだけに 「テスト」 メソッドを書いてあるけれど、 Assert 文も ExpectedException 属性も無いというのを。
また、 「検査官 (The Inspector)」 アンチパターンが挙げられています。
しかし、 私はこれをアンチパターンとするのには反対です。 TDD 3原則に従っていれば、 C0 カバレッジはほぼ 100% になるからです。
最後の 「のろまな動き (The Slow Poke)」、 これも TDD を実践していないからでしょう。 ひとつのテストに何分も待たされたのでは、 レッド → グリーン のリズムに乗れません。 それでは TDD が苦痛ですから、 テストのスピードアップに取り組むはずです。
※ TDD ではなく、 受け入れテストとして書いているなら、 時間が掛かるのもアリかもしれません。
| 固定リンク
「ブログ紹介」カテゴリの記事
- [ブログ紹介] Writing Unit Tests in F#(2011.11.09)
- [ブログ紹介] VS と連携 *しない* NUnit の使い方(2011.08.01)
- [ブログ紹介] 三角形問題で必要なテストケース数(2011.06.08)
- [ブログ紹介] CppUnit を Visual Studio C++ 2010 でビルドするには(2011.06.06)
- [ブログ紹介] TDDBC ポータル (Hiki)(2011.03.11)
この記事へのコメントは終了しました。
コメント