WRブログ

テスト自動化導入のポイントVol.1 〜どのテストを自動化すべきか〜

テスト自動化のポイント

これまで、単純作業や繰り返し行われる業務の多くが自動化されてきました。工場での生産ラインなどを想像すれば分かりやすいかと思います。そして、それはソフトウェア開発の場においても言えます。例えば、テンプレートやフレームワークなどもそのひとつです。

今回は、単純作業も多いのに意外と自動化されていることが少ない「テスト分野での自動化の導入」についてご紹介します。

全てのテストを自動化する事はできない

テスト自動化 向き不向き

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

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

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

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

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

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

自動化に向いていても、たまにしか実施されないテスト

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

物理的な作業が発生するテスト

デバイスとデバイスを接続するテスト、例えば電源のオン/オフや、ケーブルの取り付け/取り外し、カートリッジの抜き/刺し、なども自動化が難しいもののひとつです。

自動化に向いているテストとは?

前項までは「自動化に向かないテスト」についてご紹介しました。では逆に「自動化に向いているテスト」とは、どのようなものなのでしょうか。

繰り返し行われるテスト

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

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

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

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

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

変更が少ないテスト

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

テスト作業を自動化した事例紹介

事例1:退会確認の自動化

ある企業では、自社サービスの会員が退会した後の画面確認を毎日手動で行っていましたが、規模拡大とともにその工数は増えていくばかりでした。そこで、確認作業の一部を自動化したところ手作業の工数が大幅に削減され、最終的にはレポートの送信まで自動化されました。これにより、手作業の工数は全体で85%もダウンし、それにより得られたリソースをサービスの向上に使うことができるようになりました。

事例2:機能障害検知の自動化

ある会員制サイトでは、情報登録機能の正常動作を定期的にチェックしていませんでした。その後、「画像がアップロードできない」「反映が遅い」などのクレームによって、機能障害が発生していたことに気がつきました。この場合は、まずチェックのプロセスを新しく作成し、それらを自動化することにしました。次にユースケースシナリオ作成し、自動実行することで障害を検知可能にしました。これによりクレームの数は減少し、ユーザー数も増加しました。

その他の導入事例はこちら

まとめ

ここまで、自動化に向いているテスト・向いていないテストと、その事例についてご紹介しました。

・テスト自動化のメリットは「効率化」と「ミスを減らす」

・自動化しない方がいいテストもある

・同じ手順で繰り返し実行するテストは自動化に向いている

■テスト自動化に関するご相談はウェブレッジへ

弊社は、webサイトやスマホアプリ、クラウド製品、業務システムなどのソフトウェアにおけるテスト・検証を支援する、第三者検証サービスを提供しております。
テスト自動化に関しても自動化による投資対効果の調査から自動スクリプト作成支援、保守まできめ細やかなご提案を致します。

まずは、お気軽にお問い合わせください。

【無料ダウンロード】テスト自動化の導入

品質向上支援のスペシャリスト集団である株式会社ウェブレッジが、テスト自動化を組織へ導入するにあたってのステップや、自動化で失敗しがちな注意点に関してまとめた資料を無料でご提供しております。

テスト
自動化の導入

テスト自動化の導入

テスト自動化の導入

■テスト自動化に関するその他の解説記事

テスト自動化導入のポイントVol.1 ~どのテストを自動化すべきか~【本記事】
テスト自動化導入のポイントVol.2 ~テストツール導入の落とし穴~
テスト自動化導入のポイントVol.3 ~工数削減の効果と効果測定の方法~
テスト自動化導入のポイントVol.4 ~組織へ導入するプロセス~

【参考文献】:
『システムテスト自動化 標準ガイド』