迫る納期、度重なる仕様変更・・・。システム開発の現場では常に多忙で、プロセスの効率化が求められています。そんな中で、ついつい疎かにされてしまうこともある「テスト」。多忙なプロジェクトマネージャー・エンジニアの方の中には、身に覚えのある方もいらっしゃるのではないでしょうか。
ソフトウェアの品質を上げていくには、正しくテストを実行していく必要があります。そのため、プロセスは効率化することはできても、省略することはできません。ここでは、ソフトウェアテストの工程(プロセス)のうち、準備段階で実施すべきタスクを確認していきます。
テスト計画とコントロール
テスト計画は「定義」と「割り当て」の2つのステップに大別されます。
1.定義
テスト計画のファーストステップは、テスト実施に必要となる各種の「定義」の策定です。テストの「スコープ(範囲)」「リスク要素」「目的」「アプローチ・戦略」「手段」「実施レベル(粒度・深度)」「評価方法」「開始と終了の基準」など、検討・決定しなければいけない要素はたくさんあります。
このタスクを省略してしまうと、作成されるテストケースのレベル感にバラ付きが出てしまうことは容易に想像できます。そんな状態でテストをしたプロダクトは、高品質とは言えません。
テスト計画の段階で、テストにおける様々な定義を明確に行うことで、以降のプロセスにおけるテストそのものの品質を担保することができます。結果として、効率的かつ網羅的にテストを実施することができ、プロダクトの品質向上に寄与することができます。
2.割り当て
前ステップにおいて定義された内容に基づき、テストを実行するための準備を行います。具体的には「リソース割り当て」と「スケジューリング」です。
テスト実行に必要な機材や環境といった物理的リソース、テスト実行者のような人的リソースを、テストの実施スケジュールを検討しながら割り当てていきます。リソースは、プロジェクトにおけるコストに直結する重要な要素です。そのため、テストを実施する前に、できるだけ早い段階でテスト計画をしっかりと行っておかなければ、コスト超過を招きかねません。
また、テストを実施する前には、テスト計画で定めたテスト本来の目的を達成できるようにコントロールするための手法を定めておく必要があります。
具体的には、テスト結果の計測と分析の方法、進捗管理の手法と進捗報告の方法、テスト結果として不具合が発見された場合のエスカレーション方法やテストを中断するか・継続するかの判断基準、一連の活動における意思決定の基準と方法等です。
前述のような手法を定めていない場合、たとえば、テストにおいてクリティカルな不具合が発見された際に、テストしても意味が無い状態にも関わらずテストを実施してしまったことで結果的にテスト作業が無駄になってしまったり、テスト継続か改修を優先するかの判断を上位マネジメントやユーザーに委ねる可能性が出てきたりと、想定していない状況となってしまい、プロジェクトの進捗に影響を及ぼす可能性が出てきます。そうした事態を防ぐために、テストのコントロール手法を事前に検討しておく必要があります。
分析と設計
テスト実施対象のプロダクトの性質や品質に関する情報(テストベース)を、プロダクトの要求仕様や設計内容から分析して読み取り、それに基づいてテストすべき内容を設計していきます。
テスト分析では、収集した情報をテストベースとして取りまとめ、テストを設計する担当者が分析・レビューします。テストそのものの難易度や優先度の検討も行います。
テスト設計では、テストベースを元にして、作成されたテストケースの実現性を検討していきます。設計を進める際には、ユーザーやテスト実施者の主観により、テスト結果が人によって異なってしまうことを防ぐため、定性的な表現となっているテストケースについては、基準を定義することでできるだけ定量化して評価できるように設計していきます。また、要求仕様やコードに対して網羅できるように留意します。
さらに、テストデータの整備と整理、テスト環境の検討とセットアップを行い、テスト実施に向けた準備の仕上げを行っていくことになります。
この段階で、テストベースの元となった資料とテストベース、テストケースとの間での関連性も整理し、変更があった際には各要素に必ず変更内容が適用される仕組みも構築しておく必要があります。開発規模が大きい場合は、変更管理ツールを導入して自動化することも視野に入れたほうが良いでしょう。
まとめ
日頃からテスト作業を実施して慣れているエンジニアであっても、いざテストをプロセスとして振り返って見ると、「漏らしていたな」「気にしていなかったな」というポイントが発見できます。
株式会社ウェブレッジは、テストプロセスに精通した第三者がテスト工程に参画する「第三者検証」を手がけているソフトウェアテストのスペシャリスト集団です。 ソフトウェア品質の向上についてまとめた資料を無料でご提供しておりますので、貴社の品質向上にお役立てください。
■テストプロセスに関するその他の解説記事
テストプロセス vol.1〜テストの準備〜【本記事】テストプロセス vol.2〜テストの実行〜 テストプロセス vol.3〜テストの終了〜
【参考文献】
ソフトウェアテスト教科書 JSTQB Foundation 第3版(株)翔泳社