TDDを試してみる

今日は入力検証処理をTDD+ペアプログラミングで挑戦してみました。
本で読んだ内容をよく覚えていなかったので、以下のリズムを保ちながら進めていきました。

赤(テストの追加) → 緑(フェイク) → 赤(フェイクでは通らないテストの追加) → 緑(実装) → 緑(リファクタ)

この方法で正しいのかどうかわかりませんが、
特に、「赤(フェイクでは通らないテストの追加)」後の実装と実装が正しいことの確認、ゴールが明確になると感じました。

開発のスコープがすごく短くなるのもいいですね。
テストの実行回数はテストファーストと比べて10倍くらいになったのではないでしょうか?
テストとテストの間の数十秒〜数分が開発のスコープとなり、
それがいてれーてぃぶに繰り返される感覚です。
「だるまさんがころんだ」のように少しずつ、しかし着実に進んでいきます。

その他、意見として次のようなものが出ました。

  • 初心者はTDDはできるのか?
  • 全てをフェイクで大丈夫?
  • 納期が迫っていたらどうする?
  • テストが実装を導いてくれる
  • クラスのインタフェイスに、注目しながらプログラミングしている
  • クラスの細部まで把握した状態になる。また無駄なコードがない。

明日は、もう少し予習(?)して実践してみます。