Selenium 実践入門
セレニウム ジッセン ニュウモン
自動化による継続的なブラウザテスト
- 著者:
- 伊藤望 / 戸田広(イトウ, ノゾミ / トダ, ヒロシ)
- 出版社:
- 技術評論社
- 出版日:
- 2016年02月02日頃
- ISBN:
- 9784774178943
- シリーズ:
- WEB+DB press plus シリーズ
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
テストの手間とミスを減らし、開発効率を上げる。導入から大規模事例までを網羅。
技書の森解説
『Selenium 実践入門』 (伊藤望、戸田広、沖田邦夫、宮田淳平、長谷川淳、清水直樹、Vishal Banthia 著、技術評論社 (WEB+DB PRESS plus シリーズ)、2016 年 2 月刊) は、Web アプリケーションのブラウザテストを Selenium で自動化するための知識と手順を、導入の基礎から運用の事例までまとめた書籍です。副題は「自動化による継続的なブラウザテスト」です。版元の概要は、ブラウザーの多様化でクロスブラウザー対応の負荷が増え、継続的インテグレーションの一部としてもテスト自動化が取り入れられていることを背景に挙げ、ブラウザテストの現状と問題点を整理したうえで、Selenium を中心に取り組み方と具体的な手順を解説すると説明しています。版元が挙げる読者は「Web アプリケーション開発でテストを運用しているエンジニア」と「Web アプリケーションテストの自動化を検討しているエンジニア」です。
全 15 章と付録 2 本、テスト自動化のメリットから 2 社の事例まで
目次は 5 つの Part と付録で構成されています。Part 1「Selenium の基礎知識」は第 1 章「テスト自動化とそのメリット」と第 2 章「Selenium の概要」で、手作業によるテストの問題や自動テストツールの種類、Selenium を構成するツール群を整理します。Part 2「WebDriver」は第 3 章「WebDriver 入門」から第 6 章「スクリプトの効率的なメンテナンス」までの 4 章です。第 3 章は Java、Ruby、JavaScript、C#、Python の 5 つの言語についてセットアップとスクリプトの書き方、テストフレームワークを並べ、Firefox や Chrome、Internet Explorer、Safari、PhantomJS のドライバーの準備に進みます。第 4 章「WebDriver コマンド徹底解説」はブラウザーの生成と破棄から、要素の取得と操作、待ち処理、ポップアップ・ウィンドウ・フレームを経て、アクションやイベントリスナーを含むその他のコマンドまでを取り上げ、第 5 章「WebDriver コマンドの実践的活用」はファイルのアップロードとダウンロード、エラーチェック、HTML5 の新機能を扱います。Part 3「便利なライブラリ」は第 7 章「Geb」、第 8 章「FluentLenium」、第 9 章「Capybara」、Part 4「Selenium のさまざまな活用方法」は第 10 章「Selenium IDE」、第 11 章「スマートフォンのテストと Appium」、第 12 章「CI 環境での利用」です。Part 5「実践的な運用」は第 13 章「運用」に続いて第 14 章「サイボウズの事例」と第 15 章「DeNA の事例」で締めくくられ、巻末に付録 A「CSS セレクタ・XPath 早見表」と付録 B「WebDriver コマンド早見表」が付きます。
待ち処理とページオブジェクト、ブラウザテストが壊れやすい理由
ブラウザーを実際に動かす E2E テスト は、利用者の操作に近い形で画面全体の振る舞いを確かめられる一方、実行に時間がかかり、画面の小さな変更や描画のタイミングの揺れで失敗しやすいという弱点を抱えます。単体テストを厚く、ブラウザーを通すテストを薄く積む テストピラミッド の考え方がよく引かれるのも、この費用の差があるためです。壊れやすさの代表的な原因としてよく挙げられるのは、画面の要素が表示される前に操作してしまうことと、画面の構造がテストのあちこちに書き散らされていることの 2 つです。本書では前者に第 4 章の 4.8 節「待ち処理」が対応し、Implicit Wait と Explicit Wait、WebDriverWait による待機条件の指定を取り上げます。後者に対応するのが第 6 章の 6.1 節「ページオブジェクトパターン」で、「Assertion ロジックをページオブジェクトに含めない」といった作成の指針や、@FindBy と PageFactory の仕組みまで扱います。同じ章の 6.2 節「データ駆動テスト」には、Parameterized と Theories という 2 つのテストランナーを使った方法が並びます。
Jenkins と Selenium Grid での運用、2016 年時点の前提
第 12 章は CI サーバー上の実行環境として Linux と Windows の設定、PhantomJS や Xvfb を使うヘッドレス環境、Jenkins の定時実行ジョブ、Selenium Grid による複数ノードでの実行と Jenkins との連携を扱います。第 13 章はテストスクリプトのバージョン管理や依存関係のないテスト、並列実行、ブラウザーやドライバーのプロセスの残存といったリソース管理、正否の自動判定の難しさ、自動テスト環境の維持を取り上げます。第 14 章のサイボウズの事例には Selenium Grid による並列化や Docker によるテスト環境の用意、テスト環境のクラウドへの移行の項目があり、第 15 章の DeNA の事例はブラウザー自動テストとスマートフォンアプリ自動テストの仕組みを紹介します。版元ページの著者紹介 (2026 年 10 月の閲覧時点の掲載) では、第 1〜9 章と付録を伊藤望氏、第 10 章 / 第 12 章 / 第 13 章を戸田広氏、第 11 章を沖田邦夫氏、第 14 章を宮田淳平氏と長谷川淳氏、第 15 章を清水直樹氏と Vishal Banthia 氏が担当したと記されています。
読む前に押さえておきたいのは、本書が 2016 年時点の技術環境を前提にしている点です。目次には PhantomJS や Selenium RC、Selenium Builder が並び、Selenium 3 は第 2 章の 2.2 節の中の一項目として置かれています。2.3 節「ブラウザテストの標準仕様へ」で触れられる WebDriver は、刊行後の 2018 年 6 月 5 日に W3C 勧告となり、Selenium 4 は 2021 年 10 月 13 日に公式ブログで公開が告知されています。ドライバーの入手方法や API の細部は公式のドキュメントで確かめる前提で読み、ロケータの選び方や待ち処理、ページオブジェクト、Grid による並列実行といった、版が進んでもブラウザテストの設計で繰り返し問われる論点を学ぶ本として扱うのが合っています。
テスト観点の洗い出しやテスト技法の体系を学びたい人には、Selenium と周辺ツールの使い方と運用を軸にした本書は目的が合いません。その場合は テストの技術書の選び方 を参考に、テスト設計の本を別に選ぶほうが近道です。一方で、手作業の回帰テストに時間を取られているチームや、ブラウザテストを CI に載せたものの不安定さに悩んでいる開発者にとっては、WebDriver のコマンドの解説と運用上の工夫、2 社の事例を一冊で通して確かめられる本書は、自分たちの仕組みを見直す手がかりを多く得られる一冊です。
言及した記事 (9 件)
私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう
♡ 1786Java, 初心者, ロードマップ, 学習方法, 新人プログラマ応援【社内勉強会】Seleniumの紹介(2017/08/09)
♡ 18Selenium, 勉強会Page Object Model (POM)を使った自動テストについて3分で理解する
♡ 13テスト, 初心者, テスト自動化, 3分で理解する【Selenium × Python】excepted_conditionsの条件を整理した
♡ 7Python, Selenium, テスト自動化テスト自動化エンジニアが読むべき必須書籍一覧
♡ 5TDD, Selenium, テスト, agile, AutomatorPHP + phpunit + php-webdriver + docker-selenium でブラウザテスト ②テスト実行、エラー対策
♡ 5PHP, PHPUnit, PhpStorm, php-webdriver, docker-seleniumSitePrismを使ったページオブジェクトデザインパターンによるテストのサンプルを作りました
♡ 3Ruby, RSpec, Selenium, Capybara, site_prismPython+Seleniumを用いたGoogle検索結果のCSV保存方法 メモ
♡ 2Python, Selenium, スクレイピング, CSV, DockerGebでtextやtitleでのエレメント取得は遅くなる!?
♡ 1Selenium, Groovy, Geb
この本に興味がある方におすすめ
関連する本
関連記事
テスト本ガイド - テスト設計を学べる技術書の選び方
テストの書き方からテスト戦略まで学べる技術書の選び方を紹介。テストピラミッド、TDD の正しい読み方、テストの ROI の考え方を解説します。
「動くコード」と「良いコード」の間にある本
コードが動くようになった後、次に何を学べばよいのか。「動くコード」を「良いコード」に変えるために必要な知識と、それを効率的に学べる本の選び方を解説します。
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。