TDDBC Tokyo 1.7 for PHP #tddbc に行ってきました

8月21日に開催された TDDBC Tokyo 1.7 for PHP #tddbc に行ってきました。
テスト駆動開発(TDD)に関するid:t-wadaさんの講演やペアプロによるTDD実習など、充実した内容でした。

講演の中で印象に残ったのは次の2つ

  • テストの再分類のための視点
  • 黄金の回転

テストの再分類のための視点

「テスト」という言葉が指すものは組織によって、プロジェクトによって、また人によって違うものであるから、「テスト」について語る前に再分類をする必要があるという内容。今回のお話ではテストを以下の3つに再分類していました。

  • DeveloperTesting
    • 開発者を対象に開発促進を目的に行うテスト
    • Unitテスト等
  • CustomerTesting
    • 顧客を対象に進捗管理を目的に行うテスト
    • 受け入れテスト等
  • QATesting
    • 品質を対象に品質保証を目的に行うテスト
    • セキュリティやパフォーマンス要件を満たしているかをテストする

TDDで「テスト」というと、DeveloperTestingの事をいうようです。
他の視点と混同するとちゃんとしたテストが書けなくなると思います。

黄金の回転

スティール・ボール・ラン で登場した黄金の回転はTDDにも存在したッ!

画像は テスト駆動開発チートシート からの引用です。
このグラフの中で右上の「動作する、きれいなコード」を目指してプログラムを開発するわけですが、TDDでは「動作する」コードを作成し、リファクタリングによって「きれいな」コードにしていくという方法で「動作する、きれいなコード」を目指します。そしてまた新しいテストを追加して動作しないコードに変えていきます。これをTDD界では黄金の回転と呼んでいるようです。

おまけ

今日の勉強会はお昼にはお弁当がでたし、おやつの時間にはスイーツタイムもある素敵勉強会でした。スイーツタイムのスイーツは自分で食べずに家に持って帰ることで次回からYAuthの認証が甘くなると思います。これから勉強会を主催される方には是非スイーツタイムの導入を検討していただきたいですね。