単体テストとは、プログラムを構成する最小単位(関数やモジュール、画面1つなど)が、それぞれ正しく動くかを個別に確認するテストのことです。「ユニットテスト(Unit Test)」「UT」とも呼ばれ、システム開発のテスト工程で最初に行われます。
現実世界でいえば、自動車の製造における「部品ごとの検査」のようなものです。エンジン、ブレーキ、ライトといった部品を組み付ける前に1つずつ検査しておけば、不良品を早い段階で見つけられます。組み上がってから「どこかがおかしい」と探すより、はるかに効率的です。
単体テストで確認すること
単体テストでは、詳細設計書で決めたとおりにプログラムが動くかを確認します。正しい入力で正しい結果が返るか(正常系)だけでなく、想定外の入力(空欄、桁あふれ、不正な値など)で適切にエラー処理されるか(異常系)、境界となる値(0、上限値など)で正しく動くか(境界値)を確認するのが基本です。
テスト工程の中での位置づけ
システム開発のテストは、小さい単位から大きい単位へ、段階を踏んで進めます。
| 工程 | 確認する内容 | 対応する設計 |
|---|---|---|
| 単体テスト | 部品(関数・モジュール)単位の動作。 | 詳細設計 |
| 結合テスト | 部品同士をつないだときの連携。 | 基本設計 |
| 総合テスト | システム全体が要件どおり動くか。 | 要件定義 |
単体テストの自動化
現在の開発では、単体テストをプログラムとして書いて自動実行するのが主流です。JUnit(Java)、xUnit/MSTest(C#)、pytest(Python)といったテストフレームワークを使い、コードを修正するたびにテストを自動で流すことで、修正が別の場所を壊していないか(デグレード)をすぐに検出できます。CI/CDの仕組みと組み合わせることで、品質を保ちながら頻繁な変更が可能になります。

コメント