自分は組織の一人目(かつ一人だけの)QAとして働いていて、テストは基本的に開発者が書いて・実行している状態です。 たまに自分もテストケースレビューしたりしますが、どちらかといえば「開発者が効果的にテストをするために相談にのったり一緒に考えたりする」ことをしています。

そういう活動をしていると、「ざっくりは知っているけど、手を動かしてないから細かいところまで知らないな」というポイントに出くわしたり、あとは「もっと開発側の知見が要るよな」と感じることも多々ありまして。このへんは開発者経由せずキャリアの最初からQAやテストをやってる人特有の悩みかもしれません。

そのへん補いたいなと思って、『フロントエンド開発のためのテスト入門』を読みました。

なぜかこの本Amazonとかでもよく電子版がセールになっているので、「安いときにとりあえず買っておいた」という人も多そう。自分は紙で買いました。

書籍の概要

タイトルの通り、フロントエンドの開発者に向けて、どう自動テスト書くのかなどを解説した本です。

章目次は以下。

  • 第1章 テストの目的と障壁
  • 第2章 テスト手法とテスト戦略
  • 第3章 はじめの単体テスト
  • 第4章 モック
  • 第5章 UIコンポーネントテスト
  • 第6章 カバレッジレポートの読み方
  • 第7章 Webアプリケーション結合テスト
  • 第8章 UIコンポーネントエクスプローラー
  • 第9章 ビジュアルリグレッションテスト
  • 第10章 E2E テスト

目次を見てわかるように、フロントエンド開発におけるテストを幅広く扱っています。

QA的になじみのあるE2Eテストをはじめ、単体テストから結合、UIも含めて、全体像がキャッチできるようになっています。

個人的に気に入ったポイント

全体像を説明したうえで解説している

たぶんQAやテスト界隈の人が開発者向けのテスト本を読むと、テストの位置づけであったり役割みたいなものが変な書き方されていてモヤッたことがあると思います。

本書に関しては、最初にテストの目的と障壁、という章があるように、

  • なぜテストを書くべきなのか
  • (書くべきなのに)なぜ書けないのか

から始まって、第2章ではテストレベル(っぽいもの)とテストタイプ(っぽいもの)を本書中の区分として導入したうえで説明されています。

このへん非常に好感を持てました。

フロントエンドテストの全体像を最初に見渡してから、各テストの詳細を説明していく、という流れになっているので、ピンポイントで特定のテストレベル・テストタイプに意識をとられず、全体としてどう問題をキャッチするのかという考え方に自然と導かれる印象でした。

UIコンポーネントテスト

普段自分はあまり「UIコンポーネントテスト」という言い方をしなかったのですが、単体テストと称して画面要素の手動テストをするよりもUIコンポーネントテストと表現したほうが適切ですね。これは積極的に使っていこうと思いました。

UIコンポーネントテストをはじめ、上の全体像の話にも繋がりますが、この本を輪読とかしてチーム皆で読むことで、テストの区分や呼称が揃う点もGoodですね。QAやテストエンジニアがいない、開発者だけでテストしているチームでは特に、そういった用語と意味のズレを詰めていくのが大事なので。

各種テストの具体的なやり方が書いてある

あとはこの本のメイン部分ですが、各種テストについて実際にどのツール・ライブラリを使ってどう実現するか、が解説されているので、実際に手を動かして学ぶことができます。

微妙かも、と思ったポイント

正直あまりなかったですが、第2章のタイトルに「テスト戦略」というワードがあってけっこうワクワクしながら読んだものの、本書におけるテスト戦略(のモデル)はテストピラミッドやテスティングトロフィーのことでした。

完全に趣味の問題ですがテストピラミッド等を個人的にテスト戦略とは呼ばないので、その辺のズレくらいですね。

逆に言うとそのくらいの細かい点、しかも好みの問題でひっかかったくらいで、全体通して開発者に読んで欲しいいい本だなーと思って読みました。

まとめ

QAにとっては、開発者の視点でさまざまな自動テストを知る(&実際に手を動かして「なるほどこういうものなのね」を体験できる)という意味で有用だと感じました。

また、メインターゲットである開発者にとってももちろん良さそうです。

自分も社内で輪読をやってみようかと思います。