例で覗くテスト駆動開発(TDD)

テスト駆動開発(Test-Driven development = TDD)については、以前からTest Firstという名で知っていましたし、実践しようともしていたはずなのですが、Kent Beckの"Test-Driven Development by Example"を読むまでは、やっぱりわかっていなかったような気がします。

それでは今ならわかっているのかというとそれも心もとないので、自分の理解を確かめるためにもmini Test-Driven Development by Exampleを書いてみることにしました。

使用している言語はRubyです。私はRubyが得意なわけではないのですが、Rubyなら処理系によるエラーメッセージの違いやIDEの操作方法の違いに惑わされずに済むかもしれないと思いRubyにしてみました。必要最低限の説明は入れましたのでRubyを良く知らない人でもわかってもらえればと思います。

1.座標の足し算

2.矩形の重なりの面積

3.バグ発見−例外のテスト−

4.テストの定石−ログ文字列(Log String)−

おまけ

寺田雄一郎さんのStackクラスの作成をRubyに書き直したもの

ShoppingCartクラスの作成

テスト対象を分離する方法


参考文献

テスト駆動開発入門

ケント・ベック 著

Rubyを256倍使うための本 極道編

助田 雅紀 著

JUnit テスト熱中症:プログラマは、テストを書くのが好きになる

http://objectclub.esm.co.jp/eXtremeProgramming/TestInfected-J.html

各言語のテスティングフレームワーク

http://www.xprogramming.com/software.htm

リファクタリング プログラミングの体質改善テクニック

M・ファウラー 著、児玉 公信+友野 晶夫+平澤 章+梅澤 真史 訳


更新履歴
2003年05月05日 作製
2003年05月06日 HTMLの文法の誤りを修正。RedバーとGreenバーの表示を追加。
2003年05月07日 「2.矩形の重なりの面積」の終わりにデバッグの場合を追加
2003年05月08日 すみません。今までstylesheetを入れ忘れていました。
2003年05月24日 XHTML1.0にしてみました。
2003年06月30日 2の終わりのデバッグの場合を3に分離
2003年07月02日 2にAssert Firstの説明を追加。色盲を考慮し、RedバーとGreenバーの色を変更。3もちょっとだけ加筆
2003年07月05日 1をちょっとだけ加筆
2003年07月15日 1の終わりのテストプログラムを改良。「4.テストの定石−ログ文字列(Log String)−」を追加
2003年07月18日 3に例外のテストを追加 2003年07月18日 3の前半を削除して例外のテストだけに絞った。
2004年04月01日 「Stackクラスの作成」を追加。
2004年04月06日 「ShoppingCartクラスの作成」を追加。
2004年07月10日 RubyUnitからRuby1.8のTest::Unitに移植した。


勝田 均


ホーム