テスト自動化はソフトウェア開発の品質と効率を向上させるためのソリューションです。
QAエンジニアとして働く上で、テスト自動化のスキルは持っておきたいものです。しかし、未経験者がテスト自動化に取り組む際、どこから始めればよいか迷うこともあるのではないでしょうか。
そこで今回、これからテスト自動化を学びたい・スキルを高めていきたいとお考えの方におすすめしたい本を7冊 厳選しました。
テスト自動化にはいろいろなスコープがありますが、今回はE2Eテストに絞り、基礎編、スクリプティングスキル編、応用スキル編と分けてご紹介いたします。
これらの本を通じて、テスト自動化の基礎知識をしっかりと身につけ、実際のプロジェクトで活用できるスキルを習得しましょう。
テスト自動化の世界への第一歩を、このページから踏み出してみませんか?
- もくじ
1.入門者におすすめ【基本知識編】
テスト自動化のスクリプトを書く前に、まずテスト自動化の基本的なことを知っておく必要があります。
なぜなら、テスト自動化の特徴を踏まえた上で、自動化するべきか、手動テストのままにするかを判断してスクリプティングをしていかないと、テスト自動化はうまくいかないことが多いからです。
まずは、テスト自動化の入門者におすすめの本をご紹介します。
1-1 システムテスト自動化標準ガイド
本書は2部構成になっており、第1部で幅広いテスト自動化の基礎知識を解説しています。
テスト自動化のメリットやデメリットそして課題などの特徴、データドリブンやキーワードドリブンなどのスクリプティング技法、期待値と実際値の比較検証の考え方、運用保守を考えた実装、レポートにかかわるメトリクス、テスト自動化ツールの選別や組織への導入方法などです。
初心者にとって、軽く自動化を始めるにはボリュームが多いので、いくつかの章を最初に理解して、実際にスクリプティングをはじめ、慣れてきてからほかの章を含めて読み直すとよいでしょう。
第1部はISTQB Certified Tester Advanced Level Test Automation Engineering (CT-TAE) Syllabus v1.0 をおおむねカバーしています。CT-TAE資格を目指している場合、参考になります。
ただし、2024年にCT-TAE v2.0がリリースされています。その差分情報の埋め合わせはシラバスを読むことをお勧めします。
第2部ではケーススタディを解説しています。本書では、Selenium + Javaを用いた例を取り上げています。ただ、SeleniumやJavaをある程度理解した前提としているため、初心者には難しい内容かもしれません。
1-2 初めての自動化テスト―Webシステムのための自動テスト基礎
本書は、WEBアプリケーションのテスト自動化に関してかなりわかりやすく解説しています。
テストピラミッドをベースに、ユニットテスト、統合テスト、UIテストそれぞれの特徴やどのようなテストを担当するかを説明しています。
また、アンチパターンのアイスクリームコーン(逆ピラミッド)や、不安定なテスト(flaky tests)に関しても触れており、各テストレイヤーでバランスの良いテストを組み立てていく考え方の参考になります。
それぞれの自動化の説明で、Rubyを用いて解説しています。ただ、Rubyを用いてテストスクリプトを学ぶ観点ではないため、スクリプティングスキルを目的としている場合、その目的には合わないかもしれません。
テストファーストに関しても触れられており、テスト駆動開発(TDD)を例に解説しています。
ただし、E2Eテスト自動化とこのテストファーストは相性が良くないため、概念だけを理解して軽く読むくらいでも良いでしょう。
2.実装に役立つ!【スクリプティングスキル編】
続いて、E2Eテスト自動化を実際に実装するためのスキルを学べる書籍を紹介します。
2-1 Seleniumデザインパターン & ベストプラクティス
SeleniumとRubyを用いてWEBアプリケーションのE2Eテスト自動化を学ぶことができます。
RubyにCucumberのフレームワークを組み合わせることで、ふるまい駆動開発(BDD)をサポートする方法に関しても触れています。
スクリプティングだけではなく、保守性を高める技法(最適なロケーター取得、データドリブン、Page Object 等)やテストを安定させる方法などを解説しています。
2-2 [入門]Webフロントエンド E2E テスト
E2Eテストの自動化ツールであるPlaywrightを使って、自動テストを学ぶ初心者向けの本です。
Playwrightのセットアップからスクリプティング、そして実行までの基本的な操作方法をハンズオン形式で解説しています。
よく使う関数の説明と例をもとに具体的な使い方を解説しているため、初心者には理解しやすい構成になっています。
ただし、例題がそこまで多くないため、自分で例題をさがして(例えば、テスト自動化練習サイト HOTEL PLANISPHERE - テスト自動化練習サイト (testplanisphere.dev))多くのスクリプトを書いてより深く理解すると、スキルの習得が早くなります。
2-3 実践 Appium
iOS、Androidのモバイルアプリケーションのテスト自動化に使われるテストツールAppiumの概念から構築、操作方法が解説されています。
本書ではJavaを用いてAppiumと連携してスクリプティングを学ぶことができます。
尚、本書ではJavaを扱っていますが、初めてモバイルアプリケーションのテスト自動化をする人にとって、Appiumを学ぶにはとても参考になります。
また、基本的にJavaに提供されるAppiumライブラリは、ほかの言語(Python、Ruby、Robot Framework)で共通なので、自身の得意な言語に置き換えて学ぶこともできます。
3.継続的に実行するための【応用スキル編】
E2Eテストは継続的に実行することでおおきな価値が生まれます。
継続的に実行するには、CD/CDの考え方や自動化スクリプトの保守・運用を効率的にするスキルがあるとよいでしょう。
テスト自動化の基本を学び、スクリプティングできるようになってから読むべき本を紹介します。
3-1 A Journey through Test Automation Patterns
A Journey through Test Automation Patterns: One team's adventures with the Test Automation Patterns wiki
英語版 Seretta Gamba (著), Dorothy Graham (著)
本書は、テスト自動化の課題や課題に対しての一般的な解決方法をまとめたものです。
第3章では、課題をプロセス、管理、設計、実行の4つカテゴリに分類して詳細に説明しています。
その課題に対する解決策を第4章で詳細に説明しています。
各カテゴリから例を挙げると以下のようなものが説明されています。
- プロセスの課題:BUGGY SCRIPTS- 自動化スクリプトが十分にテストされていないために発生する問題。
- 管理の課題:UNREALISTIC EXPECTATIONS - テスト自動化ができることとできなことがあり、過度な期待を持つ問題。
- 設計の課題:BRITTLE SCRIPTS - ソフトウェアの小さな仕様変更に対して自動化スクリプトを修正・再作成が発生する問題
- 実行の課題:FLAKY TESTS - 仕様、かつ自動化スクリプトを変更していないのに、自動化テストがランダムに成功または失敗する問題。
このように、テスト自動化の実装から運用の中でよく直面するさまざまな課題の説明と、それに対するいくつかの解決策を説明しているため、自動化の取り組む人にとってとても参考になるバイブルです。
3-2 継続的デリバリー
本書はソフトウェア開発における継続的デリバリー(Continuous Delivery, CD)をテーマに、ソフトウェア開発のプロセス効率化と品質を向上させる方法論を提供しています。
デプロイメントパイプラインには、リグレッションテストや受入テストを含むテストが組み込まれています。効率的かつ継続的にパイプラインを実行するために、E2Eテスト自動化の設計技法が説明されています。
例えば、テストスクリプトの保守の観点や、テスト実行(テストデータ)依存性の観点、パイプラインの実行時間を短くする観点など、繰り返し実行されるテストを効率的に運用する視点を学ぶことができます
まとめ
今回は、E2Eテスト自動化を学ぶ上でおすすめの本を7つご紹介しました。
E2Eテストの自動化は、テストプロセスの改善や効率化、コスト削減につながるため、取り入れたいと考えている方も多いのではないでしょうか。
また、テスト自動化に関する知識・経験は今後さらにQAエンジニアに求められてくるスキルの一つになるので、ぜひこの機会に今回ご紹介した本を読んでテスト自動化の知識を深めていってください。