测试驱动:驱动被测试模块正常运行起来的实体
测试桩:代替被测模块调用的子模块的实体,该实体一般为桩函数。
覆盖率:代码的覆盖程度,一种度量方式。针对代码的测试覆盖率有许多种度量方式,定义如下:
语句覆盖(StatementCoverage):也称为行覆盖(linEC),段覆盖(segmentcoverage)和基本块覆盖(bAS)。它度量每一个可执行语句是否被执行到了。icblockcoverageoverage
条件覆盖(ConDI):它独立的度量每一个子表达式,报告每一个子表达式的结果的true或false。这个度量和判定覆盖(decisioncoverage)相似,但是对控制流更敏感。不过,完全的条件覆盖并不能保证完全的判定覆盖。tionCoverage
测试的内容
单元测试的对象是软件设计的最小单位——模块或函数,单元测试的依据是详细设描述。测试者要根据详细设计说明书和源程序清单,了解模块的I/O条件和模块的逻辑结构。主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理和不合理的输入都能鉴别和响应。要求对所有的局部和全局的数据结构

模块接口:测试模块的数据流。如果数据不能正确地输入和输出,就谈不上进行其他测试。因此,对于模块接口需要如下的测试项目:
·调用所测模块时的输入参数与模块的形式参数在个数、属性、顺序上是否匹配;
·所测模块调用子模块时,它输入个子模块的参数与子模块的形式参数在个数、属性、顺序上是否匹配;
·是否修改了只做输入用的形式参数;
·输出给标准函数的参数在个数、属性、顺序上是否匹配;
·全局变量的定义在各模块中是否一致;
·限制是否通过形式参数来传送。
·检查不正确或不一致的数据类型说明;
·使用尚未赋值或尚未初始化的变量;
·错误的初始值或错误的默认值;
·变量名拼写错误或书写错误;
·不一致的数据类型。
常见的不正确的计算有:
· 运算的优先次序不正确或误解了运算的优先次序;
·运算的方式错误(运算的对象彼此在类型上不相容);
· 算法错误;
· 初始化不正确;
·运算精度不够;
·表达式的符号表示不正确等。
常见的比较和控制流错误有:
·不同数据类型的比较;
·不正确的逻辑运算符或优先次序;
·
· 关系表达式中不正确的变量和比较符;
·“差1错”,即不正确地多循环或少循环一次;
·错误的或不可能的循环终止条件;
·当遇到发散的迭代时不能终止循环;
·不适当地修改了循环变量等。
错误处理测试:比较完善的模块设计要求能预见出错的条件,并设置适当的出错处理对策,以便在程序出错时,能对出错程序重新做安排,保证其逻辑上的正确性。这种出错处理也是模块功能的一部分。表明出错处理模块有错误或缺陷的情况有:
· 出错的描述难以理解;
·出错的描述不足以对错误定位和确定出错的原因;
· 显示的错误与实际的错误不符;
·对错误条件的处理不正确;
·在对错误进行处理之前,错误条件已经引起系统的干预;
·如果出错情况不予考虑,那么检查恢复正常后模块可否正常工作。
边界测试:边界上出现错误上常见的。设计测试用例检查:
·在n次循环的第0次、1次、n次是否有错误;
· 运算或判断中取最大最小值时是否有错误;
·数据流、控制流中刚好等于、大于、小于确定的比较值时是否出现错误。
何时进行单元测试?单元测试在编码阶段进行。在源程序代码编制完成、经过评审和验证、确认没有语法错误之后,就可以开始进行单元测试的测试用例设计。要利用软件设计文档,设计可以验证程序功能、找出程序错误的多个测试用例。
对于每一组输入,应该有预期的正确结果。在单元测试时,如果模块不是独立的程序,需要辅助测试模块,有两种辅助模块:
驱动模块(Driver):所测模块的主程序。它接收测试数据,把这些数据传递给所测试模块,最后再输出测试结果。当被测试模块能完成一定功能时,也可以不要驱动模块。
桩模块(Stub):用来代替所测模块调用的子模块。
被测试模块、驱动模块和桩模块共同构成了一个测试环境,如下图所示:

Tags:
-
[
删除 ]
网友:
Guest 于 (2008-9-12 09:54:09, 评分: 1 )
评 1 分
您的评论
我来说两句
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为


最新评论
查看全部评论
评论总数 1 条