Webサイトやシステムを開発する際に実施する「UIテスト」は、ユーザーが実際に操作する画面の動きや操作性、見やすさなどを確認する、重要な工程です。手作業でUIテストを実行する場合は、確認もれや操作ミスなどが起こりやすく、テストの質や効率性に限界があります。そのため、テスト工程の自動化が注目されています。
本記事では、UIテストの自動化で期待できることと、自動化ツールを導入する際のポイントや注意点などを解説します。
UIテストとは何か?
UIテストとは、Webサイトやアプリケーションなどの開発において、実際に画面を操作して製品が正しく動作するか、操作時の利便性は高いか、バグや画面の崩れがないかなどを確認するテスト工程のことです。
例えば、ボタンやテキストボックスが設計どおりに動作するか、フォームに入力した内容が正しく送信されているかなどのチェックが該当します。
多くのWebサイトやアプリケーションは、パソコンやスマートフォン、タブレットなど複数のデバイスで使用されるため、あらゆるタイプのデバイス画面での表示崩れがないかをテストすることも、UIテストに含まれます。
UIテストの課題とは?
UIテストを手動で行う際は、以下の2点が主な課題となります。
・工数がかかる
UIテストでは、実際に製品の画面を操作して動作を確認する必要があるため、どうしても工数がかかります。ボタンのクリックやフォームへの記述・送信などをする場合、機能が多い場合、メニューやボタンの数が多い場合などは確認作業に時間を要します。また、テストのエビデンスとして、各画面をキャプチャしExcelに添付した資料の提出を求められることも多く、その手間も小さくありません。
・精度・質にばらつきが出てしまう
手動で行うテストでは、ヒューマンエラーを完全に取り除くことはほぼ不可能です。見落としがあった場合、システムの品質の担保ができません。それによりシステム障害が発生すると、クライアントに大きな損害を負わせる可能性もあります。人の手によるUIテストでは、テストの精度・質のばらつきも大きな課題です。
UIテストの自動化で期待できることは?
前述した2つの課題は、UIテストを自動化することで解決します。UIテストを自動化すると、次のようなことが期待できます。
手間を削減できる
UIテストの自動化ではテスト仕様書を自動生成するため、検証を始める前の準備にかかる手間と時間を削減できます。また、製品によってはテストを実施して判明した製品の不具合や改善点をレポートに具体的に記述できるうえ、エビデンスとなる情報も自動生成するため、証拠画像をキャプチャしてExcelに添付するといった手間が省けます。テスト完了後は、すべてのデータと検証結果が自動で記録されます。そのため、手動で行う手間もなく、かつ、記録もれが起こる心配もありません。
精度が向上する
UIテストを手動で行っており、特に長時間にわたって複数の項目をテストするような場合は、疲れによる操作ミスや見落としなどが発生しやすくなります。テストを自動化すると、どのようなときでも、誰が担当した場合でも、作業の品質を一定に保ったまま検証を続けられるため、精度の向上・均一化が期待できます。
専門知識・スキルがなくてもテスト工程に携われる
Webサイトやアプリケーションの作成に携わるのは、必ずしもプログラマーやコーダーといった専門知識をもつ人ではありません。
例えば非IT企業で、社内用システムを製作する場合には、ITの専門知識やスキルを持たない人がプロジェクトの責任者に任命されるケースもありえるでしょう。そのような場合、手動で製品をテストする段階でエラーが発生すると、専門知識がない責任者には、エラーが発生した原因を解明できないかもしれません。
自動化した場合は、「この部分にこういう原因でエラーが発生した」ことが可視化されるため、専門知識がない人にもわかりやすく、すぐに改善策を講じることができます。これにより、スムーズにシステム開発を進められます。
また、テストコードの自動生成が可能なツールもあるため、プログラミングの知識がない人でもUIテストを実施できます。
テストの効率化ができる
UIテストを自動化すると、手動で行う場合よりもテスト実施にかかる時間は短縮されます。加えて、確認もれや見落としによる遅延がなくなるため、大きく効率化が進みます。
コスト削減ができる
UIテストを自動化すれば、これまでかかっていた工数を削減できます。自動で行うためミスによるテストのやり直しも発生しにくく、何度も繰り返しテストを実行する際には時間的コストも削減しやすくなります。テスト自動化によって削減したリソースを開発に配分すれば、開発生産性向上や品質向上にもつなげられるでしょう。
UIテストを自動化する際の4つの注意点
UIテストの自動化にはさまざまな効果が期待できますが、念頭に置いておきたい注意点もあります。主な注意点を紹介します。
1.自動化にもコストは発生する
前述のとおり、テストの自動化によりコスト削減が可能ですが、自動化のためのツールを導入する際に、人的・時間的コストは発生します。
自動化する際は、どのテストをどのように自動化するか、どのようなツールを導入するかといった検証が必要です。また、テスト設計やテストケースを作成する作業にかかる人的・時間的コストが発生します。また、導入するツールの購入費用と、ツールを使用するための環境構築にかかるコストも必要になるでしょう。
2.自動化ツールはコードどおりにしかテストができない
UIテスト自動化ツールは、書かれたプログラムコードどおりにしかテストを実行できません。例えば、人の目で見て明らかなレイアウト崩れや、クリックして内容が表示されないといった不具合があったとしても、プログラムコードで確認対象に指定されていなければ、検出できません。自動化するテスト項目と、引き続き人の手で実施するテスト項目をあらかじめ見極めておくことも大切です。
3.継続して保守運用が必要
ツール導入後は、ツールの保守運用が必要です。例えば、開発中の仕様変更でアプリケーションに機能を追加した場合は、追加した機能を検証できるようにテスト用のコードを変更しなければなりません。テスト対象が変わった場合にコードの変更が必要なケースもあります。例えば、Webサイトのテストに使用した後にアプリケーションを検証する場合は、テスト用のコードをそのアプリケーション用に変更しなければなりません。UIテストの自動化を図る場合は、中長期的に自動化ツールを保守運用していく体制を整える必要があります。
4.自動化できない、あるいは自動化しないほうがよいテストもある
すべてのテストを自動化すればよいかというと、そうではありません。なかには、自動化できない、または自動化しないほうがよいテストも存在します。
例えば、ユーザーの利便性を検証し、UX向上を目指す「ユーザビリティテスト」は、その性質上、手動で行う必要があります。また、仕様変更が発生しやすい機能や、単一の機能の検証だけですむ場合は、手動でテストしたほうが効率的です。
一方、リグレッションテストのように、自動化に向いているテストもあります。リグレッションテストについての詳細は、
「リグレッションテストとは?目的や重要性、実施の際の3つのポイント」をご覧ください。
UIテストを自動化する際の2つのポイント
UIテストを自動化する際には、以下のポイントを押さえておきましょう。
1.早めにテスト自動化を判断する
システムの開発段階で、開発するアプリケーションでUIテストを自動化できるかどうかを早めに判断しましょう。
例えば、開発の終盤になって自動化ツールとアプリケーションの相性が悪い、アプリケーションに使用しているOSに対応していないなどの問題が発覚した場合、テストの自動化ができないことがあります。事前に自動化ツールとテスト対象アプリケーションとの相性や対応OSなどを確認しましょう。
また、開発段階では、自動化ツールを設計書に書かれている機能のすべてに対応させないほうが良いでしょう。製作が進むにつれて機能に変更が生じ、あらかじめ作成したテスト用コードが動作しないケースも想定できるからです。単一画面、単一機能ごとにテスト用コードを作成すれば、無駄なく柔軟に対応しやすくなります。
2.自動化を適用するテストを検討する
自動化がよいからと無計画に自動化を進めた場合は、かえって工数の増加を招く可能性があります。UIテストを自動化することで効率性の低下を招いてしまっては、意味がありません。
前述のように自動化できないテストもあるので、それを把握したうえで戦略を立て、具体的にどのテストを自動化するかを判断しましょう。
例えば、ECサイトは商品購入までの流れが決まっていますが、一連の流れでユーザーが使う機能をテストする場合は自動化すると効率的です。Webサイトのコメント欄と問い合わせフォームで共通のコードを使っている場合は、その機能のテストを重点的に自動化してもよいでしょう。
仕様変更が発生しにくい製品のテストや繰り返し処理の多いテストなど、自動化による恩恵が得られやすいケースを見極めることや、まずはレギュラーテストから自動化し、その後エラー処理のテストを自動化するなど、段階的にUIテストの自動化を進めていきましょう。
UIテストを適切に自動化し効率化とコスト削減を実現しよう
数多くのシステムが開発されている現状から、UIテストの自動化は今後も重要性が増していくと考えられます。ただし、自動化ツールを導入しさえすれば、無条件に効率化やコスト削減などにつながるわけではありません。
検証対象ごとにテスト用コードを変える、検証項目を事前に細かく設定する必要があるなど、自動化ツールを導入しても人の手がかかる場面もあります。また、ユーザビリティテストのように、自動化ツールでは対応できないものもあります。テスト自動化のメリット・デメリットや注意点を理解したうえで自動化するテストを決定し、適切に運用していくことが大切です。
なお、テスト自動化ツールにはさまざまな種類があるため、その特徴を理解し、自社に合った製品を選定することが大切です。
SRAが提供する「Testablish」は、ノンプログラミングでテストコードを作成できるため、専門知識のない人でもテストの実施・運用が可能です。ITの知識やスキルのある一部の人に負担が偏ったり属人化が発生したりすることなく、テスト工程を進めることができます。
まずはお気軽に、無料試用版を試してみてはいかがでしょうか?
Web・GUIアプリのテスト自動化ツールなら「Testablish」
参考:
・
テスト自動化とは|テストを自動化するメリットと注意点|SHIFTASIA
・
UIテストの品質を高めるには?テスト自動化ツール活用のポイント| aslead
・
テスト自動化で「失敗しない」ために、何がいる? 必要なツールと手順をおさらい|atmarkit