テストの自動化を計画するときに答えるべき4つの質問

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

テストの自動化には、手動のテストとはまた違った課題があります。テストの自動化を進めるうちにさまざまな障害に遭遇し、テスト自動化を最大限に活用するのに苦戦します。

周到な計画はテスト自動化プロジェクトの堅固な基礎となり、テスト自動化のメリットを余すところなく享受するのに役立ちます。したがって、正しい道を確実に進むには、テスト自動化に飛び込む前に多くの事項を検討し、議論しておく必要があります。

以下は、テスト自動化を始める前に自問すべき4つの重要な質問です。

1.テスト自動化の目的は何か?

テスト自動化プロジェクトを始める理由にはさまざまなものがあるので、テスト自動化に着手するにあたって、基本的なゴールを明確にしておく必要があります。

たとえば以下のようなゴールが考えられます。

  • テスト(主に回帰テスト)の実行時間を短縮する
  • 繰り返し行われる回帰テストタスクを自動化し、手動テスターが探索テストにより多くの時間を割けるようにする
  • 各スプリントの終了時にタスクを消化することで、積み残されたテストや保留中のテストの技術的負債を軽減する
  • 継続的インテグレーションシステムの一環としてのテスト実行を確立することで、ビルドされる新機能に関する不安を減らし、エラーがあった場合にいちはやく情報を受け取れるようにする。

ゴールが何であれ、チームにとってゴールが明確でなければなりません。なぜならゴールは、どのツールを選択するか、誰をアサインするか、どんな戦略を採用するかなど、その後に行うあらゆる決定の基礎となるからです。

2.実装をどうするか?

次に議論すべきポイントは、テスト自動化の実装についてです。

  • 誰がテストを自動化するか?
  • チームに専門家がいるか、あるいはテスターは教育されているか?
  • それとも開発者を参加させ、自動テストスクリプトを作成してもらうか?
  • その場合、開発者が開発タスクから離れることになるのを許容できるか、またその期間は?
  • テスターを教育して長期的にはスクリプトの自動化を引き継ぐ計画はあるか?
  • テスターを新しいツールに慣れさせるためのトレーニングや導入をスケジュールに入れることができるか?

テスト自動化スクリプト作成タスクに誰がアサインされることになるかに応じて、担当者の知識やシステムのニーズを考慮して採用するツールやテクノロジーを選択する必要があるでしょう。手動テスターがすばやく自動化を始めることを望んでいるなら、コードレス技術、あるいはコーディングに関する知識は最小限でよいツールを選ぶこともできます。ツールによっては初期コストがかかりますが、導入、トレーニング、スクリプトのメンテナンス、提供されるサポートなどを考えれば、長期的には得になるかもしれません。

誰を自動化担当者にしたとしても、その担当者はビジネスフローや自動化が必要なシナリオにアクセスでき、それらを理解していなければなりません。自動化対象のテストを適切な情報と完全なテストデータとともに適切な人間に渡すプロセスが必要です。
テスターが自分たちで自動化スクリプトの作成を行う場合は、どのテストを自動化の対象として選択するか、優先順位、順序に関するガイドラインと、作成したテストスクリプトを簡単に追加して繰り返し実行できる堅固なプラットフォームが与えられる必要があります。

複数のメンバーが共同で自動化プロジェクトに携わっている場合、標準や規約も作成し、誰もが同じ前提に立って必要な情報にアクセスできるようにしなければなりません。

テスト自動化の実装に関して、忘れてはならない重要な点は、実装自体が1つのプロジェクトであり、正式なプロセスと期日が必要だということです。実装を片手間に扱い、いつどの程度の作業を行うかをメンバーの決定に任せると、なかなか進まず、結局は失敗します。

3.どのような実行計画にするか?

実装に加えて、テスト自動化の実行計画も決定する必要があります。計画の決定には、自動化スクリプトをいつ実行するか、どのような頻度で実行するか、誰が実行するか、あるいは新しいコードがチェックインされたらすぐに自動的にトリガーするかといった質問に答えを出す作業も含まれます。

これらの質問への答えによっては、既存の(あるいはこれから必要になる)継続的インテグレーション(CI)システムを調べ、自動化スクリプトを実行するのに追加のセットアップやプラグインが必要かどうかを確認します。また、期待を満たすコードカバレッジ解析、実行結果およびレポートに関するオプションも探しておくとよいでしょう。その後、必要なレポートやダッシュボードについて議論し、試験利用を行います。

4.誰がメンテナンスを担うか?

テスト自動化プロジェクトの最大の悩みは、テストスクリプトが適切にメンテナンスされないことです。テスト自動化に着手すると決めたら、テストスクリプトの問題、エラー、メンテナンスの優先順位付けに関する基準を早急に決定する必要があります。

すると、スクリプトのエラー通知を受け取るべきメンバー、自動実行の結果をチーム内で共有する方法、どのようなメンテナンス方法を採るべきかといったことも決まります。また、既存のスクリプトに影響を与える可能性がある今後の変更や新機能の情報をチームで共有し、該当スプリントに入る前にスクリプトを変更できるようにする必要もあります。

あまりに長い間放置されたテストスクリプトはあてにならず、信頼できなくなるため、テストスクリプトを更新しつづけ、実行可能な状態を保つというタスクは、不特定の開発者やテスターではなく、特定のメンバーが担うべきです。

また、現在の開発手法を確認し、開発プロセスのいつどこで自動化スクリプト作成、メンテナンス、リファクタリングのための時間を取れるかを調べます。アジャイル手法を実践するプロジェクトと従来のウォーターフォール手法を採るプロジェクトでは、この点でおおいに異なるでしょう。

結論

テスト自動化プロジェクトを始めようと考えているなら、これら4つの質問は整合性の取れた自動化戦略をまとめるのに役立つでしょう。テスト自動化への投資から最終的に最大の利益を得るには、概念検証やツールの調査を始める前から適切なゴールを定義し、具体的な計画を持つことが不可欠です。

(この記事は、開発元Gurock社の Blog 「Four Questions to Ask When Planning Test Automation」2019年6月5日の翻訳記事です。)

eBook 公開中

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

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

詳細はこちら