单元测试是对软件基本组成单元进行的测试。单元测试的对象是软件设计的最小单位——模块。
单元测试的目标:确保各单元模块被正确的编码。
单元测试的主要任务有:模块接口测试、模块局部数据结构测试、模块边界条件测试、模块中所有独立执行通路测试、模块的各条错误处理通路测试
1.模块接口测试
只有在数据能够正确流入、流出模块的前提下,其测试才有意义。对模块接口的检查和确认是单元测试的基础。
- 输入的实际参数与形式参数的个数是否相同、属性是否匹配、量纲是否一致
- 调用其他模块时所给实际参数的个数是否与被调用模块的形参个数相同、属性是否匹配、量纲是否一致
- 调用预定义函数时所用参数的个数、属性和次序是否正确
- 是否存在与当前接口入口点无关的参数引用
- 是否修改了只读性参数
- 对全程变量的定义各模块是否一致
- 是否把某些约束作为参数传递
如果模块内包括外部输入输出,还应考虑下列因素。
- 文件属性是否正确
- OPEN/CLOSE语句是否正确
- 格式说明与输入输出语句是否匹配
- 缓冲区大小与记录长度是否匹配
- 文件使用前是否打开
- 是否处理了文件尾
- 是否处理了输入输出错误
- 输出信息中是否有文字性错误
2.模块局部数据结构测试
检查局部数据是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。错误:
- 不合适或不相容的类型说明
- 变量无初值
- 变量初始化或默认只有错
- 不正确的变量名(拼错或不正确的截断)
- 出现上溢、下溢和地址异常
3.模块边界条件测试
边界测试是单元测试中最重要的一项任务。因为软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,有可能发现新的错误。
4.模块中所有的独立执行通路测试
在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少能被执行一次,此是设计测试用例是为了发现因错误计算、不正确的比较和不适当的