SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Appium Conf 2019」レポート

Appium Conferenceから見えてきたAppiumの今後の進化と、機能テストのその先【Appium Conf 2019】

Appium Conf 2019参加レポート 第1回

機能テストのその先、Visual Testing

 ここでは「Beyond Functional Testing」の一つであるVisual Testingについて、ApplitoolsのシニアエンジニアのAngie Jonesの「Your Tests Lack Vision: Adding Eyes to Your Automation Framework」セッションを取り上げたいと思います。

 Visual Testingは画面の見た目のチェックすることを目的としたテストで、前回のスクリーンショットを取得しておいて前回との画像差分を比較する手法が一般的です。

 Visual Testingを自動化することの重要性はマニュアルテストのコストを削減するという意味ももちろんありますが、それ以上にマニュアルでは差分を見逃してしまう可能性が高いことがあります。

 例えば画面の配色を一部変えたというエンハンスがあったとしましょう。そのときにマニュアルでテストするときには配色だけに注意がいき、もし画面の要素のサイズに変化があったとしてもその変化に意識がいかずに見逃してしまう可能性が高いでしょう。

 しかし、自動化したVisual Testingではその差分を必ず捉えることができ、マニュアルテストに比べて非常に効率的かつ効果的にVisual Testingを実行できます。

 しかしながら、今まで一般的に採用されていた前回画像との差分をピクセル単位で出す手法では期待していない差分が検出されやすく、非常に不安定なテストとなってしまいます。

 ピクセル単位で比較する場合、以下の例のように状態が少しでも変化しただけで期待していない差分が検出されてしまいます。

  • モバイルの充電が70%→100%に変わる
  • テストを実施する日が変わるだけで日付を表示している部分が変わる
  • 検索したときにレイアウトは同じだが表示されるコンテンツが変わる

 ピクセル単位で差分を出す手法の問題点はそれだけではありません。以下の画像を見てください。間違い探しとその差分をピクセル単位で比較した結果の画像になりますが、画像の微細なずれなどが検出されてしまい、どの部分が間違っていたか把握することが難しくなってしまっています。

 Visual Testingのパイオニア的な存在であるApplitoolsはそれらにうまく対処しています。Applitoolsの機能として、差分を比較するレベルを変更することができます。

 例えば、"strict"というレベルではコンテンツ、レイアウト、色などは比較しますが、人間には検知できない画像の乱れなどは排除してくれます。また"layout"というレベルではレイアウトのみ比較し、検索結果のようにコンテンツが変更されたとしてもその部分は除いて差分比較してくれます。

 この機能を使うことで、期待していない差分を取り除くことができます。

 またApplitoolsではボタンをワンクリックするだけでどこが差分として検出されたか視覚的に分かるようになっています。

 それ以外にもApplitoolsには多くの機能があります。例えばクロスブラウザや各種ツールとの連携などいろいろありますが、詳しくはApplitoolsのページを確認ください。Applitoolsは今までのVisual Testingでのデメリットを解消し、Visual Testingを実用的に使えるようにしてくれています。

 Applitoolsは有償ツールではありますが、このようにツールを有効的に使って「Beyond Functional Testing」を行うことが必須の時代になってきています。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
「Appium Conf 2019」レポート連載記事一覧

もっと読む

この記事の著者

関根 康史(株式会社メルカリ)(セキネ ヤスフミ)

株式会社メルカリ Automation & QA グループ(通称:AQA)自動化エンジニア。 2018年8月にメルカリに中途入社。品質、開発効率の改善のために、WEB・アプリの両方のUIテストの自動化を主に進めている。GitHub:https://github.com/aha-oretama

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11599 2019/07/12 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー