« [TDD の練習] WinForm を改造したい ~ GUI に埋もれたロジックを分離して、ユニットテストを書く | トップページ | [コラム] 単体テスト仕様書は不要になるか? »

2009年8月18日 (火)

[ブログ紹介] TDD三原則

正確にはブログではなくて、 個人でやっておられる wiki サイトに掲載された翻訳記事です。

やっとむのサイト: TDD 三原則
Last Change 06/29/09

http://www.butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd の翻訳です。

ぼくはいままで、 テスト駆動開発を3つのシンプルなルールで説明してきた。

  1. 失敗するユニットテストを成功させるためにしか、 プロダクトコードを書いてはならない。
  2. 失敗させるためにしか、 ユニットテストを書いてはならない。 コンパイルエラーは失敗に数える。
  3. ユニットテストを1つだけ成功させる以上に、 プロダクトコードを書いてはならない。

この記事を書かれた やっとむ 氏というのは、 今年の初めに出版された 「アジャイルな見積りと計画づくり」 の翻訳をなさった方で、 日本 XP ユーザーグループのスタッフでもある安井力氏です。

そして、 元記事を書かれた UncleBob こと Robert C Martin 氏こそは、 2001年に開催され、 「アジャイルソフトウェア開発宣言」 ( Manifesto for Agile Software Development ) を採択した 2日間に及ぶ会議を、 招集した人物です。

なお、 私としては、 Uncle Bob の言う 「3つのシンプルなルール」 というのは、 あくまでも TDD の範疇の話である、 と強調しておきたいと思います。 部分的に TDD を適用しないこと ( たとえば、 現状では GUI のコードなど ) もあるでしょう。 あるいは、 TDD で開発したコードにたいして、 仕様を説明するためのテストコードを、 追加で書くこともあるでしょう。 実際、 Uncle Bob  自身が次のように述べています。

InfoQ: Spolsky と Bob おじさんの対決
2009年2月28日

ぼくがすべてのテストを先に書いているというわけではないぞ。 テストの中には、 ごく一部だけど、 コードの後で書く方が具合がいいものもある。 テストをまったく書かないコードだってある。 書く価値がないからだ。 だが、 これは例外で、 ルールはある。

どんなルールでも例外はある、 ということですね。

|

« [TDD の練習] WinForm を改造したい ~ GUI に埋もれたロジックを分離して、ユニットテストを書く | トップページ | [コラム] 単体テスト仕様書は不要になるか? »

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

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: [ブログ紹介] TDD三原則:

« [TDD の練習] WinForm を改造したい ~ GUI に埋もれたロジックを分離して、ユニットテストを書く | トップページ | [コラム] 単体テスト仕様書は不要になるか? »