テスト駆動開発とは何であって、何でなかったのか?を聞いて
はじめに
- fukabori.fmでt_wadaさんが話していたのを聞いた際のメモです。凄く勉強になったので久しぶりにブログに残します。
- t_wadaさんのブログで書かれていた内容と被っている部分が多く、その部分は基本的に割愛してます。
メモ
- TDDのステップ
- (1)テストリストを書く
- (2)リストから1つ選び失敗するテストを書く
- (3)テストが通るようにコードを書く
- (4)リファクタリング
- (5)テストリストが空になるまで繰り返す
- 品質保証ではない
- テストという言葉が強すぎる
- 品質保証が主目的ではない
- 実装の補助線(スムーズに設計と実装を行うためのもの)
- 内部品質、特にテスト容易性、理解容易性、変更容易性が高まる
- 結果的に品質は向上する
- 結果的に品質は向上する
- プログラムの書き方(設計と実装のやり方)
- 設計手法とプログラム手法の中間
- 設計手法とプログラム手法の中間
- テストを先にたくさん書くと、フィードバックが遅くなる
- 実装とテストのタイミングが遠いとフィードバックが来ても変更しにくい
- 実装とテストのタイミングが遠いとフィードバックが来ても変更しにくい
- 設計と実装(のフィードバックを短いサイクルで得ることで、ちょうど良いバランスを探る
- テストリストについて
- 最初に出し切る必要はない
- 網羅的である必要はなく気付きを書き留める設計メモレベルで良い
- TDDでいう「網羅」は備忘録のようなもの
- 備忘録をメンテナンスしていく程度で良い
最近のコメント