2018.07.12(土) 技術講演会(テスト駆動開発)

概要

7月12日(土)に、和田卓人氏による技術講演会が行われました。
和田氏は、テスト駆動開発(Kent Beck著)を翻訳されました。
また、JavaScriptのテスト用コードのOSSであるpower-assertを提供されています。

参加報告

講演会では、テスト駆動開発を理解するためにライブコーディングによるデモを見学しました。
テスト駆動開発とは、動作するきれいなコードを目指すものです。
具体的には、

  1. 目標を考える
  2. その目標を示すテストを書く
  3. そのテストを実行して失敗させる(Red)
  4. 目的のコードを書く
  5. 2で書いたテストを成功させる(Green)
  6. テストが通るまでリファクタリングを行う(Refactor)

この1~6を繰り返していきます。

refactoringをすることで機能が増えるわけではないし、コードが動かなくなることもあります。
だから、refactoringは後回しになることが多いです。
しかし、refactoringを後でまとめてやるとなるとかなりの手間と時間がかかってしまいます。
それを解決するために、プログラミングの過程の中にrefactoringを取り入れていました。
完全に動作するコードを完成させてから、その使い方を考えると、偏見が少なからず発生します。
すると、それがコードの利用できる幅を狭め、使う側の欲求を十分に満たせないコードが生み出してしまいます。
これを回避するために、作る前に使う、テストファーストという手法が紹介されました。
この手法では、使ってみながら開発することで、そのコードの可能性を十分に発揮し、使う側の欲求を満たすことができます。

感想

どのようにテストを書いていくのか、手順を追って解説してくださったので、とても分かりやすかったです。また、テストの書き方によっては、負債となる場合があるため、テストは書いているときに自分だけが理解できれば良いものではなく、他人や将来の自分が読んでわかるように書かなければならないと思いました。