突っ走り書き

見せるほどのものでは..

Kent Beck「テスト駆動開発入門」を読んだ

Kent Beckテスト駆動開発入門の読んだので,途中までのメモ.

TDDの目的 = 『動作するきれいなコード』

TDDを用いたプログラミングでは,

  1. 動作するコード
  2. きれいなコード

を目指す.

TDDの手順

  1. レッド: コケるテストを書く
  2. グリーン: とにかく速くテストをパスさせる
  3. リファクタリング: グリーンのままでコードの重複を取り除く

動作するコードは『グリーン』で,
きれいなコードは『リファクタリング』によって生み出す.
目標を『動作する』と『きれいな』の2つに分割し,それぞれ個別に解決していくイメージ.

大きな目標と小さな目標

  • 大きな目標: 動作するきれいなコード
  • 小さな目標: (どんな手を使ってでも)テストを素早くパスさせる

TDDは「可能にする」

TDDは,小さな手順で作業することではなく,小さな手順での作業が可能になることである.

-Kent Beckテスト駆動開発入門,p.9-

テストを強制しているわけではない.

テスト完成から数秒以内にグリーンに

そのための戦略

明白な実装
グリーンのための処理がイメージできるとき,本実装をいきなり記述する
仮実装
どうすればグリーンにできるか分からないとき,まず定数を返すように書き,徐々に変数を持ち込む
三角測量
「仮実装」から「明白な実装」へ進むとき,あるいはリファクタリングをするときに,(必要ならば)同じ関数について2つのテストを書き,一般化へのきっかけをつかむ

三角測量によってある機能における『不変部分』と『可変部分』を明確化し,一般的な処理を記述するための足掛かりを得られる.