Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

AI、サーバーレス、Dockerなど、Seleniumテストを安定化・スケールさせるためのヒントとは?【SeleniumConf Chicago】

「SeleniumConf Chicago」参加レポート(1)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 10月18日から19日にかけて、アメリカ・シカゴでSeleniumConf Chicagoが開催されました。600人を超える開発者が集い、Selenium/Appiumを活用した自動テストについて20以上のセッションが行われました。この記事では、私が聴講したセッションを基に、Seleniumなどの自動テストを安定化・スケールさせるためにどのようなアプローチができるのかをご紹介します。

目次

SeleniumConfとは

 Selenium WebDriver(セレニウム・ウェブドライバー)はクロスブラウザ・クロスプラットフォームでブラウザ操作を自動化できるオープンソースのツールです。今年WebDriverの仕様がW3Cの勧告に到達したことでも話題になりました。

 SeleniumConfはそのSelenium WebDriver、そしてネイティブアプリの自動テストを可能にするAppium(アピウム)を中心とした国際カンファレンスです。主には、Seleniumプロジェクトのコミッターや、現場で自動テストを推進するエンジニアによるセッションの聴講や交流を行うことができます。

 現在では1年に2回開催されており、来年の4月には東京で開催される予定です。

 次からは実際のセッション内容についてご紹介します。

AIを用いた自動テストの第一歩、画面要素指定

 SeleniumConfでも昨今話題になっている「AIと自動テスト」に関する話がありました。特に注目したいのはtest.aiのJason Abon氏によるセッション「AI for element selection」です。

 一般的にSelenium/AppiumではIDやCSSセレクタ、XPathを用いて画面内の要素を取得し、ソースコードに記述していきます。これらは細かな修正による変更によっても影響を受けるため、安定性やメンテナンス性に課題がありました。

 今回の発表ではIDやCSSセレクタを書かず、AIに要素(アイコンなど)を学習させた上でlabel(cartやsearchのような名称)を記述するだけで、該当の要素を見つけて取得してくれるというものでした。

AIを使った画面要素の取得方法
AIを使った画面要素の取得方法

 AIで要素を取得すると上図のような記述だけで済むため、メンテナンス性は格段に上がった印象を受けました。また、要素を取得する時間が増えてしまうのではないかという懸念もありましたが、実際に動いているところを見ると、かなり早く取得できていると感じました。

 もともとゲームエンジンで制作されたモバイルゲームの分野では、画面要素を取得するのが難しいため、Appium+OpenCVを使い自動テストを実装するなど(下のリンク参照)、さまざまな取り組みが行われてきました。

 今回はAppiumプロジェクトが主体となって取り組んでおり、かつ実際に見て実現レベルまできていることが肌で感じられたため、今後に期待できます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 根本 征(株式会社メルカリ)(ネモト タダシ)

    株式会社メルカリ Automation & QA グループ(通称:AQA)自動化エンジニア。 2016年4月に新卒でメルカリに入社。QAエンジニアと共にモバイルをメインとしたUIテスト自動化を推進していく傍、モバイル CI / CD改善や社内の生産性を上げるための自動化・サポートを行なって...

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5