More Related Content
Similar to TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Similar to TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~ (20)
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
- 2. 自己紹介
• NECビッグローブ サービス開発本部 サービスラボG 所属
• 2年前まで WebLogic Server のサポートしてました
• プログラム経験、ちょうど1年ぐらい
• 趣味は、車、写真、水上バイク etc.
• 愛車は、アルファロメオ GTV(1998年式)
• 最近好きな言葉:人を燃やさなあかん!
Copyright(C) NEC BIGLOBE, Ltd. 2011
- 4. テスト駆動開発って何?
• プロダクトコードを書き出す前に、これから作るプロダクトコー
ドを評価するためのテストを作成する
• テストコードが通るように、プロダクトコードを作っていく
• 必要な機能を一度に全て実装するのではなく、簡単なところ
から1Stepづつ作っていく
椋本 彦之
詳しくは、「テスト駆動開発入門」(ケントベック著)を読んだり、
各地で開催されているTDD勉強会に参加すると良いです。
むしろ、そっちで聞いた方が良いです。
Copyright(C) NEC BIGLOBE, Ltd. 2011
- 5. 現状
• 開発は、ZendFramework を使ってます。
• PHPUnit & eclipse plugin の MakeGood を使ってます。
• テストコードは、プロダクトコードの概ね2倍ぐらいのライン数
になってます。
• これまで、TDDを進めていく上ではまったことを紹介していき
ます。
Copyright(C) NEC BIGLOBE, Ltd. 2011
- 7. テストの実行速度が遅い
DatabaseTestCase を利用する
症状
• テスト項目が増えると遅くなる
• Read処理しかしていないのに、DBの初期化が実行される
処方
DatabaseTestCase を使わない
⇒ ダミーのテストケースを作り、その中で DBを初期化
⇒ 更新系のテストを実行するときは、都度DBを初期化
• テストの実行速度の改善
Copyright(C) NEC BIGLOBE, Ltd. 2011
- 10. やってみてよかったこと
• プロダクトの品質にそれなりに自身が持てる
プロダクトの品質にそれなりに自身が
品質にそれなりに自身
• ちょっとしたバグ、デグレードが早い段階で検出できる
ちょっとしたバグ、デグレードが早 段階で検出できる
• リファクタリングしようという気にさせる
リファクタリングしようという気
Copyright(C) NEC BIGLOBE, Ltd. 2011
- 11. これからの課題
• テストをどこまで書けば良いのか。
テストをどこまで書けば良いのか。
厳密に作りすぎると壊れやすいテストになって死ぬ。死
死ぬよね~。
WF(ウォータフォール)のUT感覚でTDDのテストを書くと死ぬよね~。
• テストコードの品質をどう担保すれば良いのか。
テストコードの品質をどう担保すれば良いのか。
品質をどう担保すれば
テストコードがバグって死ぬ。
死
• テストし易いクラス、メソッドの構造を設計しているか。
テストコードを後回しにするとテストを書くときに死ぬ。
死
• テストデータをどう作りこむか。
作り込み過ぎるとテストが壊れやすくなり死ぬ。 死
適当すぎるとリファクタリングの際、信用できなくなり死ぬ。
Copyright(C) NEC BIGLOBE, Ltd. 2011 死