[社内勉強会レポート] 『テスト駆動開発』読書勉強会 #7

2017.12.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんぬづは、年明けからiOSエンジニアに戻りそうな田中です。ですが気づけば半年ほど仕事でiOSを書いていないことに気づいてしまったので、冬休みで感覚を取り戻そうと思います( ˘ω˘)

さて本題に入っていきましょう。

この会の趣旨

この会の趣旨については、第一回のまとめをご覧ください。

それではまとめていきます。

17章 「多国通貨の全体振り返り」

概要

第一部の内容を振り返る章。

話し合われた内容

  •  「私は「完了」という言葉を信じていない。」
    • こういうことを言うならば、第一部のコードももうちょっと一区切りつくところで終わって欲しかった
  • 「こう動いてはならない」、「こう動かないはずだ」に対して動いてしまうとヤバそう。
    • 「こう動くはずだ」に対して動かない時よりも、何が悪かったのか原因を探すのが困難なことがままある
    • ↑でもこういうことをテスト段階で気付けると良いよね。サービスインしてから探すとより見つけにくい
  • メタファーはTDDに限った話ではなさそう。ここについてはどちらかというとDDDの考えを取り入れた方が良さそう
  • 欠陥挿入が面白い。カッチリテストをしていればコケるはず、ということが確認できる
  • 「テストを増やすことによってすべての入力の組み合わせをカバーするのではなく、同じテストのままで、コードを減らすことによってより多くの組み合わせをカバーする」という言葉には共感した。ここがリファクタリングのきっかけになる点だと思った
  • カバレッジについて言及されているが、MoneyのtoStringメソッドがデバッグ用のものだからテストする必要がない、というように「何をテストすべきなのか」については考える必要がある
  • そもそもカバレッジというものの定義が曖昧、触れたことがないのでわからない(田中)
    • テストカバレッジにはいくつか種類があるので、あとで学習する
    • branch cavarage
    • statement cavarage
    • condition cavarage

第一部を読んでの振り返り

概要

第一部を読んだこの勉強会のメンバーで話し合ったことをまとめる。

話し合われた内容

  • 一度やったことを少なくとも2回は繰り返し取り扱ってくれる作りになっていて、学習によかった
  • 細かいことに言及しないぶん、さらっと読めて良いというメリットもありつつ、ここの説明は省くのかと筆者の意図を考えなければいけないようなデメリットもあった(意図を読み取るのも読書会としては楽しかった)

まとめ

ここまでで第一部を読み終わりました。

第一部では多国通貨という題材を使って、TDDとはなにか、どのようにやっていけばよいかということが丁寧に解説されました。実際にコードが変化する様子が追いやすい作りになっているところと、前に取り扱われた内容が後になって反復的に出てくるところが、実に良い本だと思いました。はしはしに使われる説明がとてもしっくりきました。オススメします、まだ読んでいない方はぜひ読んでみてください。

次回からは間をスキップして付録Cを読んでいきます。

関連