torutkのブログ

ソフトウェア・エンジニアのブログ

単体試験の定義が人によって大きく違うらしい

「単体試験」という言葉では、なかなか共通認識に至りません。

  1. ファンクション、プロシージャ、メソッド毎にテスト項目を設定する。
  2. モジュール毎にテスト項目を設定する。モジュールの定義は人によって違いはある。C言語のソースファイル、Adaのpackage、Pascalのunit、C++/Javaのclassがモジュール定義の典型だが、中にはファンクションをモジュールと定義する者、実行プログラム(プロセス、ライブラリ)をモジュールと定義する者もいる。
  3. 機能毎にテスト項目を設定する。ここでの機能は人によって粒度がかなりばらつく。トランザクション、ある画面などが典型。
  4. 物理的なクライアント、サーバなどの計算機(機器)毎にテスト項目を設定する。ハードウェア主体のシステムに典型。

ちゃんと定義せずに曖昧な理解やたまたま経験した前例をもとに話をするので共通認識にならないのでしょう。

単体試験の原語と思われる"Unit Testing"の規格がIEEEで定められているようです。

  • 1008-1987 IEEE Standard for Software Unit Testing