Cypressとは、Mochaを基盤に構築されたフロントエンドテストフレームワークです。主にReact.js、Vue.js、Angular.jsなどのライブラリに使われています。QA担当者やフロントエンド開発者にとって、CypressはE2Eテストの最有力候補とされています。Seleniumに依存しませんから、ブラウザのDOM要素に最適です。

しかし、Cypressには重大なデメリットもいくつかあり、テストスクリプトを書くための標準的なフレームワークにはなっていません。Cypressのデメリットを解決するために、新たな製品が多く開発されています。


開発者が指摘する、Cypressの主なデメリット

JavaScriptでテストを書かなければならない

Cypressフレームワークは、非エンジニアや非JavaScriptデベロッパー向けに構築されていません。JavaScriptについてよく知っていなければ、Cypressで優れたテスト自動化スクリプトを書けないのです。とてももどかしいですし、革新が妨げられてしまいます。

複数のタブに対応していない

Cypressはブラウザ内で実行されるため、テスト実行時に複数のタブに対応できません。ブラウザのDevToolsでJavaScriptを実行するのと同様、DevToolsでデバッグするにはページを使う必要があります。Cypressを使ったテスト自動化も同様で、テストスクリプトをスケールするのは困難です。

Cypressは遅い

多くのユーザーは「ほかの自動化ツールよりCypressのほうが速い」と信じています。Cypressが提供している資料にもそのように書かれていますが、実際のところ、Cypressは遅いのです。プロジェクトを開始したばかりであれば、テストは高速で実行されますが、アプリが成長するにつれてCypressは変化をたどれなくなり、テスト実行は非常に遅くなっていきます。Cypressでテスト自動化し続けるのは困難で、非効率なのです。

メンテナンス

ほとんどの場合、ソフトウェア開発ライフサイクル(SDLC)はどんどん長くなっていきます。特徴や機能が追加されるにつれてアプリケーションは成長し、それに伴ってテストスイートとテストケースも増えていきます。ところが、開発者は「Cypressを使ったテストではこのような変化に対応するのは厳しい」と感じています。速いペースでテストを実行するようスケジュールを組んでも、ほとんどの場合、Cypressでは追いつきません。

構文が複雑で一貫性がない

Cypressの構文は非常にあいまいなところがあります。Cypress実行時に使える言語はJavaScriptのみなので、使用の難易度が高いとされています。SDLCの関係者がだれでもCypressを習得してテストに使い始められるとは言えません。Cypressを使うエンジニアも、非同期プログラミングなど、JavaScriptの高度な概念についてある程度知っている必要があります。

Cypressの代わりにおすすめのテスト自動化ツール

前述のとおり、Cypressのテストフレームワークを採用すると、JavaScriptに依存し過ぎる、構文が複雑など、さまざまなデメリットに直面します。そこで、次のようなテストツールが新たに登場しています。

Cypressの代替としておすすめのテスト自動化ツール 5選

Autify

Autifyは、Cypressの代替としてぜひ検討したいおすすめのテスト自動化ツールです。AIを活用したテスト自動化プラットフォームで、ノーコードで使えます。ノーコードプラットフォームは使いやすく、プログラミング言語でコードを記述しなくてもテストスクリプトを作成できます。非エンジニアも素早くテストスクリプトを作れるわけです。コーディングを学ぶ必要はなく、コードをまったく書かずに回帰テストの実行とレコーディングができます。Autifyのアルゴリズムは、UIの変更を検出して、テストシナリオを続行するため、UIが変わるたびにテストが失敗することはなく、DevOpsチームの工数削減につながります。

主な特長

  • ノーコードで使えるので、コーディングは不要。GUIでテストシナリオをレコード&プレイバックできます。
  • テストスクリプトのメンテナンスはAIが行います。
  • 人工知能がUIの変更を学習し、柔軟に適応しながらテストを続行。変更点はテスト担当者に通知されます。
  • モバイル機器を含む、クロスブラウザに対応。
  • SlackやJenkinsなどと連携可能。

Autify資料ダウンロードはこちら

TestCraft

TestCraftとは、ノーコードで使える、ウェブアプリ向けのSeleniumテスト自動化ツールです。クラウド型継続的テストプラットフォームで、手動テストケースを自動化できます。プログラミングの予備知識がなくても使えるのが魅力の1つです。

主な特長

  • 視覚的なフローチャート形式でテストを作成。コードを記述する必要はありません。
  • 複数のブラウザタブでテストを並列実行。
  • AIがメンテナンスを支援。失敗したテストケースの97%が自動的に修復されます。
  • 高度なバグ管理システム。

Katalon

Katalonとは、AppiumとSeleniumを基盤に構築されたテスト自動化ツールです。オールインワン型テスト自動化ソリューションで、テストスクリプトの記述にノーコードIDEというアプローチを採用しています。Katalon Studio、Katalon Runtime Engine、Katalon TestOpsという3つのツールで構成されています。

主な特長

  • レコード&プレイバックIDEにより、ノーコードでテストスクリプトを書けます。
  • スマートエンジンが自動修復・自動待機。
  • 複数のデバイスでクロスブラウザテストを実行。
  • 詳細なレポート、AIによる分析機能。
  • Jenkins、Bamboo、Azure DevOpsなどのツールでCI/CDとの連携が可能。

GhostInspector

GhostInspectorを使えば、Webサイトの検証やブラウザテスト、UIテスト、E2Eテストのテスト自動化を実現できます。Selenium IDEと同様、GhostInspectorはChromeとFirefox向けの効率的なテストレコーダーツールです。

主な特長

  • AIを活用した、ノーコードテスト自動化ツール。
  • テストのレコーディング、スケジュール設定、自動化が可能。
  • 変更内容を横並べで比較。
  • 幅広いブラウザや技術をサポート。

Robot Framework

Robot Frameworkとは、受け入れテストや受け入れテスト駆動開発で使用されるテスト自動化フレームワークです。テスト自動化とロボティック・プロセス・オートメーション(RPA)のために使うことができます。巨大コミュニティがあり、多くの業界リーダーがソフトウェア開発ライフサイクルで使用していることから、広く支持されています。

主な特長

  • 構文は易しく、人間が読めるキーワードを使用。
  • オープンで拡張可能。ほかのツールと併用することで、パワフルかつ柔軟な自動化ソリューションに。
  • PythonやJavaフレームワークでライブラリを拡張。
  • 読みやすい資料あり。

まとめ

Cypressはフロントエンドテストに便利なテスト自動化ツールですが、重大なデメリットがあるため、標準的なテストツールにはなっていません。本稿では、このような背景から生まれたCypressの代替ツールを紹介しました。コストパフォーマンスの高い製品ばかりですが、貴社のユースケースに最適なツールがどれか迷っている方はお気軽にお問い合わせください
 
Autifyではこの他にも品質保証やテスト、アジャイル開発に役立つ資料を無料で公開していますので、ぜひこちらからご覧ください。