Facebook x

ジャンル

E2Eテスト自動化のスキルアップに役立つ!おすすめ本【厳選7冊】
テスト自動化 2024.10.23
x hatenabookmark
6

E2Eテスト自動化のスキルアップに役立つ!おすすめ本【厳選7冊】

執筆: 江村 禎昭

バルテス・ホールディングス株式会社 ソリューション事業推進部 首席研究員

テスト自動化はソフトウェア開発の品質と効率を向上させるためのソリューションです。

QAエンジニアとして働く上で、テスト自動化のスキルは持っておきたいものです。しかし、未経験者がテスト自動化に取り組む際、どこから始めればよいか迷うこともあるのではないでしょうか。

そこで今回、これからテスト自動化を学びたい・スキルを高めていきたいとお考えの方におすすめしたい本を7冊 厳選しました。

テスト自動化にはいろいろなスコープがありますが、今回はE2Eテストに絞り、基礎編、スクリプティングスキル編、応用スキル編と分けてご紹介いたします。

これらの本を通じて、テスト自動化の基礎知識をしっかりと身につけ、実際のプロジェクトで活用できるスキルを習得しましょう。

テスト自動化の世界への第一歩を、このページから踏み出してみませんか?

もくじ
  1. 入門者におすすめ【基本知識編】
    1. システムテスト自動化標準ガイド
    2. 初めての自動化テスト―Webシステムのための自動テスト基礎
  2. 実装に役立つ!【スクリプティングスキル編】
    1. Seleniumデザインパターン & ベストプラクティス
    2. [入門]Webフロントエンド E2E テスト
    3. 実践 Appium
  3. 継続的に実行するための【応用スキル編】
    1. A Journey through Test Automation Patterns
    2. 継続的デリバリー
  4. まとめ

1.入門者におすすめ【基本知識編】

テスト自動化のスクリプトを書く前に、まずテスト自動化の基本的なことを知っておく必要があります。

なぜなら、テスト自動化の特徴を踏まえた上で、自動化するべきか、手動テストのままにするかを判断してスクリプティングをしていかないと、テスト自動化はうまくいかないことが多いからです。

まずは、テスト自動化の入門者におすすめの本をご紹介します。

基礎知識編.png

1-1 システムテスト自動化標準ガイド

システムテスト自動化標準ガイド

Mark Fewster (著), Dorothy Graham (著), テスト自動化研究会 (翻訳)

本書は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システムのための自動テスト基礎

Jonathan Rasmusson (著), 玉川 紘子 (翻訳)

本書は、WEBアプリケーションのテスト自動化に関してかなりわかりやすく解説しています。

テストピラミッドをベースに、ユニットテスト、統合テスト、UIテストそれぞれの特徴やどのようなテストを担当するかを説明しています。

また、アンチパターンのアイスクリームコーン(逆ピラミッド)や、不安定なテスト(flaky tests)に関しても触れており、各テストレイヤーでバランスの良いテストを組み立てていく考え方の参考になります。

それぞれの自動化の説明で、Rubyを用いて解説しています。ただ、Rubyを用いてテストスクリプトを学ぶ観点ではないため、スクリプティングスキルを目的としている場合、その目的には合わないかもしれません。

テストファーストに関しても触れられており、テスト駆動開発(TDD)を例に解説しています。

ただし、E2Eテスト自動化とこのテストファーストは相性が良くないため、概念だけを理解して軽く読むくらいでも良いでしょう。

2.実装に役立つ!【スクリプティングスキル編】

続いて、E2Eテスト自動化を実際に実装するためのスキルを学べる書籍を紹介します。

スクリプティングスキル編.png

2-1 Seleniumデザインパターン & ベストプラクティス

Seleniumデザインパターン & ベストプラクティス

Dima Kovalenko (著), 玉川 紘子 (監修), 太田 健一郎 (監修), 笹井 崇司 (翻訳)

SeleniumとRubyを用いてWEBアプリケーションのE2Eテスト自動化を学ぶことができます。

RubyにCucumberのフレームワークを組み合わせることで、ふるまい駆動開発(BDD)をサポートする方法に関しても触れています。

スクリプティングだけではなく、保守性を高める技法(最適なロケーター取得、データドリブン、Page Object 等)やテストを安定させる方法などを解説しています。

2-2 [入門]Webフロントエンド E2E テスト

[入門]Webフロントエンド E2E テスト――PlaywrightによるWebアプリの自動テストから良いテストの書き方まで (エンジニア選書)

渋川 よしき (著), 武田 大輝 (著), 枇榔 晃裕 (著), 木戸 俊輔 (著), 藤戸 四恩 (著), 小澤 泰河 (著)

E2Eテストの自動化ツールであるPlaywrightを使って、自動テストを学ぶ初心者向けの本です。

Playwrightのセットアップからスクリプティング、そして実行までの基本的な操作方法をハンズオン形式で解説しています。

よく使う関数の説明と例をもとに具体的な使い方を解説しているため、初心者には理解しやすい構成になっています。

ただし、例題がそこまで多くないため、自分で例題をさがして(例えば、テスト自動化練習サイト HOTEL PLANISPHERE - テスト自動化練習サイト (testplanisphere.dev))多くのスクリプトを書いてより深く理解すると、スキルの習得が早くなります。

2-3 実践 Appium

実践 Appium

Manoj Hans (著), 太田 健一郎 (監修), 児島 修 (翻訳)

iOS、Androidのモバイルアプリケーションのテスト自動化に使われるテストツールAppiumの概念から構築、操作方法が解説されています。

本書ではJavaを用いてAppiumと連携してスクリプティングを学ぶことができます。

尚、本書ではJavaを扱っていますが、初めてモバイルアプリケーションのテスト自動化をする人にとって、Appiumを学ぶにはとても参考になります。

また、基本的にJavaに提供されるAppiumライブラリは、ほかの言語(Python、Ruby、Robot Framework)で共通なので、自身の得意な言語に置き換えて学ぶこともできます。

3.継続的に実行するための【応用スキル編】

E2Eテストは継続的に実行することでおおきな価値が生まれます。

継続的に実行するには、CD/CDの考え方や自動化スクリプトの保守・運用を効率的にするスキルがあるとよいでしょう。

テスト自動化の基本を学び、スクリプティングできるようになってから読むべき本を紹介します。

応用スキル編.png

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 継続的デリバリー

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

Jez Humble (著), David Farley(著), 和智 右桂 (著), 高木 正弘 (著)

本書はソフトウェア開発における継続的デリバリー(Continuous Delivery, CD)をテーマに、ソフトウェア開発のプロセス効率化と品質を向上させる方法論を提供しています。

デプロイメントパイプラインには、リグレッションテストや受入テストを含むテストが組み込まれています。効率的かつ継続的にパイプラインを実行するために、E2Eテスト自動化の設計技法が説明されています。

例えば、テストスクリプトの保守の観点や、テスト実行(テストデータ)依存性の観点、パイプラインの実行時間を短くする観点など、繰り返し実行されるテストを効率的に運用する視点を学ぶことができます

まとめ

今回は、E2Eテスト自動化を学ぶ上でおすすめの本を7つご紹介しました。

E2Eテストの自動化は、テストプロセスの改善や効率化、コスト削減につながるため、取り入れたいと考えている方も多いのではないでしょうか。

また、テスト自動化に関する知識・経験は今後さらにQAエンジニアに求められてくるスキルの一つになるので、ぜひこの機会に今回ご紹介した本を読んでテスト自動化の知識を深めていってください。

テスト自動化
x hatenabookmark
6

執筆: 江村 禎昭

バルテス・ホールディングス株式会社 ソリューション事業推進部 首席研究員

石川県金沢市生まれ。趣味は富士山登山、ほぼフルマラソン。20年以上インターネットサービス会社に勤め、アプリケーションエンジニア、プロダクトマネージャ、テストエンジニアと様々なロールを担当してきた。バルテス・ホールディングスに入社後、テスト自動化導入のコンサルティングや、テスト自動化ツールであるT-DASHの導入支援を担当する。Jasst Hokkaido, Tohoku, Tokyo 等で講演