10.8 テスト駆動開発をチームに広める
内容
テスト駆動開発の正しいやり方を身につける唯一の方法なんてものは存在しないが、まずは、良い共通理解を形成するところから始める。
テスト駆動開発導入にあたって足かせになるのは、経営者と開発者それぞれ異なったテスト駆動開発に対する負の先入観。
これらを統一した共通認識にするところから始める必要がある。
10.9 テストに感染する
開発者の最初の大きな課題は最初にテストを書くことが不快だということだ。
なぜ不快かというと、実装を集中して書くことを訓練してきたからだ。
その習慣をやめて最初にテストを書くようになるまで長い時間がかかる。
開発者は「目的」と「やり方」の世界を行き来するが、まず「作るものは何か」(目的)から始めるべきだ。それがインターフェイスであり、テストだ。
まず、呼び出すメソッドの外観、名前、入力パラメーター、戻り値を明らかにする。それから「どうやって作るか」に焦点を合わせる。
一直線にプロダクションコードを書くという習慣をやめれば、自然にテストファーストに考えられる。
この現象を、テスト駆動開発の初期提案者の1人エリック・ガンマ氏が「テストに感染し始めた」と言った。
学び
- チームに導入したければ、経営者、開発者はそれぞれの観点でメリット、デメリットを整理して共通認識になるように準備する必要がある。
- テストを最初に書く違和感の直し方は、「作るものは何か?」(外観、名前、入力パラメータ、戻り値)を明確にし、そのテストを書くところから始めよう。
- 最初にテストを書く習慣が開発者にはない。
学びを活かすアイディア・行動
- テスト駆動開発のメリデメの整理。経営観点と開発観点。
- テストコードの目的の事前知識整理