自動化するべきテストケースの見分け方

この記事はNishi Grover Gargによるゲスト投稿です。

スピードの速い今日のアジャイルプロジェクトにとって、テストの自動化は不可欠です。テスターはソフトウェアの品質を確保するために、継続的に自動テストを計画、設計、実行する必要があります。しかし、最も重要なタスクは、まず何を自動化するべきかを決定することです。以下は、次に自動化するべきものの優先順位を付けたり、テスト自動化戦略を進めたりするのに役立つ質問をまとめたリストです。

そのテストは繰り返し実行されるか?

テストケースの自動化に意味があるのは、テストケースが繰り返し実行される場合です。テストケースまたはテストスイートをどれくらいの頻度で実行する予定かも必ず考慮します。

テスト対象は優先度の高い機能か?

一部の機能または領域は、他の機能や領域よりエラーが起こりやすく、そういった領域ほど自動化に投資する見返りが大きくなります。優先度の高いテストを自動化すると、一貫性を確保でき、ヒューマンエラーの可能性が低減されます。 

そのテストは複数のデータセットまたはパスで実行する必要があるか? 

データセットを変えてテストを実行する必要がある場合、データ駆動型アプローチによるテスト自動化は最も利便性の高いフレームワークである可能性があります。一度だけ自動化し、異なるデータで同じ手順を繰り返せば、煩雑な作業がなくなり、ミスやエラーの可能性を最小限にできます。

そのテストは回帰テストまたはスモークテストか?

回帰テストおよびスモークテストは、最終的に最も頻繁に実行することになるテストです。一般的に、これらのテストスイートは製品全体をある程度カバーしているため、自動化するとソフトウェア全体の品質をすばやく評価できるようになります。回帰テストスイートを自動化すると、DevOpsパイプラインでビルドプロセスと統合するのが容易になり、結果として品質を通常のビルドの一部に組み込むことが可能になります。

使用している自動化ツールで実現可能な範囲にあるか?

テスト自動化の実現可能性を分析するには、現在のツールセットで特定の自動化を実行可能かどうかを確認する必要もあります。たとえば、特定の1つのテストのためにSAPインターフェイスへの入力を自動化しようとするのは、現在使用しているWeb自動テストツールでサポートされていない場合、時間の有効活用とは言えないかもしれません。別のツールを購入したり、代替ツールを試すのも、有効な時間の使い方ではないかもしれません。このような場合は、そのテストを手動で実行するほうがよいでしょう。

テスト対象領域は変更が多いか?

これは重要な質問です。なぜなら、自動化を考えているテストが頻繁に変更されるのであれば、現時点で自動化に労力をつぎ込む価値はないかもしれません。また、ユーザーインターフェイスやUI要素に依存する自動テストは、UIが変更されたときに動作しなくなる可能性が最も高いテストです。

今後予定される機能変更や関連機能への影響を詳しく検討し、もし大きな変更が予想されるのであれば、おそらく当面は自動化を延期するほうがよいでしょう。

そのテストはランダムネガティブテストか?

機能の堅牢性をテストするには、ネガティブテストを実施する必要があるのは当然です。しかし、ランダムネガティブテストを自動化しようとするのは、自動化の用途として最適ではないかもしれません。

テストは並行して実行されるか、それとも特定の順序でだけ実行されるか?

自動化を適切に設計すると、テストを並行実行することで大幅に時間を短縮できます。自動化の効果を最大限にするには、この利点を活用することが重要です。テストが特定の順序でだけ実行される場合は、自動化の候補として最適ではないかもしれません。それでも自動化することはできますが、労力のわりに効果は大きくないでしょう。まず、自動化の戦略を検討するとよいでしょう。

レポートのためだけに自動化しようとしていないか?

テスト自動化ツールはソフトウェアの品質に関して有益な洞察を提供し、情報豊富なレポートによって品質を提示できます。しかし、そういったレポートだけが自動化を考えている理由でしょうか?単にテストレポートの赤や緑のステータス結果を眺めるのは、ソフトウェアの品質を評価する最良の方法とは言えないでしょう。どのテストが失敗したが、なぜ失敗したか、修正するには何が必要か、時間をかけて分析する必要があります。いったん作成したテストは、メンテナンスと継続的なモニタリングによって最新の状態に保つ必要があります。こういったことを常に念頭において、労力を見積もる必要があります。テスト自動化の目的は、単に見栄えのよいレポートを作成することではありません。

上記の質問を検討し、テストケースの状態や自動化の背後にある意図、実現可能性、さらに自動化によって得られる価値を分析します。この記事が自動化の候補にするべきテスト、するべきでないテストを判断するお役に立てば幸いです。

Nishiは企業トレーナー、アジャイルの信奉者、そして根っからのテスターです。業界で13年以上の経験を持ち、現在はSahi Proでエバンジェリスト兼トレーニングヘッドとして働いています。トレーニングに情熱を注ぎ、テストコミュニティイベントやミートアップを主催したり、多数のテストイベントやカンファレンスで講演を行っています。アジャイルおよびテスト分野での最近のトピックを取り上げたブログをご覧ください。

(この記事は、開発元Gurock社の Blog 「How to Decide if You Should Automate a Test Case」2021年5月28日の翻訳記事です。)

eBook 公開中

Paul Gerrard著 効果的なテスト管理12の秘密 (日本語)

テスト計画やテスト管理に役立つ12のトピックを解説します。

詳細はこちら