TDDを試してみる
今日は入力検証処理をTDD+ペアプログラミングで挑戦してみました。
本で読んだ内容をよく覚えていなかったので、以下のリズムを保ちながら進めていきました。
赤(テストの追加) → 緑(フェイク) → 赤(フェイクでは通らないテストの追加) → 緑(実装) → 緑(リファクタ)
この方法で正しいのかどうかわかりませんが、
特に、「赤(フェイクでは通らないテストの追加)」後の実装と実装が正しいことの確認、ゴールが明確になると感じました。
開発のスコープがすごく短くなるのもいいですね。
テストの実行回数はテストファーストと比べて10倍くらいになったのではないでしょうか?
テストとテストの間の数十秒〜数分が開発のスコープとなり、
それがいてれーてぃぶに繰り返される感覚です。
「だるまさんがころんだ」のように少しずつ、しかし着実に進んでいきます。
その他、意見として次のようなものが出ました。
- 初心者はTDDはできるのか?
- 全てをフェイクで大丈夫?
- 納期が迫っていたらどうする?
- テストが実装を導いてくれる
- クラスのインタフェイスに、注目しながらプログラミングしている
- クラスの細部まで把握した状態になる。また無駄なコードがない。
明日は、もう少し予習(?)して実践してみます。