xUnit Test Patterns読書会

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

重さで肩が壊れるだとか、人を殺せるだとかさんざんな言われようの本、の読書会に行ってきた。
WEwLC読書会から継続参加がほとんどのなか、初参加が4人くらいで、計15人か16人だったか。

今日の結論としては、この厚さでかつ硬派、Unit Testに真っ向から取り組んでいてページ当たりの情報量も多い、Gerard Meszaros もう少し自重してくださいお願いしますという話になっていた。
なんとも、すごい本だ。今日サインアップした人たちは、徹夜で(!)翻訳した人もいて、参加者も気合いが入っていた。
英語では、同じような内容が http://xunitpatterns.com/ にあるらしい。
今回はプロジェクタは無し。発表者は、Wikiを朗読する人がほとんど。スケッチブックで手書きスライドを作ったのは川西さん

さて、今日の進捗は4章の途中まで。

  • Preface
  • Introduction

前書きが約30ページと結構長く、また内容が濃い。まだ他にRefactoring a Testという節もあったがこれはまた次回。

  • Chapter 1. A Breaf Tour
  • Chapter 2. Test Smells
  • Chapter 3. Goal of Test Automation
  • Chapter 4. Philosophy of Test Automation

この辺は概念的な話で、なぜやるか、という事が主題。

2章は、テストの臭い、の話

臭いは、リファクタリングで初出だが、問題のあるコードにあらわれる特徴をカタログ化したもの。
重要な特徴は、以下二つ。

  • 問題本体よりも見つけやすい
  • 問題があれば発生しがちだし、問題がなければ発生しにくい

xUTPの中では、オムツの交換を例として挙げてある。

臭いのジャンルとして、3つ挙げてあった。

  • コードの臭い
  • 振る舞いの臭い
    • 振る舞いの臭いで重要なことは、実装コードの変更時、必要以上にテストが失敗しないか、ということ。その場合は、テストの作り方にFragile Testという問題があるかもしれない。
  • プロジェクトの臭い
    • プロジェクトに問題がある場合の特徴。
    • 対処法として、トヨタ生産方式の「5つのなぜ」が挙げられていた。
      • これについては、違和感有り。対人的に5つのなぜを使うと、犯人探しやマイクロマネジメントに堕ちる可能性がある。原因指向よりも、解決指向がいい場合もある。例えばPAL(ポジティブアクションラーニング)とか。もちろん使い方次第だけど。

3章は、テスト自動化の目標について。

  • 経済的な目標としては、テストを作成することで、徐々に作業量が減ることを目標として掲げている。テストコードの作成、保守にかかる時間が減らなければ意味がない。
    • この本のパターンを使うことで前者に近づけるとは思うが、それでも100%成功ということは考えにくい。本書でも挙げてあるが、アピールとするには、ちゃんと数字をだして行くしかないだろう。
  • 上記の点がステークホルダに訴求するには難しいので、テストには手間がかからない、といった方向で訴求する事を考える

4章は、テスト自動化の哲学について

今日はさわりだけで終わったが、Outside-Inか、Inside-Outか?という部分は今日一番面白かった。開発手法が人と合わないと痛感することがあるが、ボトムアップの順番でクラス構造を作っていく(Inside-Out)か、トップダウン(Outside-In)で作っていくかということは、直面している不適合の根幹にあるように思う。とっかかりとして考えてみたい。

この読書会に参加すると元気をもらえる。仕事では心底がっかりすることも多いけど、こういった場で得られたものをいかにフィードバックするか、考える気持ちの余裕もすこしもらえる。