ソフトウェアテストにおける選択肢の一つとして候補に挙がるのが「テスト自動化」だ。本連載では、テスト自動化に取り組みたいけれどノウハウがない、過去に導入していたがうまくいかなくてやめた人に向けて、テスト自動化の「あるある」な失敗事例とともにどうすればうまく取り入れられるのかを解説する。第1回は「テスト自動化とは何か」と「導入時に注意すべきポイント」について。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
ソフトウェア開発が高度化、複雑化していく中で、テストをいかに効率的に、効果的に実施していくかという問題はどんどん重要度を増しています。また、短期間のうちに多くのフィーチャーを実装していく必要性も増し、どこまでテストするのか、どうやってテストするのかというテスト技術の向上も、開発にとってもはや必須といえるでしょう。
本連載では、そんな課題の解決策の一つであるテスト自動化についてのポイントや注意点について解説していきます。テスト自動化は近年普及が進む一方、導入が「できている」企業と「できていない」企業に差が生じがちです。
なぜ導入に差が生じてしまうのでしょうか。それはテスト自動化が極端にいうと「もろ刃の剣」という側面があるからです。できること、できないことをきちんと見極め、計画的に導入、推進していく必要があります。そうしない場合、ただ単にコストばかりかかってしまって思ったような効果が発揮できず、逆にこれまで見つけられていたバグを見逃してしまう結果につながりかねません。
まずは、テスト自動化とは何をすることなのか、テストの「何」を自動化するのかを解説していきます。一言でいうと、テスト自動化はテストの「実行」を自動化します。当たり前のことを言っているように思われるかもしれませんが、「テスト」という業務はただ単にプログラムを動かしてみる、という作業だけではなく、その前後にさまざまなプロセスが必要となります。
一般的なテストプロセスとして、ここでは国際的なソフトウェアテスト技術者資格の認証組織である、ISTQB(国際ソフトウェアテスト資格認定委員会)が定義するものを紹介します。テストプロセスには、以下のようなものがあります。
意識的に行う、行わないという差や、ドキュメント化の程度がプロジェクトによって異なることはありますが、テストを行う場合は必ずこれらを実施しています。
各項目をもう少し詳しく解説します。
テスト計画とは、テストの目的とリソースに応じたアプローチを定義することです。テストスケジュールの作成や、必要な人員、機材などの洗い出しなどを行います。そのベースとなるのが、何を、どこまでテストするのかといったことを決め、方針を定める「テスト戦略」と呼ばれるものです。それらを明確にしておくことで、テストの方向性が定まり、不測の事態にも的確に対処できるようになります。
テスト分析ではテスト対象を分析し、何をテストするのかを定めます。テスト対象の機能を分類、整理したり、仕様を確認したりして、どのようなテストが必要なのかを見極めます。そして、「テスト条件」という形で明確に設定します。
テスト設計では、テスト分析で定めたテスト条件を具体化し、どうテストするのかを定めます。テストに必要なパラメーターを設定したり、どのような順番で実施するのかといったことを決めたりします。
テスト実装では実際に使用するテストデータやテスト環境、テストケースなどを作成します。テストを実施するためには具体的な実施手順や実施の期待結果を押さえておく必要があります。
テスト実行ではテストを実施し、テスト結果や欠陥を記録します。
テスト完了では、テスト結果の考察や報告を行います。テストを実施した結果何がいえるのか、きちんと計画で定めた目標を達成できたのか、追加テストなどが必要か、といったことをまとめて、ステークホルダーに報告します。
テストのモニタリングとコントロールは、ここまでのテストプロセスの中で横断的に実施し、プロジェクトを円滑に進められるように管理することです。進捗(しんちょく)管理などを実施し、問題があれば対処します。
それぞれのプロセスを解説してきましたが、テスト自動化で行える範囲は、この中のテスト実行プロセスのみです。とはいえ、最も実施工数がかかるのがこのテスト実行プロセスですので、効果的に導入することによってコストを大きく改善することができます。
Copyright © ITmedia, Inc. All Rights Reserved.