単体テスト(Unit Test)

単体テストとは、プログラムを構成する最小単位(関数やモジュール、画面1つなど)が、それぞれ正しく動くかを個別に確認するテストのことです。「ユニットテスト(Unit Test)」「UT」とも呼ばれ、システム開発のテスト工程で最初に行われます。

現実世界でいえば、自動車の製造における「部品ごとの検査」のようなものです。エンジン、ブレーキ、ライトといった部品を組み付ける前に1つずつ検査しておけば、不良品を早い段階で見つけられます。組み上がってから「どこかがおかしい」と探すより、はるかに効率的です。

単体テストで確認すること

単体テストでは、詳細設計書で決めたとおりにプログラムが動くかを確認します。正しい入力で正しい結果が返るか(正常系)だけでなく、想定外の入力(空欄、桁あふれ、不正な値など)で適切にエラー処理されるか(異常系)、境界となる値(0、上限値など)で正しく動くか(境界値)を確認するのが基本です。

テスト工程の中での位置づけ

システム開発のテストは、小さい単位から大きい単位へ、段階を踏んで進めます。

工程 確認する内容 対応する設計
単体テスト 部品(関数・モジュール)単位の動作。 詳細設計
結合テスト 部品同士をつないだときの連携。 基本設計
総合テスト システム全体が要件どおり動くか。 要件定義

単体テストの自動化

現在の開発では、単体テストをプログラムとして書いて自動実行するのが主流です。JUnit(Java)、xUnit/MSTest(C#)、pytest(Python)といったテストフレームワークを使い、コードを修正するたびにテストを自動で流すことで、修正が別の場所を壊していないか(デグレード)をすぐに検出できます。CI/CDの仕組みと組み合わせることで、品質を保ちながら頻繁な変更が可能になります。

あわせて知っておきたい用語

  • 結合テスト
    単体テストを終えた部品同士をつないで確認する、次の工程です。
  • 詳細設計
    単体テストの確認基準となる、プログラム単位の設計書です。
  • デバッグ
    テストで見つかった不具合の原因を調べて直す作業です。
  • CI/CD
    テストや配置を自動化する開発手法。単体テストの自動実行が土台になります。

コメント

タイトルとURLをコピーしました