← TOPにもどる
💻 ソフトウェア開発

ソフトウェアテストの種類とは?単体・結合・システムテストをわかりやすく解説

ITパスポート試験対策|まなクエ!学習ガイド

ソフトウェアテスト単体テスト結合テストITパスポート

ソフトウェアテストとは

ソフトウェアテストとは、開発したプログラムが正しく動作するか確認する工程です。バグ(不具合)を発見し、品質を保証するために行います。テストは複数の段階で実施されます。

💡 テストを早い段階で行うほど、バグ修正コストが低くなります(早期発見の原則)。

テストの4段階

① 単体テスト(ユニットテスト)

最小単位のモジュール(関数・クラス)単位でテストします。他のモジュールとの依存を切り離して単独で検証します。

② 結合テスト(統合テスト)

複数のモジュールを組み合わせた際の連携・インターフェースをテストします。モジュール間のデータの受け渡しが正しいか確認します。

③ システムテスト

システム全体を本番に近い環境で要件通りに動作するかテストします。機能・性能・セキュリティ・負荷など多角的に検証します。

④ 受入テスト(UAT:User Acceptance Testing)

完成したシステムを発注者・エンドユーザーが要件を満たしているか確認するテストです。最終的な承認の前に行われます。

テスト種類対象実施者
単体テスト個々のモジュール開発者
結合テストモジュール間の連携開発者・テスター
システムテストシステム全体テスター
受入テスト要件との適合発注者・ユーザー

ブラックボックステストとホワイトボックステスト

種類特徴何を見るか
ブラックボックステスト内部構造を知らずに入出力で検証仕様通りに動くか
ホワイトボックステスト内部構造(コード)を理解してテストすべての分岐が通るか
❌ 「テスト = 開発後にやるもの」という認識は間違いです。テスト計画は開発開始前から立てるべきです。

試験対策ポイント

✅ テストの4段階(単体→結合→システム→受入)の順序と目的を覚えましょう。

テスト技法の種類

技法概要
同値分割入力値をグループに分け各グループを代表値でテスト
境界値分析境界付近の値(最小・最大・境界±1)をテスト
デシジョンテーブル条件の組み合わせを表にして網羅的にテスト
状態遷移テストシステムの状態変化と遷移を検証
探索的テストテスターが経験と直感でテストを設計しながら実施

テスト自動化とCI/CD

テスト自動化ツール:Selenium(Webブラウザ自動化)・JUnit(Java単体テスト)・pytest(Python)・Appium(モバイルアプリ)。CI/CD(継続的インテグレーション/継続的デリバリー):コードをリポジトリに統合するたびに自動でビルド・テストを実行する仕組み。Jenkins・GitHub Actions・GitLab CIが代表的なツール。テスト駆動開発(TDD):テストを先に書いてからコードを実装する開発手法。品質の作り込みとリファクタリングが促進される。

🎯 試験対策:ソフトウェアテストの重要ポイント

ソフトウェアテストはシステム品質を保証するための重要工程です。ITパスポートでは各テスト工程の目的と、テスト技法(ブラックボックス・ホワイトボックス)の違いが問われます。

テストの工程を整理します。単体テスト(ユニットテスト)は個々のプログラムモジュール単体の動作確認。結合テストは複数モジュールを組み合わせたインターフェース確認。システムテストはシステム全体の要件への適合確認。受入テスト(UAT)はユーザーが実際の業務で使えるかを確認します。

テスト技法の違いも重要です。ブラックボックステストは内部構造を見ずに入力と出力の関係だけを確認(同値分析・境界値分析が代表的)。ホワイトボックステストはプログラムの内部ロジックを確認(命令網羅・分岐網羅が代表的)。テストは欠陥の「発見」であり「証明」ではないというダイクストラの原則も覚えておきましょう。

実力を試してみよう!

この知識を使って実際の問題を解いてみましょう。

試験対策クイズに挑戦する