前回までで、「テスト駆動開発とは何か?」「テスト駆動開発におけるテストとは何か?」という話をしました。
次に行いたいのは「テスト駆動開発をどうやってマスターすればよいのか」という話です。
家永さんからの質問
テスト駆動開発をやろうとしても、やっぱりいきなりは難しいと思います。
写経――書籍や雑誌のコードを入力して動かす
まず「写経」は非常に有効です。
写経というとお経を写すあの「写経」を思い浮かべるかもしれませんが、ジャーゴン(狭い業界内でしか通じない言葉)で写経というと、本や雑誌に書いてあるコードを実際に写してみることです。
たとえばテスト駆動開発を説明する本に書いてあるテストコードがありますよね。そういった実際に本に書いてあるコードを自分で逐一手で写してやってみる、実際にその流れに沿って打ち込んで実行してみるという行為を、私たちは「写経」と呼んでいます。
『テスト駆動開発入門』
『テスト駆動開発入門』(Kent Beck 著/テクノロジックアート 訳/長瀬 嘉秀 監訳/ピアソン・エデュケーション 刊)という本があります。テスト駆動開発という概念を実際に発明した、というか編み出した、Kent Beckという人が書いた本です。Kent Beckは、アジャイル開発の著名な手法eXtreme Programing(XP)を編み出した一人でもあります。
この本では、Kent Beckが実際に何章にもわたって、いくつかのプログラムをテスト駆動開発で開発していくさまがそのまま収録されています。たとえば1章から17章では、通貨(Money)というクラスをテスト駆動開発で開発していくさまが収録されています。
このような本に書いてあるテストコードを逐一手で写して(自分で打って)やってみることは、テスト駆動開発をマスターするにあたっての第一歩としては、1人で始められるという意味で一番近道ではないかと思っています。
私自身も、この本に出てくるコードを最初から逐一写したことで、テスト駆動開発をマスターしました。
『WEB+DB PRESS Vol.35』『WEB+DB PRESS Vol.37』
手前味噌になってしまいますが、WEB+DB PRESSで私が書かせていただいた記事も写経に適していると思います。
『WEB+DB PRESS Vol.35』の特集1「実演! テスト駆動開発」では、8章にわたって、私がテスト駆動開発について、一つ一つ説明させていただいています。こちらは『WEB+DB PRESS総集編』にも収録されています。
『WEB+DB PRESS Vol.35』の特集1「実演! リファクタリング」でも、私がステップバイステップでコーディングし、リファクタリングしていくさまを説明させていただいています。
本日は、WEB+DB PRESS Vol.35やVol.37を実際に写経していただいた人にもお越しいただいていますので、感想をお聞きしたいと思います。
クロコさんの感想
テスト駆動開発をどういう手順で進めていくかや、Eclipseのショートカットキーの使いこなし方とかは、とてもわかりました。
なるほど。
写経というのはあくまで写経なんですね。その本や雑誌の著者が通ってきたレールをそのままなぞってみる、著者の判断をなぞってみるのが写経という行為なんですね。まず第一歩として、テストをどのような手順や書き方で行うのかということは、写経という手段で体得できると思います。
そして、その著者の思考のレールを外れて、自分のテストをどうやって書き始めるかということが、次のトピックになるわけですね。実際に自分でどうやってテストを行っていくかということに関しては、第10回でお話しさせていただきます。
次回もテスト駆動開発をマスターの仕方について
次回もテスト駆動開発をマスターするための方法の続きをお話します。