ソフトウェアテスト

  1. Qbook+
  2. ソフトウェアテスト
  3. ソフトウェアテストの種類とは?テストレベル別にテスト対象、実施内容を解説

ソフトウェアテストの種類とは?テストレベル別にテスト対象、実施内容を解説

ソフトウェアテストの種類とは?テストレベル別にテスト対象、実施内容を解説

ソフトウェア開発ライフサイクルでは、テスト活動を整理し、理解し、適切に実施していくことも重要です。ソフトウェアテストを静的または動的、外見または内面、目的別、あるいはレベル別などの観点で分類することで、ソフトウェアテストを整理し、ソフトウェア開発ライフサイクルへ適用することができます。

ここでは、ソフトウェアテストの種類を整理し、テストレベル別に実施する代表的なものを解説します。


テストレベルの種類

V字モデル2 (1)

テストレベルとは、JSTQBでは「系統的にまとめ、マネジメントしていくテストの活動グループである」と定義されています。ソフトウェア開発ライフサイクルの活動をレベル別に分類して実施する場合の、レベルごとに分類されるテストグループのことです。

ここからは、ソフトウェア開発ライフサイクルモデルの代表例の一つである、V字モデルを例にします。V字モデルは左側の開発工程と右側のテスト工程で構成されており、開発のレベルと各テストのレベルが対応している特徴を持っています。このような特徴を持つV字モデルの下記テストレベルについて解説します。

  • 単体テスト
  • 結合テスト
  • システムテスト
  • 受け入れテスト


単体テストのテスト対象と実施内容

8607-00063-2

単体テストは、JSTQBでは別名のコンポーネントテストとして「個々のソフトウェアコンポーネントのテスト」と定義されています。

単体テストのテスト対象は、コンポーネントとも呼ばれるソフトウェア単体です。テストの単位は、関数、クラス、モジュール、コードおよびデータ構造など、開発手法により異なります。


単体テストでは、詳細設計書、データモデル、コンポーネント仕様、ソースコードなどをもとに、詳細設計までに定義された機能仕様を満足させることや、ソフトウェア単体の構造が設計通りであること、論理的なエラーがないことなどを検証します。

また、多くの場合はシステムの他の部分と切り離したテストが可能ですが、ハーネス、スタブ、ドライバ、フレームワークなどと呼ばれる、テストを支援するためのプログラムや、統合開発環境やテストツールを利用して実施し、通常は開発者自身が実施することが大半です。


結合テストのテスト対象と実施内容

8607-00063-3

結合テストは、JSTQBでは別名の統合テストとして「統合したコンポーネントやシステムのインターフェースや相互作用の欠陥を摘出するためのテスト」として定義されています。

結合テストの対象は、2つ以上のコンポーネント、サブシステム、データベース、マイクロサービスなどの相互処理部分です。結合するテスト対象は、それぞれ単体テストを実施し欠陥に対処したものとなります。

結合テストでは、基本設計書、コンポーネントレベルまたはシステムレベルのアーキテクチャ、外部インターフェース定義、テスト済みのコンポーネントまたはサブシステムなどをもとに、結合テストの対象部分が、基本設計で定義された機能仕様を満足することや、結合した構造が設計通りであること、結合して実現する機能に欠陥がないことなどを検証します。

また、結合テストでは上位や下位のコンポーネントがない場合には、スタブやドライバなどと呼ばれるテストを支援するためのプログラムを利用して実施します。


システムテストのテスト対象と実施内容

システムテストは、JSTQBでは「統合されたシステムが、特定の要件を満たすことを実証するためのテストプロセス」と定義されています。

システムテストの対象は、全てのコンポーネントやサブシステムを統合したシステム全体です。単体テストおよび結合テストを実施し欠陥に対処を完了する必要があります。

システムテストでは、要件定義書、基本設計書、対象システムなどをもとに、システム全体がエンドツーエンドで実行する機能や非機能的な振る舞いが要件を満たすことや、要件に反する欠陥がないことなどを検証します。

 

受け入れテストのテスト対象と実施内容

受け入れテストは、JSTQBでは「システムが、ユーザーのニーズ、要件、ビジネスプロセスを満足するかチェックするための公式テスト」と定義されています。

受け入れテストの対象は、システムテストを実施し検出した欠陥への対処を完了した、システム全体とされることが大半です。

受け入れテストでは、ユーザー要求、契約要件、規制要件、ビジネスプロセス、リスク、インストール手順などをもとに、テスト対象システムが導入に向けて準備できているかどうか、使用できるかどうか、想定しているシステムの使用方法に合致しているかなどの妥当性を検証します。受け入れテスト実施の際、多くはシステムを使用するユーザー、または独立したテスト担当チームが行います。

 

おわりに

  • 単体テストは詳細設計に対応しコンポーネント単体を検証
  • 結合テストは基本設計に対応しコンポーネントやシステムの相互作用部分を検証
  • システムテストは要件定義に対応し統合されたシステムが要件を満たすことを検証
  • 受け入れテストは要求分析に対応し対象システムが要求に妥当であるかを検証

今回はV字モデルを例にテストレベルを解説しました。ただ漠然とテストをするのではなく、テストレベルなどテストの種類を整理し、目的に合ったテストを実施するようにしましょう。

資料ダウンロード

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

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

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

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

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

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

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

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

関連記事