僕はソフトウェア開発の現場で働いているが、この1年で「自動化」という言葉を何度も耳にした。運用や監視の自動化、テストの自動化、インフラの自動化・・・。しかし、その言葉の意味を本当に理解している人は何人いたのだろうか?
変化するテストへの期待
これまで、テスターには以下のような役割が求められていた。
- テストケース設計やその実行
- テストスコープの決定
- 品質メトリクスの確認
しかし、近年では自動化の波がテストの領域にまで広がり、Seleniumのような技術の登場によって、より自動化が身近になってきたのだと思う。Selenium WebDriverをテスターが使う場合、簡単なプログラミング知識まで求められるため、「自動化エンジニア」、「テストプログラマ」のような職業も登場してきているようだ。
僕の周りでも自動化の波がやってきている。
実際に開発プロセスの中に、「品質を作りこむ」アクティビティをとりこみ、QAの役割と責任を明確に定義し、実行とふりかえりによる改善サイクルをまわしながら、組織的に開発スピードとビジネス価値を高めようとしているマネージャもいれば、インフラレベルからの自動化に取り組み、「品質を作りこむ」範囲を格段に広げようとしているエンジニアもいる。
一方で、ユニットテストのようにカバレッジを上げることを意識しすぎて、メンテできないコードを大量に残したエンジニアもいれば、マニュアルテストから抜け出せず、非効率なテストを大量に作成し、実行するだけのQAエンジニアもいる。
この違いはなんだろうか?
これは僕の想像でしかないが、ひとつは時代の波についてこれないQAエンジニアが多くいること。「アジャイル」や「DepOps」の登場で、否応がなく自動化が求められる。手動でやるより機械がやるほうが「はやい」からだ。プログラマにCIの知識が求められたように、テストエンジニアリングにも「はやい」ための知識が求められ、これまでの「QA」の範囲を超える価値が求められるようになったのではないか?
もうひとつは、上記のような、QAに求められる価値が新しいため、その答えを見つけきれてない部分もあるのだと思う。たとえば、何を自動化すればいいか? どう自動化すればいいか? どこまで自動化すればいいのか? メトリクスはどうなるのか? 早期にこういったチャレンジに取り組んでいたQAエンジニアはすでにある程度の答えを持っているが、乗り遅れた人を見ていると、これまでのやりかたに固執して守ろうとする意識を感じるときもある。
Seleniumによるブラウザテストの自動化
本書『Selenium実践入門』は、Seleniumを使ってブラウザテストを実践したい人のための入門書であり指南書だ。
世の中にはWebベースのサービスがたくさんあり、ブラウザテストの自動化は必然となってきている。そういったニーズに答えようと切磋琢磨する人にとっては、ツールのセットアップやAPIの詳細が書かれている部分は退屈するかもしれない。
しかし、僕も経験したが、WebDriverの細かい使い方を調べるのはとても大変だ。「第3章 WebDriver入門」のように、コマンドレベルでちょうどよくまとめられた本書は、著者たちの狙い通り、エンジニアの机に「ちょっと置いておきたい存在」となるに違いない。
そして、現場から強く求められているであろう「ブラウザテストの自動化」という新しいスキルを学びたい人にもぴったりだ。「第1章 テスト自動化とそのメリット」では、自動テストツールの存在意義が簡潔にまとめられており、「第6章 スクリプトの効率的なメンテナンス」や「第13章 運用」では、メンテナンスの重要性と運用のポイントを知ることになるだろう。「第11章 スマートフォンのテストとAppium」ではスマホ実機をつかったテストまで理解できる。
『Selenium実践入門』は、読み応えのある一冊だった。自分にとってはこれまでのブラウザテスト自動化経験(少しだが)の整理にもなり、新しいツールの紹介によって最近のトレンドも感じられた。マネージャの仕事柄、テストプログラマの職業やロール、責任範囲など、エンジニアのキャリアや組織的なサポートを考えるのも面白そうだ。
最後に、この本を送ってくださった技術評論社さまに感謝いたします。予告なしに「献本です!」って届いたので正直驚いた。過去に「出版社なんて潰れるに決まってるやろって話や」なんて書いていたので、「爆弾とか入ってたらどうしよう・・・」とビクビクしたのは内緒だ。これからは心を入れ替えて技術評論社さまを応援しております。
2016/02/02 – Amazonレビューにも転載しました。