システム開発における 単体テスト(ユニットテスト) は、最小単位(関数・メソッド・クラスなど)の機能が正しく動作するかを検証する工程です。バグの早期発見と品質担保に重要な役割を果たします。
✅ 単体テストで実施する内容
| 作業項目 | 内容 |
|---|
| 1. テスト対象の識別 | モジュール・クラス・メソッド単位に対象を特定 |
| 2. テストケース作成 | 正常系・異常系・境界値などの観点からケースを設計 |
| 3. 入力値の設定 | テスト用のパラメータ・入力データを定義 |
| 4. 期待結果の定義 | 出力値、戻り値、副作用(DB更新など)を定義 |
| 5. テストコード実装 | テストフレームワークを用いて自動実行用コードを作成(例:xUnit, NUnit, MSTestなど) |
| 6. モックの利用(必要に応じて) | 外部依存(DB/APIなど)を切り離してテスト実行 |
| 7. テスト実行と確認 | テストを自動実行し、期待値と一致するか確認 |
| 8. テスト結果の記録 | テストログ/結果一覧を保存(成功/失敗、エラーメッセージなど) |
| 9. バグの報告・修正 | 失敗時の不具合の修正と再テスト |
🧪 単体テストの分類
| テストタイプ | 内容 | 例 |
|---|
| 正常系テスト | 正しい入力が期待通りに動作するか | 会員登録で全項目入力 → 登録成功 |
| 異常系テスト | 不正な入力や欠損時に正しくエラーになるか | 未入力・桁数超過 → エラー表示 |
| 境界値テスト | 入力の限界値前後で正しく処理されるか | 年齢:0歳、1歳、120歳、121歳など |
| 例外処理テスト | エラー発生時に例外が正しく処理されるか | DB接続失敗時 → ログ出力+画面エラー表示 |
📂 成果物の一例
| 成果物 | 内容 |
|---|
| テストコード | テストクラス(例:UserTests.cs)内に各メソッドのテスト |
| テストケース一覧表 | Excelなどで入力条件、期待結果、テスト結果を管理 |
| 実行ログ/レポート | 自動実行結果(成功/失敗、実行時間など) |
| 不具合報告書 | 発見されたバグの詳細、修正内容、再テスト結果 |
🛠️ 使用ツール例(言語別)
| 言語 | テストフレームワーク |
|---|
| C# (.NET) | MSTest, NUnit, xUnit |
| Java | JUnit, TestNG |
| JavaScript | Jest, Mocha |
| Python | unittest, pytest |
| PHP | PHPUnit |
🔁 テストの自動化(CI/CD連携)
- GitHub Actions / Azure DevOps / Jenkins などのCIツールでテストを自動化
- プルリクエストやコミット時に自動でユニットテストを実行し、品質を担保
コメントを残す