2018.01.31(水)に、和田卓人氏による技術講演会が行われました。 講演会では、テスト駆動開発(TDD)を理解するために、ライブコーディングによるデモを見学しました。

テスト駆動開発の概要

テスト駆動開発とは、動作するきれいなコードを目指すもので、 具体的な流れは、

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

という作業を繰り返します。

和田卓人氏によるTDDのライブコーディング

実際に和田卓人氏によるテスト駆動開発のライブコーディングが行ってくださいました。 内容はJavaでFizzBuzz問題をテスト駆動開発で実装するというものでした。 単体テストツールとしてJUnitを用い、上記の手順を用いて実装していくのを見学しました。

FizzBuzz問題について

FizzBuzz問題とは、1から100の整数を数え、3で割り切れる場合には"Fizz"、5で割り切れる場合には"Buzz"と出力します。さらに3と5のどちらでも割り切れる場合には"FizzBuzz"と出力、それ以外ならそのまま数字を出力する問題です。

出力例:

1
2
Fizz
4
Buzz
︙
13
14
FizzBuzz
︙

 

感想

B1: テスト駆動開発という言葉自体、初めて知ったものでした。 しかし、和田氏が、具体的なことや身近のことを事例に挙げながら解説していってくださったので、どのようにしてテストを書いていくのかを学ぶことができました。

B2: テストを見れば仕様がわかって行く様子をみて、テストを書くということが重要だと実感できました。 その上、テストが負債となるケースも見て、これから気をつけてテストを書こうと思いました。