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

UIテスト自動化を導入するときのポイントとは?

昨今のIT人材不足が嘆かれる中で、リソース不足解消の手段としてテスト自動化への関心が高まっています。特にUI(ユーザーインターフェース)テストはテスト範囲が広い、かつ単調なパターンの繰り返しが多く、テスト自動化向きだと言われています。

UIテストのテスト自動化を導入する上でのポイントを解説していきます。

UIテスト自動化でできることとは?

UIテストと言われて、何を想像しますか?「画面操作テスト」、「入力パターンテスト」、「レイアウト確認テスト」、「ユーザービリティテスト」など色々想像されるかと思います。UIテストはユーザー操作によるUI状態の確認テスト全般を表し、捉え方によっては広義的なものとなります。広義的な分、テストする観点が多く、工数がかかるテストとも言えます。

では、UIテストのテスト自動化でできることとは具体的に何があるのでしょうか?大きく分けて2つあります。

【 UIテストのテスト自動化でできること】

1.画面遷移テスト

ある操作をして想定の画面に遷移しているかを確認するテストになります。テスト自動化では、想定の画面が何を表すか、画面タイトル名称やURLなどを目印に期待結果とします。テスト自動化スクリプトを作成する際には、その期待結果へ遷移すれば成功になるように実装してテストします。入力バリエーションテストと画面遷移テストの組み合わせで高い費用対効果を生むことがあり、テスト自動化においてはもっともポピュラーなテストとなります。

例:メールアドレスとパスワードの入力バリエーションを変えて繰り返しテストをする

「test1@example.com、password1を入力」->「ログインする」->「アカウント画面に遷移するか確認する」

「test2@example.com、password2を入力」->「ログインする」->「アカウント画面に遷移するか確認する」

2.画像比較テスト

現在開いている画面と期待結果画面を比較して一致しているかを確認するテストになります。テスト自動化では、対象画面をブラウザで開く操作をしてスクリーンショットを取得し、保持していた期待結果のスクリーンショットと比較して差分や一致率を確認します。技術的にはOCR(光学的文字認識) や画像認識AIなどを使用します。レイアウト確認やリンク切れの確認が行えるため、画面数が多いアプリや画面に情報量が多いアプリであれば品質面含めて効果の高いテスト自動化が実現可能となります。

しかし、「一致率による成功判定のしきい値をいくつにするか」、「比較対象の画像とブラウザの解像度が一致しないといけない」、「動的に変わるエリアがあればマスクして比較しないといけない」などの課題もあります。

UIテスト自動化には対象と注意点があるのです

UIテスト自動化における主なテスト対象はPC Webアプリ、スマホアプリ、Windowsアプリとなります。

・UIテスト自動化のやり易さ(PC Webアプリ > スマホアプリ >  Windowsアプリ)

 PC WebアプリスマホアプリWindowsアプリ
画面遷移テスト
画像比較テスト

PC Webアプリはテスト自動化の技術が成熟してきている面もあり、画面遷移テスト、画像比較テストともにテスト自動化が比較的しやすいです。

スマホアプリはシンプルな画面構成が多く、画像比較テストはテスト自動化がしやすいです。しかし、スマホアプリのテスト自動化の技術が成熟していない面もあり、スマホアプリの作りによっては画面遷移操作のテスト自動化が行えないことがあります(特にiOSアプリ)。

また、端末の準備が大変な面もあります。この点にも注意しましょう。

WindowsアプリはPC Webアプリやスマホアプリに比べるとテスト自動化しづらい点が多いです。「画面操作するための要素情報の取得が難しい」、「Windowsアプリの画面サイズがディスプレイサイズに依存しやすい」などの注意点があります。

UIテスト自動化のポイント

UIテストの自動化をするためには、2つのポイントがあります。

1.開発段階で試しにテスト自動化をしてみる

UIテスト自動化ができるのかどうかの判断を早めに行うとよいです。開発終盤でテスト自動化スクリプトを作成すると思ってもいない要因でテスト自動化ができないことがあります。

過去にクロスプラットフォーム(1つの仕様でAndroid、iOS両方対応)のスマホアプリをテスト自動化した際にAndroid側はうまくいったが、iOS側はうまくいかなかったことがありました。iOS側はテスト自動化ツールとの相性問題で画面要素の認識がされず、画面遷移操作のテスト自動化ができないというものでした。

実現調査を進めると、ソースコード上で各要素に属性を付与すればiOS側でもテスト自動化が可能であることがわかりました。しかし、開発がほぼ済んでいるソースコードに対して実装するのはなるべく避けたいとの判断で、テスト自動化は頓挫することになりました。このように早い段階でテスト自動化を試していれば、課題への気づきや対策に繋がります。

もうひとつの注意点としては、開発段階で全てのテスト自動化スクリプトを作らないことです。理由は開発が進むにつれてUIが変更され、作成したテスト自動化スクリプトが動かなくなる恐れが出てくるからです。開発段階では単画面、単機能単位でテスト自動化スクリプトを作っておくのは後のフェーズでも活用できるのでよいかもしれませんね。

2.プロジェクトにあったテスト自動化の適用方法を考える

どのテスト、どの目的でテスト自動化を行えば効果が出るか考えることが大切です。闇雲にテスト自動化を行ってしまうと、想定以上に工数が膨らみ、もとの目的とそぐわない結果になることがあります。テスト自動化の戦略を立てて、テスト自動化の効果検証も行いつつ、プロジェクトにあったテスト自動化の適用方法を考えて進めることが重要になります。

【テスト自動化の適用方法例】

品質向上目的 ― マイグレーションテストの現新比較テストに

テスト期間短縮目的 ― リグレッションテストの深夜実行で

テスト工数削減目的 ― 多端末テストの共通シナリオの動作確認に

まとめ

「UIテスト自動化を導入するときのポイントとは?」と題しまして、UIテストの自動化で出来ることや注意点、ポイント、適用方法をご説明してまいりました。読者の方々におかれましても、UIテスト自動化を導入するにあたり、テスト自動化ツールの選定に悩むところがあるかと思います。その選択肢の1つとして、無料でも使用できるテスト自動化ツール「T-DASH」をご紹介させて頂きます。

「T-DASH」であれば、本記事で説明した画面遷移テスト、画像比較テストのテスト自動化が可能となります。また、テスト自動化スクリプトは日本語で作成できるため、IT経験が少ない方や、間接部門の方であってもカンタンにテスト自動化が可能となります。ぜひ、一度インストールして「T-DASH」を体験してみてください。

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