テスト自動化の効果を最大限に発揮するためには、自動化が実現できたことに満足せず、その運用を継続的におこなうことが重要です。テスト対象アプリのバージョンアップや改修によって、これまで動作していたテストスクリプトが動かなくなることはよくあります。そこで運用が止まってしまうと、せっかく作り上げた自動化スクリプトが使えなくなり、手動テストに戻らざるを得なくなる危険があります。そうならないように、運用が途切れることなく維持できるよう、テスト結果の分析やメンテナンスを継続的におこなうことが必要です。

本記事では、テスト自動化の運用継続に欠かせない、テストの結果分析とメンテナンスについて解説します。

テスト自動化とは?

テスト自動化は、ソフトウェアやアプリケーションのテストプロセス全体を自動化することを指します。
これまで手動でおこなっていたテスト作業を自動化することで、効率的にテストを実行し、品質を向上させることが目的です。

今までのテスト自動化通信では、テスト自動化の概要をはじめとし、テスト自動化の進め方についてご紹介しています。

テスト自動化がいちど実現できても、テスト対象アプリのバージョンアップや改修によって、動作していたテストスクリプトが動かなくなることはよくあります。せっかく作ったテストスクリプトが使えなくなり、手動テストに戻ることを避けるために、継続的にテスト自動化の運用をおこなうことが必要です。

今回の記事では、UIテスト自動化の全体像における、Phase2のテスト自動化運用について解説します。

テスト自動化を長期的に運用するためのポイント

テスト実行後の結果の分析とテストスクリプトのメンテナンスを継続的におこなうことで、テスト自動化を長期的に運用することができます。ここでは、弊社で取り扱っているUIテスト自動化ツール「Ranorex」を例に、テストの結果分析メンテナンスについて説明します。

テスト結果分析

作成したテストを日々実行していると、テストが失敗することがあります。もちろん、バグを検出してエラーとなることもありますが、アプリ側には問題がないのにも関わらずエラーとなることもあります。このような場合、そのエラーがアプリのバグによるものなのか、そうでないのかは最終的に人間の判断が必要です。テストが終了したら、まずはテスト結果のレポート内容を確認しましょう。特に、エラーメッセージは必ず内容を確認してください。

Ranorexの場合は、以下のようなエラーメッセージがレポートに出力されます。

①には、実行されたアクションのレポート レベルが表示されます。「Error」と出力されている場合、予期せぬ失敗が発生したことを示しています。②には、アクションの実行中に発生したエラーに関する詳細情報がメッセージとして出力されます。メッセージ内容を確認して、失敗原因の特定および対策をおこないます。

エラー内容の代表例としては以下が挙げられます。これは他の自動化ツールでも該当するケースが多いです。

このエラーが発生する要因としては、以下のようなケースが想定されます。

  • 対象アクション実行時に、操作したいオブジェクトが画面に表示されていない
    なんらかの原因でテスト対象アプリが想定の状態になっておらず操作対象のオブジェクトが表示されていないと、当エラーが発生します。
  • 操作したいUI要素の情報(XPathなど)が動的である
    例としてログイン毎にUI要素の属性値(idなど)が変わるアプリケーションの場合、事前に作成しておいたXPathなどでは操作したいオブジェクトを取得できないといったケースが発生することがあります。

これらのエラーがアプリのバグに起因するものではない場合は、テストシナリオのメンテナンスが必要です。詳しいメンテナンス方法については、以下のテストのメンテナンスをご確認ください。
よく発生するエラーについては対処方法とともにマニュアルに記載しておくと、メンバーの問題解決にも役立ちます。

テストのメンテナンス

テスト結果を分析して、バグではない原因でテストが動かなくなってしまった場合やアプリケーションのバージョンアップや改修により画面操作の手順や画面レイアウトに変更が加わった場合にテストスクリプトの修正が必要です。

①操作シナリオの修正

アプリケーションのバージョンアップや改修により、画面操作が変わるような場合、操作シナリオの修正が必要です。
たとえば、以下のような例が挙げられます。

例:新しい画面フローの導入

フロー変更前:

ユーザーがフォームに入力後、「送信」ボタンを押すと、確認画面に遷移

フロー変更後:

ユーザーがフォームに入力後、「次へ」ボタンを押すと、「ステップ2」画面に遷移

シナリオ修正:

「送信」ボタンを押す操作から「次へ」ボタンを押すシナリオに変更。また、「ステップ2」画面の入力シナリオを追加。

②UI要素の認識情報の修正

アプリケーションのバージョンアップや改修により、画面レイアウトが変わるような場合、UI要素の認識情報の修正が必要です。
たとえば、以下のような例が挙げられます。

例:UI要素の位置変更

位置変更前:

「送信」ボタンがフォームの一番下に配置

位置変更後:

「送信」ボタンがフォームの右側に配置
⇒フッターのdiv要素から右側にあるdiv要素に移動

UI要素の認識情報(RanoreXPath)の修正:※XPathの修正方法と類似

元のパス:
/dom[@domain=’xxxx’]/div[@class=’form-footer‘]/button[@class=’submit’]

パス修正後:
/dom[@domain=’xxxx’]/div[@class=’right-align‘]/button[@class=’submit’]

Div要素のClass属性の値を「form-footer」から「right-align」に変更。

UI要素の認識情報の修正は、慣れるまでに時間がかかることもありますが、Ranorexの場合はトレーニング(RanoreXPathコース)を受講することで、UI要素の認識情報への理解が深まるため、迅速に対応しやすくなります。

まとめ

テスト自動化の効果を最大化するためには、単にテストスクリプトを作成するだけでなく、その後の運用とメンテナンスが不可欠です。アプリのバージョンアップや改修にともない、テストスクリプトが動作しなくなることを避けるためには、テストの結果分析やメンテナンスを継続的におこなうことが重要です。テスト自動化を一過性の取り組みとせず、長期的な運用を見据えて自動化に取り組みましょう。

UI テスト自動化ツール Ranorex

弊社では、UI テスト自動化ツール Ranorex を取り扱っています。Ranorex は、デスクトップアプリWebアプリモバイルアプリに対応したUIテスト自動化ツールです。多くのサードパーティー製コントロールなど、さまざまなテクノロジーをサポートしており、画面操作をキャプチャすることで、テストシナリオを自動生成できるため、ノーコードで簡単にテストを作成できます。また、GUI 操作で直感的に操作できるため、メンテナンスも簡単におこなえます。

もし、Ranorex にご興味ありましたら、まずは 製品紹介Webinar にお気軽にご参加ください。製品紹介 Webinar では、Ranorex の概要やデモンストレーション、事例などをご紹介しています。

また、Ranorex は、無料で14日間体験版を利用いただけますので、実際に使用感を試したい方は、ぜひダウンロードください。

関連情報

テクマトリックス株式会社では、無償で受講できるRanorex ハンズオンセミナー(初級コース)をご用意しています。ハンズオンセミナーでは、 Ranorex の概要や基本機能の使い方について学ぶことができますので、効率的にツール学習できます。

ハンズオンセミナー(初級コース)

また、今回の記事は、Ranorex を使用したテスト自動化の計画・設計や運用の具体的な進め方を学べる有償トレーニング Ranorex によるテスト自動化ガイド の内容をもとに作成しています。Ranorex を使用したテスト自動化プロジェクトの進め方について、より具体的な知見が欲しい方は、ぜひご参加ください。

Ranorex によるテスト自動化ガイド