1、单元测试基础 李萌李萌 20172017年年1010月月计算机科学与技术学院主题n 测试流程测试流程n 流程图流程图n 测试用例设计测试用例设计n 单元测试单元测试n 缺陷单缺陷单n 执行情况表执行情况表n 回归测试回归测试基本概念计算机科学与技术学院传统定义n 20世纪世纪70年代年代Smalltalk引入单元测试,单引入单元测试,单元通常指的是一个方法或函数元通常指的是一个方法或函数n 作用作用l 提高代码质量提高代码质量l 深入理解类或方法的功能需求深入理解类或方法的功能需求n 定义定义l 单元测试是一段代码调用另外一段代码,检单元测试是一段代码调用另外一段代码,检验一些假设的正确性验一
2、些假设的正确性l 如果假设的结果错误,测试失败如果假设的结果错误,测试失败计算机科学与技术学院优秀单元测试定义n 单元测试(单元测试(Unit Test)是一段自动化的代)是一段自动化的代码,用来调用被测试的方法或类,而后码,用来调用被测试的方法或类,而后验证基于该方法或类的逻辑行为的一些验证基于该方法或类的逻辑行为的一些假设假设n 单元测试单元测试几乎总是用单元测试框架来写几乎总是用单元测试框架来写的。它写起来很顺手,运行起来不费时的。它写起来很顺手,运行起来不费时。它是全自动的、可信赖的、可读性强。它是全自动的、可信赖的、可读性强的、可维护的的、可维护的n 不不包含任何逻辑的代码,通常不需
3、要测包含任何逻辑的代码,通常不需要测试试计算机科学与技术学院基本思路结束条件测试用例测试脚本驱动程序数据采集结果分析计算机科学与技术学院待测类计算机科学与技术学院测试类计算机科学与技术学院控制台程序计算机科学与技术学院ShowProblem计算机科学与技术学院基于单元测试框架的测试流程计算机科学与技术学院单元测试流程流程图测试用例测试脚本缺陷报告回归测试计算机科学与技术学院账单计算问题n 当当账单上的一次性消费数额(简称消费额)为账单上的一次性消费数额(简称消费额)为负数或零时,返回负数表示消费数额无效;负数或零时,返回负数表示消费数额无效;n 当消费数在当消费数在800元到元到1800元之间
4、时元之间时(不含不含800元,元,但包含但包含1800元元),为,为9折;折;n 当消费额在当消费额在1800元到元到4800元之间时元之间时(含含4800元元),为,为8折;折;n 当消费额在当消费额在4800元以上时元以上时(不含不含4800元元),一律,一律为为7折;折;n 当消费额无效时,程序应提示消费数额无效当消费额无效时,程序应提示消费数额无效计算机科学与技术学院源码 v1计算机科学与技术学院条件分析n T1:amount800&amount1800&amount4800n T5:amount=0计算机科学与技术学院用例设计对判定的测试n 条件覆盖条件覆盖l 设计测试用例时应保证程
5、序中每个复合判定设计测试用例时应保证程序中每个复合判定表达式中,每个简单判定条件的取真和取假表达式中,每个简单判定条件的取真和取假情况至少执行一情况至少执行一次次n 至少至少6个用例个用例计算机科学与技术学院流图计算机科学与技术学院用例设计对路径的测试n 判定节点法:判定节点法:n 流图流图G的环形复杂度的环形复杂度V(G)=P+1,其中,其中,P是流图中判定结点的是流图中判定结点的数目数目n 本本例的环形复杂度为例的环形复杂度为6()1V GP计算机科学与技术学院基本路径n L1:0,1,6,11n L2:0,1,2,7,11n L3:0,1,2,3,8,11n L4:0,1,2,3,4,9
6、,11n L5:0,1,2,3,4,5,10,11n L6:0,1,2,3,4,5,11计算机科学与技术学院测试用例测试用例编号测试用例编号输入数据输入数据期望结果期望结果路径路径CalculateRevenue_AmountEqual400_Return400amount=400400L1CalculateRevenue_AmountEqual1300_Return1170amount=13001170L2CalculateRevenue_AmountEqual3300_Return2640amount=33002640L3CalculateRevenue_AmountEqual8000_R
7、eturn5600amount=80005600L4CalculateRevenue_AmountEqualZero_ReturnNegativeOneamount=0-1L5CalculateRevenue_AmountEqualNegativeTen_ReturnNegativeOneamount=-10-1L6计算机科学与技术学院单元测试用例设计说明书n 文档展示文档展示l 流程图流程图l 判定分析判定分析l 路径分析路径分析l 用例设计用例设计计算机科学与技术学院缺陷单计算机科学与技术学院执行情况表计算机科学与技术学院重构代码计算机科学与技术学院回归测试计算机科学与技术学院基本路径n L1:0,1,6,10n L2:0,1,2,7,10n L3:0,1,2,3,8,10n L4:0,1,2,3,4,9,10n L5:0,1,2,3,4,5,10计算机科学与技术学院测试用例计算机科学与技术学院缺陷单计算机科学与技术学院执行情况表计算机科学与技术学院作业n 为为RevenueAccount设计单元测试设计单元测试n 提交提交l 流程图流程图l 单元测试设计说明书单元测试设计说明书l 缺陷单缺陷单l 单元测试代码单元测试代码l 执行情况表执行情况表