软件测试(单元测试).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单元测试 第3章 补充扩展内容 本章要点 单元测试的含义、目的和优点 单元测试使用的方法 单元测试的步骤 单元测试环境 驱动模块和桩模块的含义 单元测试用例的设计 CppUnit的安装及环境配置 CppUnit的使用步骤 3.1 单元测试概述 1.单元测试的概念 单元测试是对软件基本组成单元的测试。 在传统的结构化编程语言如C语言中,单元一般是模块,也就是函数或子过程; 在象C++中, 单元是类或类的方法; 在Ada语言中,单元可为独立的过程、函数或Ada包; 在第四代语言(4GL)中,单元对应为一个菜单或显示界面。 多个被测模块之间的单元测试可同时进行,以提高单元测试效率。 单元测试一般应该由编程人员完成,有时测试人员也加入进来,但编程人员仍会起到主要作用。 单元测试的依据是软件的详细设计描述、源程序清单、编码标准等。 2.单元测试的目的 验证代码能否达到详细设计的预期要求。 发现代码中不符合编码规范的地方。 准确定位发现的错误,以便排除错误。 3.单元测试的优点 由于单元测试是在编码过程中进行的,若发现了一个错误,不管是从做回归测试的角度,还是对错误原因理解的深刻性的角度,修复错误的成本远小于集成测试阶段,更是小于系统测试阶段。 在编码的过程中考虑单元测试问题,有助于编程人员养成良好的编程习惯,提高源代码质量。 4.单元测试的测试方法 在单元测试阶段,应使用白盒测试方法和黑盒测试方法对被测单元进行测试,其中以使用白盒方法为主。 在单元测试阶段以使用白盒测试方法为主,是指在单元测试阶段,白盒测试消耗的时间、人力、物力等成本一般会大于黑盒测试的成本。 3.2 单元测试的步骤 单元测试的实施应遵循一定的步骤,力争做到有计划、可重用。 单元测试的步骤如下: ① 计划单元测试 ② 设计单元测试 ③ 实现单元测试 ④ 执行单元测试 ⑤ 单元测试结果分析并提交测试报告 3.3单元测试的环境构成 在单元测试时,如果模块不是独立的程序,需要辅助测试模块,有两种辅助模块: 驱动模块(Driver) 桩模块(Stub) 3.3 单元测试环境 驱动模块(Driver) 用来代替被测单元的上层模块的。驱动模块能接收测试数据,调用被测单元,也就是将数据传递给被测单元,最后打印测试的执行结果。可将驱动模块理解为被测单元的主程序。 桩模块(Stub) 又称为存根模块,它用来代替被测单元的子模块。设计桩模块的目的是模拟实现被测单元的接口。桩模块不需要包括子模块的全部功能,但应做少量的数据操作,并打印接口处的信息。 人们在进行单元测试时尽量避免开发驱动模块和桩模块。尤其应避免开发桩模块,因为驱动模块开发的工作量一般少于桩模块。 若采用自底向上的方式进行开发,底层的单元先开发并先测试,可以避免开发桩模块,采用这种方法测试上层单元时,也是对下层单元的间接测试,但当下层单元被改动后,则需要执行回归测试判断其上层单元是否需要修改。 当不得不开发驱动模块及桩模块时,人们力求它们的简单以提高工作效率。但过于简单的驱动模块和桩模块会影响单元测试的有效性,因而,对被测单元的彻底测试有时会被推迟到集成测试阶段完成。 建立单元测试的环境,需完成以下一些工作: 构造最小运行调度系统,即构造被测单元的驱动模块。 模拟被测单元的接口,即构造被被测单元调用的桩模块。 模拟生成测试数据及状态,为被测单元运行准备动态环境。 3.4 单元测试用例设计 3.4.1 单元测试的内容 单元测试的对象是软件设计的最小单位——模块或函数,单元测试的依据是详细设计描述。 测试的内容 模块接口 局部数据结构测试 路径测试 错误处理测试 边界测试 模块接口 调用所测模块的输入参数与模块的形式参数在个数、属性、顺序上是否匹配; 所测模块调用子模块时,它输入个子模块的参数与子模块的形式参数在个数、属性、顺序上是否匹配; 是否修改了只做输入用的形式参数; 输出给标准函数的参数在个数、属性、顺序上是否匹配; 全局变量的定义在各模块中是否一致; 限制是否通过形式参数来传送。 局部数据结构测试 检查不正确或不一致的数据类型说明; 使用尚未赋值或尚未初始化的变量; 错误的初始值或错误的默认值; 变量名拼写错误或书写错误; 不一致的数据类型。 路径测试 常见的不正确的计算有: 运算的优先次序不正确或误解了运算的优先次序; 运算的方式错误(运算的对象彼此在类型上不相容); 算法错误; 初始化不正确; 运算精度不够; 表达式的符号表示不正确等。 路径测试 常见的比较和控制流错误有: 不同数据类型的比较; 不正确的逻辑运算符或优先次序; 因浮点运算精度问题而造成的两值比较不等; 关系表达式中不正确的变量和比较符; “差1错”,即不正确地多循环或少循环一次; 错误的或不可能的循环终止条件

文档评论(0)

9885fp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档