UIテスト自動化ツールの選択で考慮すべき5項目

「これまでにない速さでのソフトウェアリリース」に対する顧客からの要求が高まる中、迅速なリリースサイクルを維持し、業界において重要な存在であり続けるためには、ソフトウェア開発ライフサイクルの早い段階で自動化に投資することがますます重要になります。

テスト自動化への投資における最大の課題の1つは、組織のニーズに合った適切な UIテスト自動化ツールを選択することです。テスト自動化に使用できるツールとフレームワークは色々ありますが、それぞれに利点、欠点、限界があります。

テスト自動化を成功させるために、UIテスト自動化ツールを選択する上で考慮すべき5つの項目をご紹介します。

1.使いやすさ

選択するツールは、技術者、および非技術者の両者が使いやすいものでなければなりません。直感的である必要があり、複数のプロジェクトにわたって簡単にテストを作成、理解、実行できるものでなければなりません。

また、テストのさまざまな側面に対応するIDE (統合開発環境) を備えたツールを探すことです。現在、この機能を備えたツールは数多くありますが、簡単で安定した自動化を実現するためのすべての機能を備えたエンドツーエンドソリューションを提供しているツールは数えるほどしかありません。これは、適切なツールを選択する上で最も重要な点の 1 つです。

2.拡張性

AI、ブロックチェーン、マイクロサービスなどの先端テクノロジーの利用によってアプリケーションが複雑化する中、迅速にテストを作成できることは開発チームの必須事項となっています。そのため、ノンプログラミングなツールが人気を集めており、誰でも簡単に、安定したテストをおこなえるようになりました。

これらのツールのほとんどは、ユーザーがツールの機能を拡張するために独自のカスタムコードを追加できるような柔軟性を備えてはいません。たとえば、これらのノンプログラミングなツールに加えて、ラッパーまたはユーティリティを構築したい場合、開発者やテスターは独自のコードを追加するための準備が必要になります。つまり、ユーザーは外部のIDEを使って作成されたテストをコントロールする必要があります。

また、Seleniumを使用した既存のテスト資産がある場合は、テストを一から作成することなく、テスト資産を簡単に再利用できる機能が必要です。これは、これまでのテストの作成に多くの時間を費やしてきた大規模な組織にとって非常に重要です。

たとえば、ある企業がSeleniumを使用して2,000件のテストを2年かけて作成したとします。Seleniumのテストやその開発環境が不安定であることで、テストの保守や新しいテストを作成するのが難しいことが分かり、そのため、テストの作成と実行のプロセスを容易にするためのベンダーツールを検討しています。選択するツールには、既存のすべてのSeleniumのテスト資産をインポートできると共に、新しいテストを簡単に追加できる機能が必要です。現在のところ、このプロセスをサポートするベンダーツールの数は多くはありませんが、検討することは非常に重要です。

3.クロスブラウザーと対応デバイス

最近の組織では、デスクトップとモバイルに対応したハイブリットなWebアプリケーションや、純粋なデスクトップアプリケーション、そしてネイティブアプリケーションを使用しており、ユーザーはこれらを自由に選択および利用して完全なカスタマーエクスペリエンスを得ることができます。したがって、これらの異なるデバイス、OS、ブラウザー構成のすべてでテストを実施することが重要となります。

選択するツールには、モバイルデバイス、ブラウザー、OSバージョンの複数プラットフォームでシームレスかつ並列してテストを実行できる機能がなければなりません。また、さまざまなテクノロジーを使用して構築されたアプリケーションをサポートする必要もあります。これは、さまざまなエコシステムにまたがってより迅速なフィードバックを得るために非常に重要です。

4.CI/CDインテグレーション

最近ではDevOps、DevSecOps、ATDD、BDDなどのアジャイル開発プロセスが普及してきており、シームレスなCI/CDインテグレーションをおこなうことが重要になってきています。システムの重要な機能が期待通りに動作しているか、新しくマージされたコードが他のアプリケーションの機能を壊していないかを確認するためには、コードのチェックインごとに、また定期的にテストを実行する必要があります。

これらのテストは、ローカルマシンとリモートマシンの両方で実行する必要があります。これを容易にするために、選択するツールは、一般的なCIツール (Jenkins、Bamboo、TeamCity、Travis CI、およびソフトウェア開発チームに関連するツール) と連携できる必要があります。

CloudBees Jenkins
CloudBees Jenkinsは、Jenkinsを利用してCI(継続的インテグレーション)/CD(継続的デリバリー)実現するために必要な機能を備えたエンタープライズ向けのソリューションです。

5.レポート機能

テストを簡単に作成して実行するだけでは不十分であり、チームメンバーはテストについて迅速なフィードバックを得ることができなければなりません。

選択するツールには、成功したテストと失敗したテスト、実行されたテストの数、自動化されたテストスイートの正常性を直ちに表示するためのさまざまなレポート機能とダッシュボードが必要です。そして、これらの結果をエクスポートして他のチームメンバーと共有できなければなりません。

まとめ

UIテスト自動化のためのツールやフレームワークは、1つの分野で優れているだけでなく、プロジェクトのさまざまなニーズをサポートするためのエンドツーエンドソリューションを提供する必要があります。本ブログで紹介しました、5項目を念頭に置くことで、チームは組織のニーズに合わせて最適なツールを選択することができるでしょう。

作者について:

Raj Subrameyerは、国際的な基調講演者、ライター、およびキャリアコーチであり、技術的なバックグラウンドを豊富に持っています。 彼のBlog(rajsubra.com/blog/)では、読者の生活に役立ち、インスピレーションを与えるニュース、リソースを投稿しています。

(この記事は、開発元 Ranorex 社 Blog 「Five Things to Consider When Choosing a UI Automation Tool」2020年2月4日の翻訳記事です。)