レポート

進化するSeleniumとテスト自動化 ―「第3回日本Seleniumユーザーコミュニティ勉強会」レポート

この記事を読むのに必要な時間:およそ 10 分

『Selenium実践入門』で学ぶテスト自動化の世界(伊藤望氏)

「ずっと手元に置きたい1冊」⁠幅広いトピックを網羅」という方針で書かれた『Selenium実践入門』を著者の立場から紹介していただきました。

Seleniumテスト自動化の世界

ひと昔前と最近の比較

2008年ごろ,CI(Continuous Integration,継続的インテグレーション)ツールの利用はまだまだ少なく,リリースサイクルを早くするという認識が広まっていない状況でした。また当時は商用ツールの存在感が大きく,Selenium RC/IDEでは安定運用が難しい状況でした。自動テストが開発プロセスからも分離されているのが普通でした。

最近ではSeleniumのシェアが商用ツールを上回りました。CIツールがメジャーになり,リリースサイクルを短くしなきゃいけないよねと言う人も増えてきました。Selenium WebDriverになってかなり安定してきて,ユーザー企業の事例発信も多くなってきました。開発者が使うようなエディタでテストコードを書いてCIツールで実行・確認するなど,開発プロセスと密接に関わってくるのが主流になるかと思います。

『Selenium実践入門』の立ち位置

そういった中で本書は,WebDriverを使ってエンジニアがプログラムを書いて自動化するというところを主眼に置いています。また,Selenium単体ではなく,さまざまなツールと組み合わせて使うというのが一般的になっているので,ツールの利活用や運用,事例など,実践的な内容は取り入れていこうという形になっています。

『Selenium実践入門』ってどんな本?

読者が初心者を脱した後でもずっと手元に置きたい1冊になるようにとこだわって執筆しました。また,Seleniumと一緒に使うツールも増えていて,それらもSeleniumの体系の一部だろうと位置づけて幅広いトピックを網羅しています。

ずっと手元に置きたい1冊

本書では,たとえば公式なWikiやAPIドキュメントを見てもよくわからないノウハウをフォローしています。また,ややこしいマイナー機能も挙動を調べてできるだけ解説しました。また,うろ覚え文法にはチートシートだろうということで,自分でもすぐ出てこなくて調べたくなるような文法を巻末の一覧にまとめました。

そして,実運用に役立つコンテンツということで,運用時に気をつけること(第13章)や,現場での役割分担や課題をまとめた事例(第14章・第15章)も掲載しました。

幅広いトピックを網羅

GebFluentLeniumCapybaraといった最近メジャーとなってきたライブラリについてもページ数を割いて解説しています。モバイルでは実機とエミュレータでのテストをしています。CIツールとの連携として,Jenkinsの設定やSelenium Grid+Jenkinsの分散実行というトピックもあります。

『Selenium実践入門』各章ピックアップ

続いて,⁠Selenium実践入門』の各章をピックアップします。時間の関係上,全部の章をご紹介することはできませんが,今回ご紹介できない章についても,ぜひ本書を手にとってご覧くださればと思います。

第1章「テスト自動化とそのメリット」

意外と類書には載っていない話題です。テスト技術者でない方にも読んでいただき,テスト自動化のメリットや必要性の理解につなげてくださればという思いで書きました。

第4章「WebDriverコマンド徹底解説」

文字通り徹底解説ということで,ブラウザの生成や要素の取得,ポップアップの操作といったWebDriverの各コマンドを使い方を丁寧に解説しました。本書で一番ボリュームのある章です。

第5章「WebDriverコマンドの実践的活用」

ファイルのアップロードやダウンロードを始めとした,実際に現場で遭遇するであろうさまざまな課題に対して,普段はあまり使わないWebDriverコマンドや周辺ツールを使って解決する方法を説明しています。

第7章「Geb」

Javaの開発者が,テストくらいはGroovyとかGradleとか使いたいというケースを想定して,セットアップからGroovyの文法まで解説しています。Gebを扱った本は世界初かと思いましたが,洋書で他にも数冊ありました。

第8章「FluentLenium」

割とGebに近いテスティングフレームワークですが,こちらは比較的マイナーだと思います。さすがにFluentLeniumを扱った本は世界初だろうと思っていましたが,やはり他にもありました。

第9章「Capybara」

Rubyのラッパーライブラリですが,厳密にはラッパーではなく,内部のライブラリはSelenium以外のものに差し替えることができます。このCapybaraについても解説をしています。

第12章「CI環境での利用」

Jenkinsを利用したジョブのセットアップや,マスタ・スレーブ環境の構築などを解説しています。最近はTravis CIやCircleCIが使われるケースも多いですが,そのあたりは私のブログで扱っています。

第14章「サイボウズの事例」

開発プロセスにおける各段階でのテスト活動やQAと開発の役割分担,また本格運用時の課題など,よくまとめられています。

第15章「DeNAの事例」

自動化をメインで取り組むチームの事例で,こちらはブラウザテストやネイティブアプリのテストを扱っています。いろいろな工夫が出ていますので,読み応えがあります。

最後に

『Selenium実践入門』が,みなさんの手元にずっと置きたい1冊になれば幸いです。

「Selenium実践入門」で学ぶテスト自動化の世界

著者プロフィール

河原田政典(かわらだまさのり)

株式会社ベリサーブ所属。ソフトウェア開発に携わってきた経験を活かしてテスト自動化を担当。現在まさにSeleniumを扱っている。書店の技術書コーナーが大好きで,「読んだ=役立てられる」とは限らないと自戒しつつも蔵書は増える一方。本棚がいつ満杯になるか心配する日々を過ごしている。

コメント

コメントの記入