11-8 テストの概要

テストの目的と分類

 テストの目的は、プログラム(ソフトウェア)やシステムに潜むエラーを検出することです。テストの実施と、検出されたエラーの修正を繰り返すことで、プログラムの品質が向上していきます。テストは次のように分類できます。流れとしては、設計の逆に、小さい部品のテストから始め、徐々に組み合わせていく形になります。

 単体テスト → 結合テスト → システムテスト →  運用テスト

運用テストとは区別して受け入れテスト(承認テスト、検収テスト)と呼ばれることもあります。

(1)単体テスト

単体テストでは、モジュールが思った通りの(仕様通り)の動きをするのかをテストします。

(2)結合テスト

単体テストをクリアすると、クリアしたモジュールをつなぎ合わせてテストを行う結合テスト(統合テスト)を行います。

結合テストには、モジュールの上位からテストするか下位からテストするかによって

  • トップアップテスト(上位からテスト)
  • ボトムアップテスト(下位からテスト)

の2種類があります。

・トップダウンテスト

トップダウンテストは、モジュールの上位側から順番にテストをしていく方法です。

結合テストを始める前にすべてのモジュールが出来てないこともあります。

このようにまだ完成していないモジュールがある場合、スタブと呼ばれる仮のモジュールを付けることによりテストを行います。

・ボトムアップテスト

ボトムアップテストは、モジュールの下位側から順番にテストをしていく方法です。

ボトムアップテストではまだ完成していないモジュールがある場合、ドライバと呼ばれる仮のモジュールを付けることによりテストを行います。

その他の結合テスト

・サンドイッチテスト
 上位モジュールと下位モジュールから同時に結合してテストを進める手法です。
・ビッグバンテスト
 単体テスト済みの全てのモジュールを一度に結合してテストを行う手法で、バグの原因特定が難しくなることが多いとされます。
・一斉テスト
 ビッグバンテストに似ていますが、単体テストを省略結合するという点で異なります。

(3)システムテスト

 単体テストや結合テストが完了した後に行われる、システム全体の機能、性能、品質などを検証する最終的なテスト工程です。要件定義や設計書通りの要件を満たしているかを確認し、実際の運用環境に近い環境でテストを行うことで、システム全体の不具合や欠陥を発見し、品質を確保することを目的とします。
 システムテストでは以下のテストが行われます。

機能テスト機能要件を満たしているかをチェックするためのテストです。
性能テスト性能面の評価を行います。データの処理能力や応答速度、時間効率や資源効率といったパフォーマンスを検証し、要求される性能を満たしているかを確認します
構成テストソフトウェアを推奨する環境設定で使用した際に、問題なく画面が表示され、プログラムが動作するかをチェックするテストです
負荷テストシステムに意図的に負荷をかけて動作を確かめる。
耐障害テスト「障害許容性テスト」とも呼ばれます。トラブルが発生した際に最低限の機能を維持できるか、復旧にかかる時間や手順、障害発生後にデータを回復できるかなどをチェックします
例外事項テスト仕様以外のデータ入力に対処できるか確認するテスト