外注先から納品された単体テスト済みモジュールで、結合テストの段階でバグがたくさん発見された。本来、単体テストで摘出すべきバグなのに――。システム開発の現場では、こうした問題がよく起こる。「どこからどこまで何をテストするのかが単体テストか」という認識が、元請け企業と下請け企業の間で異なるのが原因だ。 規模や複雑度が一定以上のシステムやプロダクトでは、一気に全モジュール、全機能、全システムを結合してテストするのは現実的ではない。システムやプロダクトをある粒度で区切る、というアプローチが一般的となる。まずは最も細かい粒度でテストを実施して、段階的に結合して大きな粒度にしながらテストを進めていく。 こうしたテスト対象を区切る粒度を「テストレベル」と呼ぶ。テストレベルの種類は、組織やプロジェクトごとにさまざまな定義がある。よく見かけるのが「単体テスト」「結合テスト」「システムテスト」「受け入れテスト
![それを確認するのは単体テスト?結合テスト?混乱しがちなテストレベル](https://cdn-ak-scissors.b.st-hatena.com/image/square/ff456075962fa29340be9596b96fd12c088e8b5a/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fit%2Fatcl%2Fcolumn%2F17%2F110200480%2F013100007%2Ftopm.jpg%3F20220512)