ソフトウェアテスト

  1. Qbook+
  2. ソフトウェアテスト
  3. テストプロセスの流れと各プロセスの実施内容

テストプロセスの流れと各プロセスの実施内容

テストプロセスの流れと各プロセスの実施内容

ソフトウェア開発におけるテスト工程は、開発する製品の性質や開発プロジェクトを取り巻く環境によって、テストの方針は異なります。ただし、どのようなテストを行う場合でも、品質担保のためのプロセスを事前に練って、計画的にテストを進めていくことが非常に重要になります。

今回の記事では、代表的なテストプロセスの手順、および各プロセスの目的と具体的な作業についてご紹介します。

テストプロセスの主なアクティビティ

JSTQB(※)によると、テストプロセスは計画から評価終了後の作業までを含めて、5つに大別されています。テスト対象の規模やプロジェクトの緊急度によっては一部プロセスが簡略化されたり同時進行したりする場合もありますが、おおむね下記の順序で進行します。

  1. テスト計画とコントロール
  2. 分析と設計
  3. 実装と実行
  4. 終了基準の評価とレポート
  5. 終了作業

※JSTQB(日本ソフトウェアテスト資格認定委員会)。「Japan Software Testing Qualifications Board」の略で、日本におけるソフトウェアテスト技術者資格認定の運営組織。ソフトウェアテストの国際的な資格認定団体であるISTQB(International Software Testing Qualifications Bord)に加盟しているため、JSTQBが運営する資格は海外でも有効。

1.テスト計画とコントロール

8607-00062-2

「テスト計画とコントロール」のフェーズでは、テストの目的を設定します。

実施するテスト対象の開発理由や仕様の背景、納期などを考慮し、テストで何を達成すべきかを定義します。

ここで重要になるのが、テスト対象の範囲(スコープ)の定義とテストの深さ・網羅性の決定です。開発後に起こりうるリスクを想定し、実施するテストで保証されるべきポイントとその優先順位や重要度をもとに、どのようなテストを何のために行うか決定します。

テストの目的の他にも、テスト工程全体をコントロールするための基準や各種管理を決定します。例えば、テスト終了基準、テスト結果の計測・分析方法、進捗やテストカバレッジの管理方法、欠陥修正を行うタイミングなどが挙げられます。

2.分析と設計

「分析と設計」のフェーズでは、テスト計画をもとに具体的なテスト手法を準備します。

「分析」の工程では、以下の作業を行います。

  • テスト対象の要求仕様といったドキュメントや、インターフェースなどの「テストベース」の情報収集
  • 収集した情報をテストの目的と照らし合わせ、実行すべきテストの手法や条件、テストタイプの決定

その後の「設計」フェーズでは分析結果をもとにテストを設計します。テスト目的やテスト条件に見合うようなテストパターンを想定し、テスト技法を用いて適切なパターン・ケース数を採用します。この際、想定するテスト環境における条件の洗い出しも行い、次工程で行うテストの「実装」に備えます。

3.実装と実行

8607-00062-3

「実装と実行」フェーズでは、テスト設計を元にテストケースを作成し、それを実行する作業を行います。

「実装」の工程では、テストの実施手順や確認内容、テスト実施時に用いるテストデータを作成します。この時、実施手順や確認内容は、誰が実行しても同一になるよう、具体的な記述である必要があります。また、テスト自動化を行う場合には、テストスクリプトの作成もこの工程で行います。

「実行」の工程では、設計・実装を経て作成したテストケースを、テスト環境下で実際に実行します。テストケースに沿ってシステムを操作し、期待値の確認と画面キャプチャや出力データなどの結果を確認できる証跡(エビデンス)を取得します。

テスト工程で確認した結果は期待値に合致する・しないかによらず、全て記録に残します。

テスト実行途中に期待値にそぐわない結果を検知した場合、インシデント報告(=欠陥報告)や動作原因を特定します。報告・調査の結果、システムの修正が行われる場合は、修正内容を把握した上で、追加修正の影響範囲となるテストケースを再実行(回帰テスト)します。

4.終了基準の評価とレポート

「終了基準の評価とレポート」フェーズでは、テストケースを全て消化した後の終了判定と結果報告を、開発者や管理者、テストを依頼したクライアントなどに行います。

テストケース実行時のバグの検出状況を、テスト計画と照らし合わせ、終了基準に到達しているかを確認します。終了基準に満たない場合は強化テストが必要な場合もあります。

5.終了作業

「終了作業」のフェーズでは、終了判定後のテストの成果物を確認し、テスト結果から得た情報や教訓をもとに、今後のテストプロセスの改善活動を行います。
発生したバグが全て報告・対処されているか、全てのテストケースが漏れ無く実行されているかなど、テスト実行結果の確認を行い計画通りのテストが実施されたか評価します。また、作成したテストケースのうち資産となるものは、文書化や自動化して次回以降のテスト実行に備えることがあります。

テスト工数の兼ね合いからこの終了作業が実施されないこともありますが、長期的なテスト設計・実行負担の削減を考慮すると非常に重要な工程です。
終了作業に必要な工数は最低限確保するようにしましょう。

 

おわりに

  • テストプロセスは「テスト計画とコントロール」「分析と設計」「実装と実行」「終了基準の評価とレポート」「終了作業」の5段階
  • テスト計画では、テスト対象の範囲(スコープ)の定義とテストの深さ・網羅性の決定が重要
  • 「終了作業」のフェーズは省略されることが多いが、次回以降のテストに活用するために必要な工程

計画からテスト実施、終了後作業までの各工程をはじめから全てを完璧に行うのは、非常に難しいかもしれません。しかし、テストプロセスを定義してテスト自体を向上させてくことは、品質管理上非常に重要なテーマです。各工程の目的や手順を理解し、一歩ずつ取り組んでみてください。

資料ダウンロード

  • ソフトウェアテストの勘所

    ソフトウェアテストを始めて行うエンジニアのための勘所を抽出しガイドブックにまとめました。テストに初めて触れる方、メンバーにテストを説明する方にご利用しやすくまとめています。

  • ソフトウェア開発データ白書記載データとの比較資料

    一般的なテストプロジェクトとバルテスのテストプロジェクトを比較した冊子です。1000Hあたりの不具合検出数、実施テストケース数などを算出し、どの程度の差があるのかを比較しております。

  • 大手50サイトの診断結果から見る最新Webセキュリティの傾向 2019年版

    バルテスがセキュリティ診断を行った50サイトにおける脆弱性傾向をまとめた資料です。どういったレベルの脆弱性が見つかっているのか、その割合はどういったものなのかなどを具体的な数値としてまとめています。

Qbook+編集部
ライター:
Qbook+編集部

バルテス株式会社 Qbook+編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。

関連記事