ローコードテスト自動化ツール T-DASH

キャプチャ&リプレイで実現する効率的なテスト自動化

テストの自動化は、幾つかのパターンがあります。たとえばユニットテストをCI/CDで繰り返し実行するのも自動テストに当てはまります。他にも、セキュリティスキャンを行うようなテストも定期的に自動で実行できます。
本記事では、テスト自動化の中でもUI/UXに関わる部分を自動化するキャプチャ&リプレイに焦点を当てて解説いたします。UI/UX周りは自動化が難しい部分もありますので、使いやすいツールの導入が欠かせません。

キャプチャ&リプレイの基本

キャプチャ&リプレイとは、その名の通り「キャプチャ」と「リプレイ」に分けられます。キャプチャとは、テスト対象のアプリケーションの操作を記録することです。そして、リプレイとは記録した操作を再生することです。つまり、キャプチャ&リプレイとはアプリケーションの操作を記録し、自動で再生することでテストの実行と結果の検証を行う仕組みです。

キャプチャ&リプレイを用いたテストの利点としては、以下のようなものがあります。

– テストケースの作成が容易

– テストの再現性が高い

– テストの効率化

テストケースの作成が容易

一般的にキャプチャ&リプレイを用いたテストツールでは、記録ボタンを押してからテスト対象のアプリケーションを操作します。どこに何を入力したか、クリックしたかなどを記録していきます。このため、テストケースの作成が非常に容易です。ただし、メンテナンスやカスタマイズについては課題もありますので、そちらは後述します。

テストの再現性が高い

キャプチャ&リプレイを用いたテストは、記録した操作を正確に再生します。そのため、テストの再現性はとても高いです。手動でテストを行う場合、操作ミスや環境の違い、担当者の勘違いなどの入り込む余地があります。しかし、キャプチャ&リプレイを用いたテストは、これらのリスクを軽減できます。

テストの効率化

キャプチャ&リプレイを用いたテストは、自動で何度も繰り返せます。人が同じテストを何度も行うのはもちろん、それをリリースの度に繰り返すのは現実的ではありません。キャプチャ&リプレイを使った自動化は、繰り返し作業を苦もなく行えるので、バージョンアップによって、これまで正常に動いていた部分の不具合を発見するのにも有効です。

効率的なテスト自動化のためのツール選定

ここでは、キャプチャ&リプレイが実装されているツールについて紹介します。主なツールとしては、以下のようなものがあります。

– Selenium

– Puppeteer

– Playwright

– TestCafe

– Cypress

Selenium

Seleniumは、Webアプリケーションのテスト自動化に特化したツールです。Webブラウザを操作して、テストを自動化することができます。各ブラウザに対応したWebDriverを使って、ブラウザの操作を自動化します。Seleniumは、Selenium IDEというキャプチャ&リプレイ機能を提供する機能拡張があったのですが、Firefoxのアップデートにより動作しなくなりました。また、Chromeでも間もなく使えなくなるようです。

現在はその代替として、SideeX/sideex: The Official Repository of SideeX 2や派生版であるQualys Browser Recorderなどが開発されています。

Puppeteer

Puppeteerは、Webブラウザの自動操作ツールです。ヘッドレスブラウザとしての動作が基本で、GUI画面を表示せずにブラウジングができます。Chromeに標準搭載されているレコード機能で、Webアプリケーションの操作を記録できます。その内容はPuppeteerのスクリプトで出力可能です。

PuppeteerはデフォルトでChrome向けですが、Firefoxでも利用できます。

Playwright

Playwrightは、Microsoftの開発しているWebブラウザの自動操作ツールです。Chromium、Firefox、WebKitの各ブラウザをサポートしていますので、モバイル向けのテストも可能です。

レコーディングはVS Codeから行えますので、レコーディング結果をテストに利用するのも簡単です。

TestCafe

TestCafeはクロスプラットフォーム・クロスブラウザをサポートしたE2Eテストツールです。TestCafe自体にはキャプチャ&リプレイ機能はありませんが、TestCafe Studioという製品があります。TestCafe Studioは、GUIでテストを記録し、TestCafe用のスクリプトを生成できます。

Cypress

Cypressは、WebアプリケーションのE2Eテストを行うためのツールです。Cypressは、キャプチャ&リプレイ機能を持っていませんが、Cypress Chrome Recorder という拡張機能があります。Cypress Recorderは、ブラウザの操作を記録し、Cypress用のスクリプトを生成します。Cypress自体はクロスブラウザで動作しますので、生成したスクリプトは他のブラウザでも利用できます。

どのツールを選ぶか

どのツールを選ぶかは、テスト対象のアプリケーションやチームのスキルによって異なります。情報量の多さで言えば、Seleniumが最も多いですが、最近の人気であればPuppeteerやPlaywright、Cypressなどになります。

キャプチャ&リプレイを重視する場合、レコーディングを行うツールのサポート状況や、最新のブラウザでも利用できるかが重要です。その点、PuppeteerであればChromeの標準機能で動作されていること、PlaywrightはVS Codeから利用できるのが利点です。

実際の導入ステップ

ここでは実際にキャプチャ&リプレイを用いたテスト自動化の導入ステップを紹介します。

1. テスト計画の策定

2. テストケースの作成

3. テスト環境の構築

4. テストの実施

5. テスト結果の分析と評価

テスト計画の策定

テスト計画は、テストの目的や範囲、スケジュール、リソースなどを定義したものです。キャプチャ&リプレイを用いたテスト対象はUIに関わる部分になるので、開発段階では最終的な部分(デザインが固まった後)になるでしょう。そのため、初期段階でテスト内容を狭めすぎないのがポイントです。

テストケースの作成

テストケースは、テストの手順や期待結果を記述したものです。キャプチャ&リプレイを用いたテストでは、アプリケーションの操作を記録したスクリプトを作成する作業になります。また、結果の検証部分についてはレコーディング側で対応できることもあれば、スクリプトを修正する場合もあります。

テスト環境の構築

テスト環境は、テストを実施するための環境です。キャプチャ&リプレイを用いたテストは、CI/CD環境に組み込まれることが多いので、CI/CD環境とそれに合わせたサーバーサイドの環境が必要です。また、テスト対象のアプリケーションが動作する環境も必要です。つまり、Webブラウザの場合は、サーバー内でブラウザを動作、実行できる状態にしなければなりません。

テストの実施

テストはローカル環境の場合と、CI/CD環境の2パターンが想定されます。ローカル環境の場合、テストが実行されるのはローカルOS環境と、DockerなどでのLinux環境になるでしょう。CI/CD環境の場合は、Windows、Linux、macOSなどの環境でテストが実行されるのが望ましいです。

テストは自動で実行され、結果を記録します。ブラウザのテストは一般的に長時間かかりますので、夜間などで行われて結果は翌日に確認されることが多いです。

テスト結果の分析と評価

テスト結果は、テスト結果の合否だけでなく、テストのカバレッジやテストの品質についても評価します。テスト結果の分析は、テスト結果のログを確認するだけでなく、テスト結果を可視化するツールを利用する場合が多いです。また、テスト結果に問題があれば、テストケースの修正やテスト環境の再構築を行います。もちろん、テスト結果に応じてアプリケーションの修正も行われます。

キャプチャ&リプレイの課題と解決策

キャプチャ&リプレイを利用するテストツールにおける一般的な課題を紹介します。

– テストケースの作成が難しい

– テストスクリプトの保守が難しい

– テスト環境の構築が複雑

– テストの実行時間が長い

テストケースの作成が難しい

テストケースの作成を難しいと感じるケースの多くは、レコーディングアプリを利用しない場合になるようです。そのため、使いやすいレコーディングアプリの有無がツールの使いやすさ・使いづらさに直結します。

テストスクリプトの保守が難しい

この課題はキャプチャ&リプレイを利用したケースに限らず、テスト自動化の課題と言えるでしょう。作成が容易な反面、再利用性や安定性のための共通化などの仕組みの考慮が疎かになりがちで、テストスクリプトの数が増えると、その保守量も増えていきます。画面の変更によって、テストスクリプトがエラーになるケースは多いです。

保守と品質のバランスは、常に課題になります。テストを自動化することによる省力化の効率が最も大きな部分や、エラーがあるとビジネスインパクトの大きい部分を中心にテスト自動化を行うことで、保守の負担を軽減できるでしょう。

テスト環境の構築が複雑

テスト環境の構築は、テスト自動化において最も難しい部分の一つです。特に、キャプチャ&リプレイを利用する場合、テスト対象のアプリケーションが動作する環境を構築する必要があります。たとえばWindowsやmacOS版のブラウザが動作する環境を用意するのは簡単ではありません。クラウドで仮想環境を提供するサービスもあるので、それを利用するのも一つの手です。

テストの実行時間が長い

キャプチャ&リプレイを利用したテストは、UI操作が主体であるため、テストの実行時間が長くなりがちです。テストの実行時間を短縮するためには、テストケースの絞り込みや、テストスクリプトの最適化が必要です。また、並列実行やクラウドの実機サービスを利用する、テスト時間を工夫することで、テストの実行時間を短縮できます。

まとめ

今回はキャプチャ&リプレイを利用したテストツールの紹介と、メリットと課題について解説しました。キャプチャ&リプレイはUIに関するテストになるので、そのテスト品質がユーザービリティに直結します。そのため、使いやすいツールを選び、テストの効率化が重要です。

バルテスの提供するT-DASHは「誰でもカンタンにテスト自動化ができる時代へ」をテーマにした、使いやすいテスト自動化ツールです。Webアプリケーションはもちろん、Windowsアプリケーションのテストにも対応しています。ぜひお試しください。

誰でもカンタンにテスト自動化ができる時代は、すぐそこまできています。当サイトでは、テスト自動化ツールに興味のある方へ、「テスト自動化 推進ガイドブック」と「テスト自動化ツールT-DASH 基本ガイドブック」のダウンロード資料をご用意しております。ぜひダウンロードいただき、資料をご覧ください。

またテスト自動化ツール「T-DASH」を無料でトライアル利用できる環境もご用意しています。ぜひ、お試しいただき、ツールを活用したテスト自動化に挑戦してみてください。