E2Eテスト自動化ツールを調べてみました

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

 株式会社AilaB の山口央士朗(おうじろう)です。
 弊社エンジニアチームでは今まで手動でやっていたテストを一部自動化することになりました。本記事では、テスト自動化に至るまでの経緯と、E2Eテスト自動化ツール(以下、テスト自動化ツールとします)を実際に比較してみて、どのツールを採用するのか検討した結果をまとめます。
 なおここでいうE2Eテストとはシステム全体に対して行う機能テストや結合テストのことを指します。コードレベルで行うユニットテストやパフォーマンスやセキュリティのテストとは異なるものであること、ご容赦ください。

目次

  • テスト自動化ツールを利用することになった経緯
  • テスト方針
  • 比較対象ツール
    • Selenium
    • Cypress
    • Autify
    • Katalon Studio
  • 比較要素
    • 学習コスト
    • メンテナンス性
    • 価格帯
  • 調査レポート
  • まとめ

テスト自動化ツールを使うことになった背景

 弊社では現在、RebaseというWebアプリケーションの開発を行っていますが、Webアプリケーションでは「Chrome」「Internet Explorer」「firefox」「Safari」といったたくさんのブラウザに対してテストを行う必要があります。また、RebaseはPC、スマートフォンの両方で動作するように開発しているため、「ブラウザ」だけではなく、複数の「OS」「デバイス」に対しても問題なく動作するかテストを行わなければなりません。これを全て手作業で行うとなるとかなりの労力を費やしますので、テスト自動化ツールを利用することになった次第です。

テスト方針

 テスト自動化ツールを採用することになりましたが、今まで手作業でやっていたテストを全て自動化するには膨大な時間がかかってしまいます。この問題についてチーム内に話し合い、そして、テスト全てを自動化していくということはせずに

  • 簡単に自動化できそうなところから自動化していく
  • 自動化するのに時間がかかる部分は今まで通り手動で行う

という方針をチーム内で固めました。

比較対象ツール

 今回は4つのツールに対して比較を行いました。

Selenium

 SeleniumはWebブラウザを自動操作するための支援ツールで、テスト自動化を行う上で最も有名なものです。2004年から開発されているツールで、Java、C#、Python、Ruby、PHPなどプログラミングライブラリが豊富なのが特徴です。
Selenium

Cypress

 Cypressはオープンソースのテスト自動化ツールです。Chrome DevToolsなどを使用して、テストスクリプトをリアルタイムでデバッグできるなどと言った特徴があります。テスト結果をチーム内でシェアできるCypress Dashboardなどがあります。
Cypress

Autify

 AutifyはAIを用いたテスト自動化プラットフォームです。「テストシナリオの作成が容易」「メンテナンスを自動化してくれている」という特徴があり、UnityやZozo Technologies、DeNAといった有名企業からfolioなどの金融商品を取り扱う企業などで、幅広く導入されています。
Autify

Katalon Studio

 Katalon Studioは、SeleniumとAppiumという自動化フレームワークのコアエンジンで構築されたテスト自動化プラットフォームです。「ブラウザ操作をレコーディングしてテストする」「Gitでバージョン管理を行う」「テスト結果を出力する」といったことがUIでできます。
Katalon Studio

比較要素

 テストツールを選定するには様々な検討要素がありますが、弊社エンジニアチームでは下記の3点を中心に検討いたしました。

学習コスト

 導入するのに時間をかけたくないため、できるだけ簡単に理解することができ、テストシナリオを作成することができるツールであるかどうかは非常に重要です。
 プログラミングが苦手という方でも簡単に構築できるようなツールが望ましいです。

メンテナンス性

 E2Eテストではサービスの「デザインが一部変わったせいでテストコードを書き直ししなければいけない」など、仕様変更によってテストシナリオの作成しなおし、または一部修正しなければならないことがよくあります。テストシナリオの修正があったとしてもできるだけ簡単に修正できるツールが望ましいです。

価格帯

 スタートアップではかけられるコストが限られているため、その中でどれだけのテストができるかが重要となります。

調査レポート

 比較要素を基に、テスト自動化ツールの調査を行いました。

学習コスト

 Selenium、CypressはGUIでテストを作成することができません。比較対象ツールの中では最も学習コストが高いと言って良いでしょう。
 Autifyはブラウザの操作を記憶し操作することで、テストシナリオを自動で作成することができます。コーディング不要で簡単に導入しやすいという大きな特徴があります。比較対象ツールの中で最も導入コストが低いと考えられます。
 Katalon StudioもKatalon Recoderというツールを使用すれば、Autifyと同様、ブラウザの操作を記憶し、テストを行うことができます。うまく記憶できなかった時などはコードを修正する必要があるため、Autifyよりは学習コストは高いですが、SeleniumやCypressよりも簡単に利用できると言えるでしょう。

メンテナンス性

 Selenium、Cypressは仕様変更によってコード自体を書き換える必要があります。
 AutifyはAIがソースコードの変更を検知しテストシナリオの修正を自動で行うセルフヒーリング機能があります。よって、急遽仕様が変更されても柔軟に対応することができます。
 Katalon Studioはブラウザでの操作を記録し、テストコードに変換することができるため、GUI、コーディング両方の観点からテストシナリオを修正することができます。Selenium、Cypressよりも仕様変更に柔軟ですが、Autify程ではないと言ったとこでしょう。

価格帯

 Seleniumはオープンソースであるため、無償で利用することができます。
 Cypressはテスト結果をチームで共有する「Cypress Dashboard」は有償ですが、テスト自体は無償で実施できます。
 Autifyは価格帯は非公表であり、要相談となっていますが、Microプランを拝見するに最低でも月5万はかかるものと予想されます。
 Katalon Studioはテスト自体は無償ですが、CI/CDなどの追加機能は有償となります。料金プランについては公式サイトに明確に記載されています。

まとめ

 以上の調査結果をまとめると以下のようになります。

SeleniumCypressAutifyKatalon
Studio
学習コスト××
メンテナンス性×
価格帯×

 求めていた機能面としてはAutifyが最も優れていますが、価格面で大きなデメリットがあります。よって今回は、最もバランスの良いKatalon Studioを採用することにいたしました。
 Katalon Studioは日本語の記事がまだ少ない印象があります。使用する中で気になったことや良かった機能などがあれば、随時ブログを更新していこうと考えています。

SNSでもご購読できます。