到目前为止,我们都很大程度上忽略了测试的具体机制,以及被测程序的规模,然而,由于大型程序(例如包含 500 条语句或 50 个以上类的程序)需要特殊的测试处理,因此本章将讨论构建大型程序测试体系的第一步:模块测试。

模块测试(或称单元测试)是对程序中的各个子程序、子例程、类或过程进行测试的过程。更具体地说,不是一开始就把程序作为一个整体来测试,而是先聚焦于程序的更小的构建块。这样做的动机有三点:
模块测试是一种管理测试复杂度的方式,因为注意力最初集中在程序的较小单元上。
模块测试简化了调试(定位并修正已发现错误的过程),因为一旦发现错误,就可以确定它存在于某个特定模块中。
模块测试为程序测试过程引入了并行性,让我们有机会同时测试多个模块。
模块测试的目的,是将模块的功能与定义该模块的功能规格或接口规格进行对比。再次强调所有测试过程的目标:这里的目标不是证明模块符合规格,而是证明模块与规格相矛盾(即发现缺陷)。