テスト自動化をサクサク進めるためのWebマガジン「SAKUTES(サクテス)」 » テスト自動化のメリット・デメリットとは?

テスト自動化のメリット・デメリットとは?

テスト自動化をサクサク進めるためのWebマガジン「SAKUTES(サクテス)」 » テスト自動化のメリット・デメリットとは?

近年注目されている「テスト自動化」。これは、ソフトウェアを開発する最終段階で、正常に機能するかのテストをおこなうプロセスを自動化することです。

しかし、全てを自動化しているのではなく、いくつかのプロセスのうちの「テスト実行」という、テストを実施し、テスト結果や欠陥を記録するプロセスの一部を自動化しています。

将来的にはそのほかのプロセスも自動化されるでしょうが、現在では「テスト実行」の部分です。今回は、この「テスト自動化」のメリットとデメリットをご紹介していきましょう。

テスト自動化のメリットは?

テスト自動化においては、ソフトウェアの数が膨大になり、また、その複雑さや規模が大きくなっていく現状で、ソフトウェアに対するテスト工数が大きく増大していることが背景にあります。ソフトウェアのサイクルもスピードを増している現在、品質と即時性を同時に成立させる必要があるのです。そのようなことから、「ソフトウェアの効率化」を実現するために「テスト自動化」は、現在非常に注目を集めています。ソフトウェアのテスト効率化に貢献するテスト自動化は、どのようなメリットがあるのでしょうか。

コストの削減

テスト自動化で1つ目の大きなメリットは、コストの削減です。手動でおこなうテストと比較して、自動でおこなうテストは、大きなコストの削減となります。コストの削減効果は対象のソフトウェアや自動化されるテスト、テストの体制等によってケースバイケースとなりますが、毎月テストをおこなう人数を5人として、テストの効率化を計算すると、月に100万円以上のコスト削減が図れる場合もあります。

テスト自動化によって削減されたコストやリソースを開発に再度配分することで、開発生産性の向上にも寄与することができるでしょう。

しかし、注意点もあります。テスト自動化には環境構築やテストスクリプトの作成といった初期導入コストや導入後の運用費用も発生するためです。

効率化をするには、「何度も繰り返し同じテストを行う場合」や「導入後の運用コストが小さい場合」などに絞ったほうが良いでしょう。テスト自動化により、必ずしもコスト削減にはならないケースもあることを覚えておきましょう。

時間の効率化

テスト自動化は、手動によるテストと比較して、大幅にテスト時間を短縮できることが可能です。もちろん、ソフトウェアの種類や体制にもよりますが、月に1人で約160時間のテストを実施していたケースでは、10時間まで短縮できたこともあるそうです。基本的には、自動テストにおいて同じテストを同じ条件で実施する場合には毎回同程度の所要時間となることから、テスト実行にかかる時間を精度高く見積もることができるというメリットも考えられます。

いつでもテストが可能

手動のテストの場合には、通常テストエンジニアが担当します。ですから、テストの時間はテストエンジニアが稼働している時間ということになってしまいます。テストのタイミングによっては、ほかの開発プロセスなどを一時的にストップすることもありえます。その点、自動テストは基本的には時間を問わず、終業後や深夜、休業日といった営業時間外にテストを実行することが可能なため、開発とのバッティングを避けやすく開発側の生産性に悪影響を及ぼしにくいのです。

正確性の向上

手動のテストでは、人間が担当しますので、いくら注意をしていても、ヒューマンエラーが発生する可能性は残ります。一方で、自動化することにより、コードに書かれた内容が自動的にテストされるので、ヒューマンエラーの心配はなくなり、正確性の向上に繋がります。

テスト自動化のデメリット

上記のように、テスト自動化は、多くのメリットをもたらしてくれます。しかし、もちろん、デメリットがあることも事実です。デメリットも知ることによって、テスト自動化を総合的に判断できるでしょう。

自動化できない事例や対象とならない場合も

テスト自動化は、必ずしも万能なものではありません。自動化ができないものもあります。例えばユーザビリティテストなど、原理的に手動で行う必要があるテストタイプがあったり、captchaなど自動での操作を防止する仕組みが含まれたページです。また、自動化の対象にならないケースもあります。例えば、繰り返し実行しないテストや、テストコードの頻繁な修正が発生する仕様が変わりやすい機能のテストなどは、手動で行なったほうがコストがかからないので、自動化は避けるべきでしょう。

決められたテストしかしない

当然のことながら、テスト自動化は、コードに書かれたテストだけをおこないます。例えば、テスト対象の画面のレイアウトが大きく崩れていたり、仕様とは全く異なる項目が表示されていたとしても、それは検出されないということなのです。一方で手動テストの場合には、明らかに異なる表示がされていた場合には、ほかの視点から見ていても実行者は気がつくはずです。テスト自動化は、人間の目とは違うということを理解しておくことが必要です。

保守運用が必要

テスト自動化は、導入すれば、それだけで継続的に使えるというわけではありません。使用を続けるには、保守運用が必要になります。導入後に関連する機能のアップデートがあった場合は、それに合わせてテストコードを適宜修正する必要がありますし、昨日の追加があれば、テストコードの追加が必要となります。また、自動テストにかかる時間の短縮、信頼性の向上など、テスト自動化の保守運用フェーズにおけるタスクは非常に多いのです。テスト自動化を検討する場合には、社内で保守体制の構築も必要となるのです。

結果分析が必要

自動テストで失敗したときには、なにが不具合を起こしたのかを、必ず分析する必要があります。手動の場合には不具合の原因は容易に判明しますが、自動の場合、原因は不具合だけにとどまらないため、非常に手間がかかります。

テスト自動化は検討が必要

テスト自動化は、さまざまなメリットもありますが、導入しても、そのメリットを享受できないケースもあります。自社の開発体制がテスト自動化に合致しているか、詳細な検討が必要になるでしょう。

無償ツールでテストを自動化する場合の注意点を見る

⽇本語のサポートが⼿厚い!
UIテスト自動化ツールを比較

ノンプログラミングで
⽇本語のサポートが⼿厚い

テスト⾃動化ツールを⽐較
商品名 Ranorex
(ラノレックス)
Autify
(オーティファイ)
商品タイプ パッケージ型

膨大なテスト工数を
削減したい企業向け

SaaS型

初期費用を抑えて
導入したい企業向け

対応テスト
  • デスクトップ
  • webアプリ
  • モバイルアプリ
  • デスクトップ
  • webアプリ
  • モバイルアプリ
実行回数
の制限
制限なし 制限あり

400回/1000回/任意 ※プランにより異なる

日本語サポート 導入後のセミナーが充実! ヘルプサイトが充実!
体験版 14日間 14日間

※Googleで「テスト自動化ツール」と検索し上位表示されたパッケージ型、SaaS型のテスト自動化ツール21種類の中から、(1)クロスデバイス、マルチブラウザに対応し、(2)日本語のサポートがあり、(3)ノンプログラミングでシナリオ作成が可能なツールをピックアップ(2021年11月1日調査時点)。パッケージ型、SaaS型それぞれの代表商品を選出しました。

【代表商品の選出基準】
☆パッケージ型:上記の条件の通り。
☆SaaS型:上記の条件に加え、公式サイト上に導入事例がもっとも多かったツールを選出。