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

テスト自動化にも向き不向きがある!?向いているものとは?

近年さまざまな場面で自動化されるものが多くなってきました。システム開発におけるテスト工程においても自動化の需要が高まっており、工数削減やコスト削減などにつながっています。では「どんなテストでも自動化すればいいのではないか!?」と思う方もいらっしゃると思いますが、そういうわけにもいきません。理由はテスト自動化には向き不向きがあるからです。本記事ではテスト自動化の向き不向きについて解説していきます。

テスト自動化とは何をするもの?

テスト自動化の向き不向きについて知る前に整理するべきポイントがあります。まずはテスト自動化とは何をするものなのか?自動化実現によりどのような効果が得られるのか?など、テスト自動化についての知識を深めていきましょう。

テスト自動化とは、テスト支援向けのソフトウェアを用いて、ソフトウェアテストの設計や実行、結果の確認及びレポート作成、進捗管理などを自動化させることです。ソフトウェア開発における一連の工程の一部あるいはテスト工程すべてを自動化することを指します。

これまでは、手動で行っていたソフトウェアテストに対して効率向上やコストの削減、実行時間の短縮を目的として取り入れていました。これからテスト自動化が求められる背景としては、アジャイル開発に代表される短期間でのシステム開発が求められています。自動化できるテスト項目は極力自動化するのが望ましいです。機能が複雑となりテスト項目が増えた場合でも、テストの自動化により高品質なシステムを短期間・低コストで提供可能です。

ここまで聞くと、「工数削減やコスト削減できるなら、どんどんソフトウェアテストの自動化を取り入れればいいのでは!?」と思う方もいらっしゃるでしょう。しかし、ソフトウェアテストの自動化には、自動化すべきテストとすべきではないテストが存在します。次にテスト自動化に向いているものと、向いていないものについて解説していきます。

テスト自動化にも向き不向きがある 向き不向きのテストをそれぞれ紹介

まずはテスト自動化に向いているテストと向いていないテストの大枠をそれぞれ3つ、挙げたいと思います。

【テスト自動化に向いている】

  • 繰り返し行われる
  • ミスが起こりやすい
  • 変更が少ない

【テスト自動化に向いていない】

  • 手順が決まっていない
  • ユーザビリティの評価
  • 実施回数が少ない

テストの自動化には多くのメリットがあります。単純な値入力などの場合、自動化により入力ミスも無くなり、入力速度も早くなります。さらに、テストに当てていた人的リソースを別の作業に当てることができるため、単純な品質向上だけでなく、製品の開発自体を促進するのに繋がる場合があります。

しかし、テストを自動化するのにも開発や学習コストが必要になります。そこで自動化できないテストや、自動化に向かないテストを、5つご紹介します。

【自動化できないテストや、自動化に向かないテスト】

1.手順が決まっていないテスト

自動化されるテストには手順書が必要です。そのため、「モンキーテスト」や「アドホックテスト」と言われる場当たり的にシステムを操作して不具合や不自然な挙動を見つけるためのテストは自動化を実現するのが難しく、仮に自動化できたとしても使用する回数が少なく、自動化の恩恵を受けにくくなります。

2.ユーザビリティテスト等の人的な側面が強いテスト

ユーザーにとって使いやすいかどうかをテストする「ユーザビリティテスト」などは、人以外では評価が難しいため自動化には向きません。例えば「フォントサイズが12pxかどうか」といったテストは自動化を実現できますが、「フォントサイズが12pxのとき、ユーザーは読みやすいと感じるか?」といった判断は自動化ではできません。

3.自動化に向いているが、実施する機会があまりないテス

テスト自動化の役割として重要なのが「効率化」です。自動化するための開発や学習コストを考えると、より多く繰り返されるテストを自動化しなければ、逆に効率が悪くなる場合があります。例えば、1年に1回実施するかどうかのテストであれば、自動化するよりも手作業でテストを実行した方が効率も良くなります。

4.物理的な作業が必要なテスト

デバイスとデバイスを接続するテスト、例えば「電源のオン/オフ」や、「ケーブルの取り付け/取り外し」、「カートリッジの抜き/刺し」、などの人の手が無いと実施できないものに関しては自動化が難しいでしょう。

5.探索的テストなど、ソフトウェアの動作を見ながらテスト項目を決めるテスト

探索的テストは事前にテストケースを設計せず、テスト実行の過程や結果を通じてテストの目標や内容を動的に調整していきます。そして積極的に質の高い新しいテストケースを設計していきます。そのため手順がなく、テストの結果によって次のテストを設計していくので、自動化をするのが難しいです。

では次に「自動化に向いているテスト」とはどのようなものか、4つ紹介していきます。

【自動化に向いているテスト】

1.繰り返し行われるテスト

テスト自動化を考えるうえで重要なのが「どれだけ効率化できるか」です。そのためには、自動化されたテストがより多く実施される必要があります。手作業で10秒かかるテストを1秒に自動化しても、1回しか実施されないのではたった9秒しか効率化されません。しかし、1,000回も実施されるのなら、9,000秒も効率化をすることができます。

2.ミスが起こりやすいテスト

文字列の入力や、似たような作業の繰り返しでは人的なミスが起こりやすくなります。そのミスに気がつけばいいですが、気がつかずにテストが通過してしまった場合、製品の品質にも影響を及ぼしかねません。そのため、製品にとって重要なテストであるほどコストメリットよりもリスクをとり、自動化した方がいい場合があります。

3.手順が決まっているテスト

すでに手順が決まっているテストの場合、誰がやっても(そのテストに関する経験やスキルがなくても)同じ結果が得られるテストであるものが多くあります。つまりプログラムにも落とし込みやすいことから、自動化に向いているテストと言えます。「回帰テスト(リグレッションテスト)」のように、同じ手順で繰り返し実行するテストの場合は、テスト自動化により大きく効率化できます。

4.変更が少ないテスト

機能改良により、前のバージョンの原型が無くなるほどの変更が発生する箇所では、仮に自動化したとしても変更のたびにプログラムの改修が必要になります。結局かけたコストと効率化したときの見返りが合わなくなってしまいます。

このように、自動化に向いているものと自動化に向いていないものの条件はいくつもあります。特徴を理解して、目的を明確にしてテスト自動化を導入するのが非常に重要なポイントとなります。次にテスト自動化に向いているものについてどのように導入していくかを解説します。

テスト自動化に向いている3つのポイントから導入してみよう

自動化を導入するにあたり、検討すべき重要なポイントは以下の3つです。

  • 【目的】:何のために自動化するのか?
  • 【対象、範囲】:どこまでを自動化するのか?
  • 【どうやって】:使うツール、ソフトウェアの選定

それぞれのポイントを具体的にみていきましょう。

ポイント1.テスト自動化の目的を決める

テスト自動化を成功させるためには、導入前にその目的を明確にするのが大切です。

まずは、「コスト削減」「時間削減」「人的工数削減」「定期実行」「連続実行」など、テスト自動化の目的を、優先度も含めて決定し、次にその目的が達成可能かを検討します。

例えば、「コスト削減」を主たる目的とした場合、初期コストや保守運用にかかるコストを考慮しても費用対効果が得られるかを検討します。手動でテストを実行した場合に比べて自動化によって節約できる時間などから、同じテストを何回実行すれば損益分岐点に達するかを算出して判断します。

「定期実行」や「連続実行」も同様に、試行回数があまり多くないものに対して導入するのは注意が必要です。理由はコストや人的工数の削減にはあまり効果がない可能性が出てくるため、その点も加味して判断が必要となるからです。

ポイント2.テストの対象と範囲を決める

前述したように、テスト自動化には向き不向きがあり、すべてのテストを自動化すればよいというものではありません。自動化の目的を加味しながら自動化の対象と範囲を絞り込みます。

例えば、「コスト削減」が目的の場合は、テスト手順が確立されており毎回必ず実施されるテストのみを自動化の対象にしましょう。そしてコスト削減効果が見込める部分に対象を絞る判断をします。テスト対象と範囲が決まったら、自動テストシナリオの設計を行います。

ポイント3.テスト自動化を実装するツールを決定する

自動化の目的と対象、範囲が決まったら、実装するツールを決定します。開発対象や目的に応じたツールであることはもちろんのこと、継続して運用することを見据えてツールを選定します。その際、ランニングコストやメンテナンスコストも検討しておきたいところです。

また、CI(継続的インテグレーション)ツールを使用している場合は、そのツールと連携が可能かも選定のポイントとなります。実際にツールを使用しないとわからない点もありますが、有償ツールにもデモ利用できるものが多いので、試用して目的に適しているかを事前に確認することをお勧めします。代表的なツールをひとつ、ご紹介いたします。

T-DASH(ティーダッシュ)

Webアプリケーションのテストをローコードで自動化できるツールです。WindowsとMacの2つのOSに対応しており、WebブラウザもChrome,Firefox,Edgeに対応していて、幅広くテストの設計ができます。日本語でのテストケースを作成することができ、コードを触った経験や開発経験が無い人にも非常に使いやすいツールとなっているのが特長です。また、無料トライアル期間があり、この期間中は有償プランと同様の機能が使えるため、導入を検討している方は、是非トライアルを試してみるのもよいでしょう。

まとめ

「テスト自動化にも向き不向きがある!?テスト自動化に向いているものとは!テスト自動化ツールも併せて紹介」と題しまして、テスト自動化に向いているテストと自動化に向いていないテストの解説と導入ポイント、代表的なツールの解説をしてまいりました。

テスト自動化を導入してみたいが、このケースだと自動化したほうがいいのか?しないほうがいいのか?という場面が、今後発生してくるでしょう。本記事で解説したテスト自動化の向き不向きを理解し、導入ポイントを押さえてテスト自動化を実現するツールを適切に選び、利用していくことがテスト自動化成功の秘訣になります。

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