開発者とテスターの間にある本「初めての自動テスト」を読んだ

「初めての自動テスト」を玉川紘子さんからいただいて読みました。色んな気づきがあって面白かった!僕は今ちょうど部署全体の自動テストへの取り組みについて考えてるところだったので、頭の中の情報整理になりました。

books.rakuten.co.jp

原著の著者は、アジャイルサムライの著者のジョナサン。絵がかわいいし、会話形式で進んだりするしで、楽しみながらあっという間に読めました。あと、ジョナサンが優しい。ちょっと難しそう?ってところとかはちゃんと「今は全部分かってなくても大丈夫」とか言ってくれるの。

でも正直なところ、彼がWebシステムの自動テストを始めたい人を対象にして書いたってのは、ちょっと意外でした。アジャイル関係の本とか、その周りのプラクティスの話だったら分かるんだけど、どうしてテスター向けの自動テストの入門本なんて書いたんだろう?って。でも、読み終わってみて、なんとなくこういうことなのかなって思いました。

あ、その前に

この本は「自動テストについて全く知らないテスター」に自動テストについて教えていく物語です。僕の中のテスターは「開発者よりも自動テストに詳しい人たち」なんだけど。そういう人たちは対象じゃない。ま、タイトルからしてそりゃそうかw

開発者とテスターの間にある本

んで、なんで書いたんだろう?って話ですが、最近は僕の周りでも普通にアジャイルとかスクラムとか聞くようになってきて、自動テストも普通に取り組むようになってます。そうなると、テスターに求められるものも変わってきてるんだろうな。と思いました。

開発者とテスターは自動テストを中心にお互い協力して、より良いサービスを開発・運用していかなきゃいけない。ってなったときに、自動テストについて全然知らないんだけど勉強したいな!と思ったテスターに渡してあげるための本。という感じ。

アジャイルが普通になってきたから、次のステップとしてテスターも開発チームに巻き込みながら自動テストに取り組んでいこう、という流れは自然だなって思いました。そんな本書を、僕がオススメしたいなと思うのはこういう人たちです。

自動テストについて学びたいテスター

これはこの本のメインのターゲットですね。UIテスト、IT、UTからなる自動テストのピラミッドを、開発者とテスターでどう協力して進めていけばいいか。そもそもそれぞれがどういったテストなのか。を、実際の例やコードを交えながら丁寧に教えてくれます。

自動テストの知識の整理をしたい開発者

テスターを中心にして話が進んでいきますが、結局のところ土台にあるのは「開発者とテスターがどのように協力して自動テストを作っていくか」ということなので、自動テストについてまだあまり良く知らない、UT、IT、UIテストをどんなことに気をつけながら書いていかなければならないかがまだ良く分かっていない、という開発者にとっても得るものが沢山あります。特に1章・8章・第二部。

組織として自動テストに取り組みたいマネージャ

組織としてアジャイルに取り組みたい、自動テストに取り組んでいきたい、という中で、特に、プロデューサーからマネージャになった人や、エンジニアとして一昔前に活躍していたけど今はマネージャをやってる人など、これまで自動テストを悩みながら書いた経験のない人は読んでおくと良いなって思いました。

開発者やテスターがどんな風に自動テストへ取り組もうとしているかを理解し、それを組織としてどのようにサポートしていくべきかなどの決断をしていく際に、自動テストの良い点や難しい点について知っているととても役に立つだろうなと思います。

チームにテスターを受け入れたいチームリーダー

自分のチームにテストロールのメンバーを迎え入れたいチームリーダーは、そのテスターにとってどういう情報が必要なのか、何をどのような順番で伝えてあげればいいのか、を知ることができます。たぶん、チームリーダーやってる人は自動テストとか自分の中で自然すぎて、何から伝えればいいかが悩むだろうなって思うから。

あ、本の内容について触れてなかった

本書では、UIテスト・IT・UTそれぞれの自動テストについて、どのような目的のために、どのような方向性で実施していくか、という「考え方に重点を置いて」テストのピラミッドを中心にしてお話してくれます。具体的な実装方法や技術の詳細については対象外となっています。

第一部では、簡単な例やコードを示しながら、基礎的な部分から丁寧にひと通り説明してくれます。開発者としてはHTTPの説明やRESTの説明など「それは今更いいかな」というのもあるのでその辺は流し読みで良さそうです。

第二部では、「あぁ確かに、自動テスト書き始めたら次はこの辺で悩むよねー」って話に触れてくれてます。テストのコードも読みやすく書くとか、そのためにリファクタリングするとか、モックの使い方とか。TDDとか。

全体的に広く浅く書いてあるので、入門書としては読みやすくて良いですね。

個人的に好きなところ

  • 訳注: 確かにそれ説明してくれてたら分かりやすいなー。みたいなのがちゃんと書いてある。
  • 戦いのストーリー: ジョナサンの失敗談とかが書いてある。あるあるwwって思いながら読んでた。
  • 「自動テストの存在しない巨大なレガシーシステムを扱うときには逆ピラミッドでやってみる価値があるかもしれません」って書いてあって良かった。僕の感覚もそう。通過点なんよなってのもそう。

修了証

げっとー(∩´∀`)∩ワーイ

f:id:bufferings:20171106000216j:plain

おもしろかったー!