テスト自動化ツールの導入を検討する企業の多くは、現状の手動テストでは不便さや物足りなさを感じていて、もっと良い方法がないかと模索していく中で、テスト自動化ツールの導入を検討し始めます。

導入後はテスト自動化ツールを全面的に使い始めるのか?というとそうではなく、テスト自動化による失敗が起きないように、まずは一部で使ってみる。E2Eテストを手動で行う感覚でテストケースをまずは一つ作ってみる、といったやり方が一般的です。

テスト自動化ツールを使った最初の小規模なテストに成功すると、次に考えるのが、本格的なテスト自動化ツールの導入です。他の部署にアナウンスしたり、もっと大規模な自動化テストを実行してみたいと考える時、テスト自動化ツールは一体どんな機能が備わっていたら便利でしょうか?


1. テストがノーコードで作れる

最初はテスト自動化に尻込みしていた企業も、一度使い始めてみると予想していた以上に簡単にテストケースが作れることに気が付き、より便利に使ってみたいと考え始める会社がほとんどです。そして次第にテスト自動化ツールの便利な機能は他に何があるのだろうかとワンランクアップした視点に立ち始めます。

このタイミングで注目されるのが「テストがノーコードで作れる機能」です。

ノーコード機能はユーザーが使うように操作をするだけで一連の内容がそのままテストシナリオになるため一からコードを作り込む必要がありません。メンバー間でもテストを作り始めることができるのでテスト自動化をスケールさせられます。

そもそもノーコード「No Code」とはどういう意味なのかというと、コーディングによるプログラミング開発を行わない、ソースコードの記述をせずにアプリケーションやWebサービスの開発を行うことです。

世界中の新しいものを紹介するブログの著書で有名な「Product Hunt」(プロダクトハント)の創業Ryan Hoover(ライアン・フーバー)さんは、ノーコードについて「ノーコードはGUI操作のみで機能が充実したWebアプリを作ることができるサービスの総称だ」と定義したことがありました。

ノーコードの機能はもちろんより細かい設定を行いたい場合、ノーコードで作成したプログラムに手動で設定を追加できます。例えば雛形をノーコードで作成し、その上でより高度なプログラムを手動で作り込むことができます。雛形部分だけでも自動で作成できれば、その分大幅に作業項目が短縮できます。

ノーコードを利用する最大のメリットは時間とコストを大幅に削減できることです。このことは市場で生き残る上でとても大切な要素になります。

ソフトウェア開発市場は年々需要が高まり、ニーズは多岐に渡り、ユーザーの要望に都度応えていかなければなりません。ソフトウェアのリリース速度は今お客様や世の中が何を求めているのか、すぐに反応していち早くサービスをリリースすることが重要です。ノーコード機能はこれを最大限助ける役割を果たします。

テストを自動化してもノーコード機能がなければ一からプログラミングしなければなりません。しかしノーコード機能があればそれだけ工数を省けるのでプロダクトリリースはあっという間に高速化します。

2. テストコードをAIが自動メンテナンスする

ノーコードの次に必要不可欠な機能は「テストコードをAIが自動メンテナンスする機能」です。テスト自動化ツールを導入した企業の中には、テストの8割を自動化することに成功したケースがあります。なぜ導入を決めたあと、自動化はスムーズに進んだのでしょうか?その理由の一つにテストコードをAIが自動メンテナンスしてくれるという機能が関わっています。

AI自動メンテナンス機能は、リリースの度に変更されるUIの変化をAIが監視することで、テストシナリオを自動的にアップデートします。システム側に変更があっても、テストコードを改修する必要がありません。例えば、ソフトウェアのソースコードに変更が生じた場合でも、AIが自動で変更箇所を検出し修正してくれます。

もしも、AIによる自動メンテナンス機能がなかったら、この変更は手動で行わなければなりません。その作業をAIが自動で行うため大幅な時間短縮に繋がるのです。壊れたテストスクリプトをひとつひとつ直す作業は最小限に抑えられます。

3. クロスブラウザテスト機能

開発したソフトウェアがどのブラウザで期待通りに動作するのか、これは必ず確認しなければならないポイントです。Google Chrome、Firefox、Safari、など、主要なブラウザとWindowsやMacなどのOSをそれぞれ組み合わせてテスト環境を構築し実行します。これらのテストを通常クロスブラウザテストと呼んでいます。

テスト自動化ツールにこのクロスブラウザテスト機能が備わっていれば、作成したテストを同時に並列で実行しながら結果をそれぞれ確認できます。これによりテストの頻度とカバレッジ(テスト項目全体のうち、どのくらいの項目をカバーできているか)を最大化できます。

テスト自動化ツールのクロスブラウザテスト機能は、作成したテストシナリオを複数ブラウザで同時に検証できるため、複数のブラウザに対して同じ項目を何度も手動でテストする必要はありません。現状のリソースで対応可能な点が大変便利です。

ブラウザはメーカーの種類だけでなくバージョンにも気を配る必要があります。最新のものを使っている人もいれば、古いバージョンのままの人もいます。最新のCSSやJavaScriptに対応していないケースもあります。

また対象となるデバイスの数も様々で、スマートフォン、タブレット、最近ではスマートTVを利用しているユーザーが増加しています。最新の機器を使用している場合はテストの準備が容易ですが、古い機器にしか搭載されていないブラウザなどのテスト環境を人間が一つ一つ手作業で準備するのは困難で、どうしても漏れが発生してしまいがちです。

また障害を持った方が多く利用しているスクリーンリーダーのような、コンピュータの画面を自動で読み上げてくれるソフトウェアなどの動作検証も場合によっては必要になります。マウスを使わずにキーボードだけでブラウズする人もいるため、全てのテスト状況を手作業で全て最初から網羅するのは非常に手間がかかります。

クロスブラウザテスト機能があれば、予め自動化ツールに備わっているケースが利用できるので大幅に時間短縮可能なのです。

TOP3以外にもできれば欲しい機能

4. 豊富なテストの種類

テスト自動化に慣れてくると当初よりも色んなことに挑戦したくなります。そんな要望を叶えてくれるのが豊富なテストの種類です。テスト自動化ツールに設置されたテストの種類が多いとその中からシチュエーションに合わせた機能が選べます。

具体的にはどんなテストが備わっていたらいいのか?8つの例をご紹介します。

  • ユニットテスト(単体テスト)
  • APIテスト
  • インテグレーションテスト(統合テスト)
  • UIテスト
  • スモークテスト
  • 承認テスト
  • パフォーマンステスト(性能テスト)
  • アクセシビリティテスト

ユニットテスト(単体テスト)、API(アプリケーション・プログラミング・インターフェース)テスト、インテグレーションテスト(統合テスト)、UIテストまでは通常備わっている機能です。差がでてくるのはその先からなので、追加されているとどんな風に便利なのか、一つ一つ見て行きましょう。

スモークテスト

ソースコードの開発、追加、修正後に、プログラムが起動するか、エラーで停止しないか、バグを発見するためのテストです。ソフトウェアテストを実施する前に、プログラミング部分だけをターゲットにして確認が行えます。これを先に実行しておくことでソフトウェアテストを行う際にソースコードには問題がないことが証明できます。

ソースコードのちょっとしたミスがソフトウェアテストの失敗に繋がり、案件自体が差し戻されてしまう状況を防ぎます。

承認テスト

別名、受け入れテスト(UAT)ともいいます。自社アプリケーションでの利用が要望通りにシステムが稼働するか確認するテストです。ここではシステムの不具合を見つけるのが目的ではなく、実際に思い描いていた通りにシステムが稼働するかどうかをチェックします。開発側が承認テストを事前に行うことで、エンドユーザーへ提供するアプリケーションが要求した機能や性能などが備えているか確認できます。

パフォーマンステスト(性能テスト)

要件を満たすような性能がでるかどうかを確認します。本番稼働と同じように動かし、単位時間あたりの処理量(スループット)、応答時間(レスポンスタイム)、待ち時間、リソースの状況をチェックします。

以上、8つのテストはどれも備わっていたら便利なものばかりです。

【関連記事】テスト自動化とは?8つの種類とテスト自動化のメリットをご紹介! | Autify Blog

5. UIが直感的で分かりやすい

「テスト自動化ツールを操作するUI画面は分かりやすければ分かりやすい程、テスト自動化の導入がスムーズに進む」と、既に導入した企業から声が上がっています。UIとはユーザーインターフェースの略で、主に人とコンピューターの接点のことを表します。

UIには2種類、CUIとGUIがあり、CUIはCharacter User Interfaceの略でキーボードからコマンドを入力して文字だけで動作させるのに対し、GUIはGraphical User Interfaceの略で、アイコンやマウスの矢印など、普段デスクトップ画面に表示される様々なアイテムのことをいいます。

CUIはコマンドプロンプトのようにシンプルなものがほとんどなので使い勝手にあまり差は生じません。しかしGUI画面は使いにくいと、どこをどう操作したらいいのか、導入の初期段階でつまずきかねません。テスト自動化ツールを選ぶ時はUIの中でも特にGUIの使い勝手のいいものを選ぶのがおすすめです。

まとめ

テスト自動化ツールの導入を検討する際は、まずは始めやすいものを選び、その次は続けやすいものであること、最後は色んな機能が使えることを決め手にして選定すると思い通りの結果がついてくるでしょう。

テスト自動化ツールは始めから一気に導入するのではなく、小さい範囲で試し、段階的に広げ徐々に機能や範囲を拡大するのがおすすめです。
 
Autifyではこの他にも品質保証やテスト、アジャイル開発に役立つ資料を無料で公開していますので、ぜひこちらからご覧ください。