单元测试主要从模块的以下5个特征着手进行检查。
1. 模块接口 模块的接口保证了测试模块的数据流可以正确地流人、流出。在测试中应检查以下要点:
1) 测试模块的输入参数和形式参数在个数、属性、单位上是否一致。
2) 调用其他模块时所给出的实际参数和被调用模块的形式参数在个数、属性、单位上 是否一致。
3) 调用标准函数时所用的参数在属性、数目和顺序上是否正确。
4) 全局变量在各模块中的定义和用法是否一致。
5) 输入是否仅改变了形式参数。
6) 开/关的语句是否正确。
7) 规定的I/O格式是否与输入输出语句一致。
8) 在使用文件之前是否已经打开文件或是使用文件之后是否已经关闭文件。
2. 局部数据结构。 在单元测试中,局部数据结构出错是比较常见的错误,在测试刚应重点考虑以下因素:
1) 变量的说明是否合适。
2) 是否使用了尚未赋值或尚未初始化的变量。
3) 变量的初始值或默认值是否正确。
4) 变量名是否有错(例如拼写错)。
3. 重要的执行路径。 在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试用例来发现是否有计算、比较或控制流等方面的错误。
1) 计算方面的错误:算术运算的优先次序不正确或理解错误;精度不够;运算对象的 类型不匹配;算法错;表达式的符号表示不正确等。
2) 比较和控制流的错误:本应相等的量由于精度造成不相等;不同类型进行比较逻辑 运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一次)、死循环;不恰当地修改循环变量;当遇到分支循环时,出口错误等。
4. 出错处理。 好的设