フューチャー技術ブログ

[入門]Webフロントエンド E2E テスト を出版しました

先日(2024年6月19日)、技術評論社さまから「[入門]Webフロントエンド E2E テスト ──PlaywrightによるWebアプリの自動テストから良いテストの書き方まで」をフューチャーの有志と共に出版いたしました。
本書はエンジニア選書と言われるシリーズの1つとなります。

既にご購入いただいた方、誠にありがとうございます。
購入を検討されている方、詳しくはこちらをご覧ください。

https://gihyo.jp/book/2024/978-4-297-14220-9

書籍の概要

E2Eテストをこれから導入しようとしている方を主な対象とし、必要なノウハウを詰め込んだ書籍となっています。本書では、E2Eテストを学ぶ際の実装手段(ツール)として、近年人気が急上昇しているPlaywrightを中心に据えました。

章の構成は次のようになっています。

  • 第1章 Playwrightハンズオン
  • 第2章 E2Eテストツールの紹介
  • 第3章 Playwrightのテスト用ツールセット(1)ロケーター
  • 第4章 Playwrightのテスト用ツールセット(2)ナビゲーション,アクション,マッチャー
  • 第5章 テストコードの組み立て方
  • 第6章 実践的なテクニック
  • 第7章 ソフトウェアテストに向き合う心構え
  • 第8章 E2Eの枠を超えたPlaywrightの応用例
  • 第9章 Web APIのテスト
  • 第10章 E2Eテストの実戦投入
  • 第11章 Playwrightの内部構造

「習うより慣れろ」の精神のもと、前半部は主にPlaywrightを触りながらE2Eテストを体感する章、後半部は実際の現場でE2Eテストを導入するにあたっての心構えや勘所を学べる章となっています。
CypressやNightwatchなど、Playwright以外のツールを採用している方でも、第5章、第7章、第10章、第11章をはじめとして、E2Eテストに関わる上で汎用的に役立つ内容が含まれています。

E2Eテストを初めて学ぶ方は、ぜひ、実際にご自身のPCでテストを書いて動かしながらこの書籍を読み進めていただくと、効果的に学習できると思います。

執筆の経緯

振り返ると、執筆の出発点となったのは、著者の一人である枇榔さんが弊社の技術ブログにてCypressの記事を綴ったことに遡ります。これは今から4年前、2020年の出来事です。
そこからCypressを中心にE2Eテストについての外部発信を継続的に行なっていたところ、技術評論社の方からご連絡をいただき、月刊誌「Software Design」の2022年1月号から4月号にかけてCypressの短期連載を行う運びとなりました。
そして連載終了後、同じく技術評論社の方から書籍の執筆についてお声がけをいただき、メンバーを追加して6名で執筆がスタートしました。

このような流れで始まった企画なので、当初はCypressを中心とした企画として予定をしていました。しかしPlaywrightの成長の勢いはすごく、途中でCypressとPlaywrightの両方を紹介する企画に一度ピボットし、最終的にはPlaywrightのみを扱う企画になりました。

今回、通常より多い6名で執筆にあたったのは、社内にE2Eテストの自動化を実践しているメンバーが数多くいたため、より多くの実践的な知見を盛り込んだ書籍にできると考えたからです。
私自身はというと、当時はFlutterにおけるGolden TestやIntegration Testの自動化に取り組んでいましたが、スコープの広いテストの自動化に強い興味を持っていたため、手を上げて執筆に関わらせていただきました。

技術ブログでの発信がこのような大きな活動につながることは非常にありがたいことです。これからも、地道な努力と継続的な発信を続けていきたいという想いが一層強くなりました。

執筆を終えて感じたこと

私自身、技術ブログの執筆やSoftware Designへの寄稿など、技術文書を書くことにはある程度慣れていましたが、書籍を出版するという経験は初めてでした。
執筆を一通り終え、実際の本を手にして抱いた感想としては、「また何か本を書きたい」という非常にポジティブなものでした。その理由をいくつか紹介したいと思います。

完成までに十分な労力と時間を費やすことができた

1つ目は「完成までに十分な労力と時間を費やすことができた」ことです。
執筆作業自体は2023年の3月頃から始まったので、(本業務の合間を縫って執筆活動を行うという前提でも)時間的猶予が十分にありました。
そのため、書籍に盛り込む内容の選定から、文章の細部に至るまで、納得いくまでこだわれたことが大きな満足度につながっています。

非常に多くの有識者によるレビューを頂くことができた

2つ目は「非常に多くの有識者によるレビューを頂くことができた」ことです。
書籍の内容については、著者同士でのレビューだけでなく、著者以外の社内の有志によるレビュー、社外の有識者の方々によるレビュー、そして編集者の方によるレビューと、何段階にもわたってレビューを実施させていただきました。
自身がこだわりを持って書いた文章を多くの方にレビューしていただく経験は初めてで、非常に学びのあるフィードバックを数多く頂戴しました。

社外の有識者としては、テスト駆動開発の第一人者である和田卓人さん(@t_wada)、組み込み系システムのテスターとしてテスト系イベントで発表をよくされている深谷美和さん(@miwa719)、太田健一郎さん、そしてソフトウェア教育にも造詣の深い、株式会社Renewerの堀内亮平さんにレビューをいただきました。
単なる言い回しの指摘や誤字脱字の修正にとどまらず、このような内容も伝えるべきだという指摘まで幅広くコメントをいただき、書籍の品質が大きく向上しました。改めて深く感謝申し上げます。

そして、本書のきっかけとなったSoftware Designでの短期連載から、本書の編集まで一貫してお付き合いいただいた、技術評論社の中田瑛人さん。
先述の通り企画がCypressからPlaywrightにピボットしたこともあり、執筆に想定以上の時間を要する形になりましたが、最後まで伴奏していただき良い本になる手助けを数多くいただきました。深く感謝申し上げます。

最後のレビュアは、読者の皆様となります。どのようなレビューでも真摯に受け止め、糧にさせていただきたいと思っておりますので、忌憚なきご意見をお待ちしております。

経験豊富なベテラン執筆者と共に進めることができた

3つ目は「執筆経験の豊富な澁川さんの元で、執筆活動を進められた」ことです。
技術的な内容の正確さや豊富さはもちろん、「読み物」として文章を構築していく点において、コラムの入れ方であったり、注釈の入れ方であったり、文章が淡白にならないような工夫をはじめ、普段自分があまり意識しない部分で多くの学びがありました。
出版に関わるメンバーを増やすという裏ミッションのもと、社外の有識者の方々へのレビュー依頼や出版社の方とのやりとりをはじめ全体をリードしてくださり、非常に心強く執筆を進めることができました。

改訂版に向けて

初版の原稿には間に合わず、入れ込むことができなかったネタもいくつかあります。
また、社内では本書籍を用いて勉強会を開催する動きもあり、実際にやってみると、追加のネタ(例えば、メールで送られてくるワンタイムパスコードを入力するケースのテスト方法など)が出てきたりしています。

初版で書ききれなかったネタは技術ブログとして適宜公開しつつ、改訂版を出すタイミングがあればそこで取り入れる方針です。

WebフロントエンドのE2Eテストの世界は進化が早く、新しいツールやベストプラクティスが次々と登場しています。初版の売上が好調であれば、さらなる内容の充実を図り、改訂版としてお届けできればと願っております。

皆様のご支援とご愛顧が、私たちの次なるステップに繋がる大きな力となりますので、引き続きよろしくお願いいたします。