🐕
ソフトウェアテストの代表的な手法とテスト工程まとめ
ソフトウェアテストの代表的な手法とテスト工程まとめ
ソフトウェア開発において「テスト」は、品質を確保しバグを防ぐために欠かせない工程です。
本記事では、よく使われるテスト手法とテスト工程の違い・特徴を、初心者にも分かりやすく整理します。
📝 主要用語の簡単な説明
-
テスト手法
テストをどのような観点や方法で行うか(例:ホワイトボックステスト、ブラックボックステストなど) -
テスト工程
開発のどの段階・粒度でテストを行うか(例:単体テスト、結合テスト、システムテスト)
🛠 テスト工程の概要
テスト工程の流れ
🟦 単体テスト(ユニットテスト)
小さい単位(関数やクラスなど)の動作を検証
例:関数add(a, b)
が正しい値を返すかどうかをテスト
- ホワイトボックステスト
- 回帰テスト
⬇️
🟧 結合テスト
複数の単体(モジュール)を組み合わせて連携を検証
例:ログイン画面とユーザー管理機能を組み合わせて、正常にログインできるかをテスト
- トップダウンテスト
- ボトムアップテスト
- ブラックボックステスト
- 回帰テスト
⬇️
🟩 システムテスト
システム全体として要件通りに動作するかを検証(実運用に近い形)
例:ECサイト全体で商品購入から決済まで一連の流れが問題なく動くかをテスト
- ブラックボックステスト
- 性能テスト
- 負荷テスト
- エラーテスト
- セキュリティテスト
- ユーザビリティテスト
- 受け入れテスト
- 回帰テスト
📊 代表的なテスト手法と主なテスト工程
下表は、代表的なテスト手法の概要と、それぞれが主に使われるテスト工程をまとめたものです。
各手法の特徴を理解し、目的に応じて適切に使い分けることが重要です。
テスト手法 | 説明 | 主に使われるテスト工程 | 具体例 |
---|---|---|---|
ホワイトボックステスト | プログラムの内部構造やロジックを理解し、分岐や条件ごとに網羅的にテストする手法。 | 単体テスト | if文やfor文の全パターンをテスト |
ブラックボックステスト | 内部構造を意識せず、仕様や要件に基づき入力と出力だけに着目してテストする手法。 | 結合テスト、システムテスト | ログイン画面で正しい/誤ったパスワード入力をテスト |
トップダウンテスト | 上位モジュールから順に下位モジュールを結合しながら進める結合テストの手法。 | 結合テスト | メニュー画面から各機能を順に結合してテスト |
ボトムアップテスト | 下位モジュールから順に上位モジュールへ結合していく結合テストの手法。 | 結合テスト | データベース→API→画面の順で結合しながらテスト |
性能テスト | システムが要求される性能(処理速度や応答時間など)を満たしているかを確認するテスト。 | システムテスト | 1秒以内に検索結果が返るかをテスト |
負荷テスト | 通常より多い処理やアクセスを与えて、システムが安定して動作するかを確認するテスト。 | システムテスト | 1000人同時アクセス時にWebサイトが落ちないかをテスト |
エラーテスト | 異常な入力や操作に対して、システムが適切にエラー処理できるかを確認するテスト。 | システムテスト | 空欄や不正な値を入力した時に正しくエラー表示されるか |
回帰テスト | 修正や機能追加後に、既存の機能が影響を受けていないかを確認するテスト。 | 単体テスト、結合テスト、システムテスト | バグ修正後、他の機能が壊れていないかを一括でテスト |
セキュリティテスト | 不正アクセスや脆弱性、情報漏洩などセキュリティ上の問題がないかを確認するテスト。 | システムテスト | SQLインジェクションや不正ログインの試行 |
ユーザビリティテスト | 実際のユーザー視点で、使いやすさや操作性を評価するテスト。 | システムテスト | ユーザーに操作してもらい、分かりにくい点を洗い出す |
受け入れテスト | 顧客やエンドユーザーがシステムを受け入れ可能かどうかを確認する最終テスト。 | システムテスト(受け入れテスト工程) | 顧客が要件通りに動作するかを実際に操作して確認 |
🏁 まとめ
- テスト工程(単体・結合・システム)ごとに目的や粒度が異なる
- テスト手法は多様で、適切な組み合わせが品質向上のカギ
- 各手法の特徴を理解し、開発現場で使い分けましょう
Discussion