UIテストの品質を高めるには?
テスト自動化ツール活用のポイント
2022年8月10日
ご相談・無料お見積りシステム開発におけるテスト工程は、開発した内容について「想定どおりに動作するか」「バグがないか」「セキュリティ上問題があるコードがないか」などを検証する重要な工程です。しかし、「開発期間の後半に実施されるため、スケジュールの遅れの影響を受けやすく、十分な期間を取れない」「テスト項目が多く、担当者の負担が大きい」など課題も多くあります。なかでも、ユーザが実際に利用することを想定して画面を操作し、挙動を確認するUIテストは、実行から結果の確認、エビデンスの取得などでかなりの手間がかかり、いかに効率化と品質担保を両立するかが課題となっています。
この解決策として注目されているのがテスト自動化ツールです。本コラムでは、UIテストにおいて、テスト自動化ツールを効果的に活用するためのポイントを解説します。
UIテストとは?
実際の操作をおこない、動作や表示内容を確認する
UIテストは、「画面を実際に操作して、正しく動作すること」を確認するテストで、大きく「想定した結果が表示されるか」「画面の崩れがないか」といったポイントを確認していきます。例えば、ボタンやテキストボックスなど画面の要素が想定どおりに表示されているか、入力した内容が正しく反映されているか、エラーとなる内容を入力した場合に、正しくエラー画面に遷移するか、などが挙げられます。あわせて、画面のレイアウトについても、問題なく表示されていることを確認する必要があるため、OSやブラウザ、端末など、様々な環境でテストすることが求められます。
システム改修時に実施するリグレッションテストとして、UIテストをおこなうケースも多くあります。
UIテストが抱える2つの課題
UIテストの課題は大きく2つあり、まずはコスト・工数がかかることが挙げられます。実際の操作を想定したテストとなるため、実行に工数がかかることに加え、表示内容を確認するために「大量のユーザアカウントを実際に登録しなければならない」などのケースもあり、かなりの時間がかかることにもなります。また、エビデンスとして各画面をキャプチャし、Excelに貼り付けた資料の提出を求められることも多く、手作業ではかなりの手間になります。特に、システム全体が対象となるリグレッションテストではテスト項目数も多く、工数をいかに削減するかが課題となります。
もう1つは精度の問題です。UIテストは画面を実際に操作するため、人が作業する限り操作ミスのリスクは残ります。見落としもあり、「やるべき範囲すべてを実施できていなかった」「誤りに気づかなかった」などから、不具合が残ってしまうと、システムの品質低下につながりかねません。品質向上の観点からも、改善策が求められています。
効率化と品質向上を両立する「テスト自動化ツール」
テスト自動化ツールの種類と特長
UIテストに関する課題の解決策としてテスト自動化ツールが注目を集めています。テスト自動化ツールは、テスト項目の作成、テストの実装、実行、検証などのプロセスを自動化するものです。しかし、どのツールも必ず全体をカバーするとは限らず、ツールによって「自動実行に強みを持つツール」「自動検証機能が充実したツール」など、自動化する対象や搭載している機能が異なります。例えば、ソースコードを解析し、セキュリティ上のリスクなどが潜んでいないかを検証する「静的解析ツール」や、ソースコードから自動でテストケースを生成する「単体テストツール」などが挙げられます。
当然ながら、単体テスト、結合テスト、UIテストなどテストのフェーズごとに適したツールは異なるため、用途にあわせて選ぶ必要があります。UIテストについては、実際の画面操作を記録するなどして、テストシナリオを作成し、自動で実行する「UIテストツール」があり、作業の大幅な効率化を実現します。
品質向上の鍵は、目的や要件にマッチした製品選び
どのUIテストツールを選ぶかも重要なポイントです。ツールによって提供する機能や対応範囲は異なり、自社の目的や要件にあっているかを検討する必要があります。ここでは選定時のポイントについて解説しましょう。
① スクリプト作成が必要か
UIテストツールでは、シナリオ作成のために、画面上の操作を記録するものと、スクリプト(プログラミング)が必要なものがあります。スクリプト作成により、プログラマが効率的にシナリオを作成できるメリットもありますが、当然、担当者にはプログラミングスキルが求められます。ツールを誰が利用するのか、担当者のスキルはどうなのか、スクリプト作成で効率化した方がよいのか、など利用状況にあわせて選びましょう。
② 必要な環境・要件に対応できるか
基本的なポイントにはなりますが、OSやブラウザ、端末(スマートフォンやタブレットなど)といった開発要件への対応状況は必ず確認しましょう。特に、レガシーなシステムでは、古いバージョンへの対応が求められるケースもあるため、注意が必要です。
WebアプリケーションのUIテストでは、ブラウザ内だけではなく、FTP連携やメーラーの起動、DB操作など、ブラウザの外の操作も含めてテストする場合があります。こういった操作への対応が必要か、UIテストツールでどこまで対応できるのかもあわせて検討しましょう。
また、最近では、APIを利用して外部と連携するシステムも増えているため、APIテストへの対応可否も確認しておくことをお勧めします。
③ どこまでの作業を自動化するか
UIテストツール導入にあたっては、「ツールでどこまで自動化したいか」も事前に決めておきましょう。テストの実行だけ自動化するのか、検証まで自動化するのかによって、選ぶべきツールは変わります。特に、検証を自動化する場合は、画面表示のほか、ログやDB、出力ファイルなど、どういった項目の検証まで必要なのかを明確化した上で、対応できるツールを選ぶことが重要です。
もう1つ、エビデンス取得については、各画面の画像データを出力するのみ、というツールも多く、Excelに貼り付けた報告書が求められる場合、手作業で対応するしかないケースも。画像を貼り付けたExcelまで自動生成するツールもあるため、どこまでの機能が必要なのかは事前に検討しておきましょう。
このほかにも、CI/CDとの連携や、セキュリティ要件への対応状況などもチェックすべきポイントとなります。
日本の開発現場にマッチしたUIテストツール「ATgo」
エビデンスExcel生成、自動検証など豊富な機能でUIテストを効率化
UIテストツールのなかでもお勧めしたいのが、WebアプリケーションのUIテストを自動化する「ATgo」です。テスト自動化の手法は特許を取得しており、レコーディングで簡単にシナリオを作成し、複雑なグリッドなどの操作も自動化することができます。テストシナリオ作成は、コーディングにも対応し、担当者のスキルや事情にあわせた、効率的な作業を実現します。
また、OSはWindows、Mac OS、Android、iOSとPC、スマートフォン、タブレットを網羅し、主要なブラウザもカバー。様々な環境でのテストが可能で、ブラウザ外のOSやデータベース、FTPといった操作にも対応します。さらに、APIテストにも対応、画面項目やログなど細かな検証も可能と、WebアプリケーションのUIテストで必要な機能を揃えています。
UIテストツールのなかでも、OSSや海外製品ではマニュアルやサポートが英語のみという製品も多くありますが、国産ツールであるATgoは、サポート、マニュアル、画面がすべて日本語で、学習コストを最小限に抑えられます。エビデンスを貼り付けたExcelの自動生成など、日本の開発現場の事情にあった機能を搭載している点も魅力と言えるでしょう。インストール不要、インターネット接続も不要で利用できるため、案件によってセキュリティ要件が厳しい場合にも、利用できます。
CI/CDとの連携までワンストップでサポート
NRIはATgoの販売代理店として導入支援をおこなっており、ツールの導入だけではなく、効率的なテスト実施の方法の提案からサポート。例えば、テストの内容や規模によって自動化への向き・不向きがありますが、事前のコンサルティングで、効率的な方法を提案します。
また、ソースコードの管理からテストスクリプトの作成、テスト実行、実行環境の提供までワンストップで支援します。DevOpsソリューション「aslead DevOps」との連携による、CI/CDへの組み込みにも対応し、ソースコードをコミットしたタイミングでテストを自動実行する仕組みを実現。細かくテストを実行することで、バグや問題点の早期発見、品質向上につながります。
自社の要件にあったテスト自動化を実現するにはどうすればよいか、テスト自動化環境をどう構築すればよいのか、そもそもなにから検討すればよいのか、などお悩みの方は、ぜひご相談ください。
テスト自動化のメリットやATgoの特長について、より詳しく知りたい方は下記のコラムをご覧ください。
テスト自動化のメリット、ATgoの魅力を紹介