在实际计算过程中较为常见的错误主要包括以下几点:
1 误解或用错了算符优先级;
2 混合类型运算;
3 变量初值错;
4 精度不够;
5 表达式符号错。
比较判断与控制流常常紧密相关,测试用例还应致力于发现下列错误:
1 不同数据类型的对象之间进行比较;
2 错误地使用逻辑运算符或优先级;
3 因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
4 比较运算或变量出错;
5 循环终止条件或不可能出现;
6 迭代发散时不能退出;
7 错误地修改了循环变量。
测试应着重检查以下问题:
1 输出的出错信息难以理解;
2 记录的错误与实际遇到的错误不相符;
3 在程序自定义的出错处理段运行之前,系统已介入;
4 异常处理不当;
5 错误陈述中未能提供足够的定位出错信息。
单元测试的最后一个步骤便是边界条件,其自身的重要性不言而喻。众所周知,软件常常会出现边界失效的现象,借助边界值分析技术,能够对边界值和左右设计测试用例,继而发现全新错误。
单元测试过程
通常会认为单元测试应当在编码完成之后立即进行,在源程序编制完成之后应当进行复审和编译检查,之后便可以完成单元测试。测试用例的设计应当和复审工作的完美结合,根据设计信息选择测试的相关数据,继而增大发现错误的可能性。在确定测试用例的同时,应当给出期待的结果。
在测试模块的开发过程中应当开发驱动模块和多个桩模块。其中驱动模块在绝大多数场合中都被称之为主程序,其接收测试数据并且将所有接收到的数据传送到测试模块中,被测试模块被调用之后,主程序将会打印进入和退出的消息。
驱动模块和桩模块作为测试过程中所使用的软件,其并不是软件产品的组成部分,因此其需求一定的费用进行开发。倘若驱动和桩模块比较简单,那么最终的实际开销将会更小。但是在实际操作过程中,简单的驱动模块和桩模块并不能完成部分既定测试任务,因此实际应用并不多见。
促使模块内部聚度的提升能够简化单元测试,倘若所有模块只能完成一个,那么其所必须测试用例的数量将会显著减少,因此其中存在的错误也会更容易被发现。