软件测试(单元测试)

上传人:ji****72 文档编号:48560444 上传时间:2018-07-17 格式:PPT 页数:35 大小:417.50KB
返回 下载 相关 举报
软件测试(单元测试)_第1页
第1页 / 共35页
软件测试(单元测试)_第2页
第2页 / 共35页
软件测试(单元测试)_第3页
第3页 / 共35页
软件测试(单元测试)_第4页
第4页 / 共35页
软件测试(单元测试)_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《软件测试(单元测试)》由会员分享,可在线阅读,更多相关《软件测试(单元测试)(35页珍藏版)》请在金锄头文库上搜索。

1、单元测试第3章 补充扩展内容本章要点n单元测试的含义、目的和优点n单元测试使用的方法n单元测试的步骤n单元测试环境n驱动模块和桩模块的含义n单元测试用例的设计nCppUnit的安装及环境配置nCppUnit的使用步骤3.1 单元测试概述n1单元测试的概念单元测试是对软件基本组成单元的测试。n在传统的结构化编程语言如C语言中,单元一般是模块,也就是函数 或子过程;n在象C+中, 单元是类或类的方法;n在Ada语言中,单元可为独立的过程、函数或Ada包;n在第四代语言(4GL)中,单元对应为一个菜单或显示界面。多个被测模块之间的单元测试可同时进行,以提高单元测试效率 。单元测试一般应该由编程人员完

2、成,有时测试人员也加入进来, 但编程人员仍会起到主要作用。单元测试的依据是软件的详细设计描述、源程序清单、编码标准 等。n2单元测试的目的验证代码能否达到详细设计的预期要求。发现代码中不符合编码规范的地方。准确定位发现的错误,以便排除错误。n3单元测试的优点由于单元测试是在编码过程中进行的,若发现 了一个错误,不管是从做回归测试的角度,还 是对错误原因理解的深刻性的角度,修复错误 的成本远小于集成测试阶段,更是小于系统测 试阶段。在编码的过程中考虑单元测试问题,有助于编 程人员养成良好的编程习惯,提高源代码质量 。n4单元测试的测试方法在单元测试阶段,应使用白盒测试方法和黑盒 测试方法对被测单

3、元进行测试,其中以使用白 盒方法为主。在单元测试阶段以使用白盒测试方法为主,是 指在单元测试阶段,白盒测试消耗的时间、人 力、物力等成本一般会大于黑盒测试的成本。3.2 单元测试的步骤n单元测试的实施应遵循一定的步骤,力争 做到有计划、可重用。n单元测试的步骤如下: 计划单元测试 设计单元测试 实现单元测试 执行单元测试 单元测试结果分析并提交测试报告3.3单元测试的环境构成 n在单元测试时,如果模块不是独立的程序,需要辅助 测试模块,有两种辅助模块: 驱动模块(Driver)桩模块(Stub)3.3 单元测试环境n驱动模块(Driver)n用来代替被测单元的上层模块的。驱动模 块能接收测试数

4、据,调用被测单元,也就 是将数据传递给被测单元,最后打印测试 的执行结果。可将驱动模块理解为被测单 元的主程序。 n桩模块(Stub)n又称为存根模块,它用来代替被测单元的 子模块。设计桩模块的目的是模拟实现被 测单元的接口。桩模块不需要包括子模块 的全部功能,但应做少量的数据操作,并 打印接口处的信息。n人们在进行单元测试时尽量避免开发驱动模块和桩模块。 尤其应避免开发桩模块,因为驱动模块开发的工作量一般 少于桩模块。n若采用自底向上的方式进行开发,底层的单元先开发并先 测试,可以避免开发桩模块,采用这种方法测试上层单元 时,也是对下层单元的间接测试,但当下层单元被改动后 ,则需要执行回归测

5、试判断其上层单元是否需要修改。n当不得不开发驱动模块及桩模块时,人们力求它们的简单 以提高工作效率。但过于简单的驱动模块和桩模块会影响 单元测试的有效性,因而,对被测单元的彻底测试有时会 被推迟到集成测试阶段完成。n建立单元测试的环境,需完成以下一些工 作:构造最小运行调度系统,即构造被测单元的驱 动模块。模拟被测单元的接口,即构造被被测单元调用 的桩模块。模拟生成测试数据及状态,为被测单元运行准 备动态环境。3.4 单元测试用例设计n3.4.1 单元测试的内容n单元测试的对象是软件设计的最小单位模块 或函数,单元测试的依据是详细设计描述。测试的内容n模块接口 n局部数据结构测试 n路径测试

6、n错误处理测试 n边界测试 模块接口n调用所测模块的输入参数与模块的形式参数在个 数、属性、顺序上是否匹配;n所测模块调用子模块时,它输入个子模块的参数 与子模块的形式参数在个数、属性、顺序上是否 匹配;n是否修改了只做输入用的形式参数;n输出给标准函数的参数在个数、属性、顺序上是 否匹配;n全局变量的定义在各模块中是否一致;n限制是否通过形式参数来传送。局部数据结构测试n检查不正确或不一致的数据类型说明;n使用尚未赋值或尚未初始化的变量;n错误的初始值或错误的默认值;n变量名拼写错误或书写错误;n不一致的数据类型。 路径测试n常见的不正确的计算有:运算的优先次序不正确或误解了运算的优先次 序

7、;运算的方式错误(运算的对象彼此在类型上不 相容);算法错误;初始化不正确;运算精度不够;表达式的符号表示不正确等。路径测试n常见的比较和控制流错误有: 不同数据类型的比较;不正确的逻辑运算符或优先次序;因浮点运算精度问题而造成的两值比较不等;关系表达式中不正确的变量和比较符;“差1错”,即不正确地多循环或少循环一次;错误的或不可能的循环终止条件;当遇到发散的迭代时不能终止循环;不适当地修改了循环变量等。 错误处理测试n出错的描述难以理解;n出错的描述不足以对错误定位和确定出错的原因 ;n显示的错误与实际的错误不符;n对错误条件的处理不正确;n在对错误进行处理之前,错误条件已经引起系统 的干预

8、;n如果出错情况不予考虑,那么检查恢复正常后模 块可否正常工作。边界测试n在n次循环的第0次、1次、n次是否有错误 ;n运算或判断中取最大最小值时是否有错误 ;n数据流、控制流中刚好等于、大于、小于 确定的比较值时是否出现错误。n3.4.2 单元测试用例的设计思路n可按如下的步骤完成单元测试的测试用例 设计: 为被测单元运行设计测试用例 为正向测试设计测试用例 为逆向测试设计测试用例 为满足特殊需求设计测试用例 为代码覆盖设计测试用例n在单元测试中,白盒及黑盒方法测试用例 的使用孰先孰后呢?n一般说来,由于黑盒测试是从被测单元外 部进行测试,成本较低,可先对被测单元 进行黑盒测试,之后再进行白

9、盒测试,以 弥补黑盒测试不彻底的不足。n白盒测试为主n黑盒测试为辅 白盒测试的用例设计:逻辑覆盖 基本路径测试黑盒测试的用例设计:等价类划分 边界值分析 猜测错误主要单元测试方法 n人工静态分析n自动静态分析n人工动态测试n自动动态测试测试过程中各种人员的作用 n系统分析设计人员 进行需求跟踪,确保系统需求的实现和更新。进行软件单元可测 性分析,确定单元测试的对象、范围和方法。n软件开发人员负责编码和单元测试过程,完成单元测试计划、方案和报告。n软件测试人员 参与单元测试计划、方案和报告的评审,对单元测试的计划、设 计和执行质量进行监控。根据实际情况,可选择参与由开发人员 负责的代码检视、单元

10、测试等活动。n 配置管理人员对代码及单元测试文档进行配置管理。n质量保证(QA)人员参与编码与单元测试评审,对编码和单元测试过程进行审计。3.5 基本路径测试n基本路径测试法:设计出的测试用例要保 证每一个基本独立路径至少要执行一次。n输入参数:nint i_count ,int i_flagn输出参数:n int i_return; n函数说明 :n当i_flag=0;返回 i_count+100n当i_flag=1;返回 i_count *10n否则 返回 i_count *20基本路径测试步骤:n 1.导出程序流程图的拓扑结构控制流图Gn2.计算控制流图G的环路复杂度V(G)环路复杂度是

11、一种为程序逻辑复杂性提供定量测试的 软件度量。将该度量用于计算程序的基本独立路径数 目。为确保所有语句至少执行一次的测试数量的上界 。简单的定义就是控制流图的区域数目n3.确定只包含独立路径的基本路径集n4.设计测试用例控制流图计算流图G的环路复杂度V(G)有三种方法计算环路复杂度:nV(G)= 区域个数=4nV(G)=E-N+2,E是流图中边的数量,N是流 图中结点的数量。V(G)=10-8+2=4nV(G)= P+1 ,P是流图G中判定结点的数量V(G)=3+1=4导出程序基本路径n程序基本路径:基本独立路径就是从程序 的开始结点到结束可以选择任何的路径遍 历,但是每条路径至少应该包含一条

12、已定 义路径不曾用到的边。基本路径n1 B(4,24)n2 C,E,J(4,6,8,24)n3 C,D,F,H,A,B(4,6,13,15,22,4,24)n4 C,D,G,I,A,B(4,6,13,19,22,4,24)测试用例n1 B(4,24)n输入数据:i_flag=0,或者是i_flag0的某一个值。n预期结果:i_temp=0.n 2 C,E,J(4,6,8,24)n输入数据: i_count =1;i_flag=0 n预期结果:i_temp=101.n 3 C,D,F,H,A,B(4,6,13,15,22,4,24)n输入数据: i_count =1;i_flag=1 n预期结果:i_temp=10.n 4 C,D,G,I,A,B(4,6,13,19,22,4,24)n 输入数据: i_count =1;i_flag=2 n 预期结果:i_temp=20.n3.6 小结单元测试是所有的测试活动中最早进行的一种测试, 它能以最低的成本发现和修复软件单元中的错误。应有计划地执行单元测试,并在整个软件开发的周期 内对其进行维护,使单元测试可重用。单元测试采用白盒及黑盒方法对被测单元从静态和动 态两方面进行测试。在执行单元测试阶段的动态测试时,应注重建立单元 测试的环境,以达到对被测单元进行测试的目的。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号