版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第四章 测试方法,2,4.1 软件测试方法概述,两种常用的测试方法 黑盒测试 白盒测试,Methods,Strategies,white-box methods,black-box methods,3,黑盒测试,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 黑盒测试又叫做功能测试或数据驱动测试。,4,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受? 能否输出正确的结果? 是否有数据结构错误或外部信息(例如数据文件)
2、访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误?,5,用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。 但这是不可能的。,6,假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 232232 264 如果测试一 组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。,7,4.2白盒测试,此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。,
3、通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。,8,软件人员使用白盒测试方法,主要想对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性,等。,9,10,对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。 包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,
4、需3170年。,11,源程序静态分析 在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图表,可以清晰地标识整个软件系统的组成结构,使其便于阅读与理解,然后可以通过分析这些图表,检查软件有没有存在缺陷或错误。,程序的静态测试,12,通常采用以下一些方法进行源程序的静态分析。 (1)生成各种引用表 标号交叉引用表 变量交叉引用表 子程序(宏、函数)引用表 等价表 常数表,13,(2)错误静态分析 错误静态分析主要用于确定在源程序中是否有某类错误或“危
5、险”结构。 类型和单位分析 引用分析 表达式分析 接口分析,14,逻辑覆盖,语句覆盖 判定覆盖 条件覆盖,判定条件覆盖 条件组合覆盖 路径覆盖。,逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。,白盒测试的测试用例设计,15,举例:所有路径为:L1(a-c-e) ,L2(a-b-d), L3(a-b-e), L4(a-c-d),16,17,18,19,依据以上推导出来的结果就可以设计满足要求的测试用例。,20,语句覆盖,语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。(注意:是可执语句,而不是所有可能路径!) 在图例中,正好所有的可执行语句
6、都在路径L1上,所以选择路径 L1设计测试用例,就可以覆盖所有的可执行语句。,21,测试用例的设计格式如下【输入的(A, B, X),输出的(A, B, X)】 为图例设计满足语句覆盖的测试用例是:【(2, 0, 4),(2, 0, 3)】 覆盖 ace【L1】,22,23,判定覆盖,判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。(只考虑每支都走过一次,而不考虑所有可能路径都走过一次) 判定覆盖又称为分支覆盖。 对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:,24,【(2, 0, 4),(2, 0, 3)】覆盖 ace【L1】【
7、(1, 1, 1),(1, 1, 1)】覆盖 abd【L2】,25,如果选择路径L3和L4,还可得另一组可用的测试用例:【(2, 1, 1),(2, 1, 2)】覆盖 abe【L3】【(3, 0, 3),(3, 1, 1)】覆盖 acd【L4】,26,27,条件覆盖,条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。 在图例中,我们事先可对所有条件的取值加以标记。例如, 对于第一个判断: 条件 A1 取真为 ,取假为 条件 B0 取真为 ,取假为,28,对于第二个判断: 条件A2 取真为 ,取假为 条件X1 取真为 ,取假为 测试用例 覆盖分支
8、条件取值 【(2, 0, 4),(2, 0, 3)】 L1(c, e) 【(1, 0, 1),(1, 0, 1)】 L2(b, d) 【(2, 1, 1),(2, 1, 2)】 L3(b, e) 或,29,测 试 用 例覆盖分支 条件取值 【(1, 0, 3),(1, 0, 4)】 L3(b, e) 【(2, 1, 1),(2, 1, 2)】 L3(b, e) 判定条件覆盖 判定条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次。,30,测 试 用例 覆盖分支 条件取值 【(2, 0, 4),(2, 0, 3)】 L1(
9、c, e) 【(1, 1, 1),(1, 1, 1)】 L2(b, d),31,由多个基本判断组成的流程图,32,条件组合覆盖,条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。 记 A1, B0 作 A1, B0 作 A1, B0 作 A1, B0 作,33, A2, X1 作 A2, X1 作 A2, X1 作 A2, X1 作 测 试 用 例 覆盖条件 覆盖组合 【(2, 0, 4), (2, 0, 3)】(L1) , 【(2, 1, 1), (2, 1, 2)】(L3) , 【(1, 0, 3), (1, 0, 4)】(L3) , 【(
10、1, 1, 1), (1, 1, 1)】(L2) , ,34,路径测试,路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。 测 试 用 例 通过路径 覆盖条件 【(2, 0, 4), (2, 0, 3)】 ace (L1) 【(1, 1, 1), (1, 1, 1)】 abd (L2) 【(1, 1, 2), (1, 1, 3)】 abe (L3) 【(3, 0, 3), (3, 0, 1)】 acd (L3),35,基本路径集测试,覆盖关键路径。,36,得到程序的控制流程图/程序图,37,38,计算环路复杂性的方法: -V(G)=简单判定节点数+ 1 V(G) = E-N+2 (E
11、是边数,N是定点数) V(G)=封闭区域数+ 1 V(G)=4,1,2,3,4,5,6,7,8,39,根据环路复杂性产生基本路径集 Path 1: 1-2-3-8 Path 2: 1-2-3-8-1-2-3 Path 3: 1-2-4-5-7-8 Path 4: 1-2-4-6-7-8 准备测试用例覆盖所有基本路径,40,基本路径测试法步骤 基本路径测试法适用于模块的详细设计及源程序,其主要步骤如下。 以详细设计或源代码作为基础,导出程序的控制流图。 计算得到的控制流图G的环路复杂性V(G)。 确定线性无关的路径的基本集。 生成测试用例,确保基本路径集中每条路径的执行。,41,1域测试 域测试
12、是一种基于程序结构的测试方法。 域测试正是在分析输入域的基础上,选择适当的测试点以后进行测试的。,其他白盒测试方法简介,42,2符号测试 符号测试的基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,这一方法也因此而得名。,43,3Z路径覆盖 分析程序中的路径是指检验程序从入口开始,执行过程中经历的各个语句,直到出口。,44,4程序变异 程序变异方法是一种错误驱动测试。所谓错误驱动测试方法,是指该方法是针对某类特定程序错误的。经过多年的测试理论研究和软件测试的实践,人们逐渐发现要想找出程序中所有的错误几乎是不可能的。比较现实的解决办法是将错误的搜索范围尽可能地缩小,以利于专门测试某
13、类错误是否存在。 错误驱动测试主要有两种,即程序强变异和程序弱变异。,45,最后,归纳一下白盒测试中各种测试方法的应用策略。在白盒测试中,可以使用各种测试方法的综合策略如下: (1)在测试中,应尽量先使用工具进行静态结构分析。 (2)测试中可采取先静态后动态的组合方式:先进行静态结构分析、代码检查,再进行覆盖率测试。,46,(3)利用静态分析的结果作为导引,通过代码检查和动态测试的方式对静态发现结果进行进一步的确认,使测试工作更为有效。 (4)覆盖率测试是白盒测试的重点,一般可使用基本路径测试法达到语句覆盖标准;对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率。,47,(5)在不同的测
14、试节点,测试的侧重点不同: 在单元测试阶段,以代码检查、逻辑覆盖为主; 在集成测试阶段,需要增加静态结构分析等; 在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试。,48,总结:,“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。 第一、穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序; 第二、穷举路径测试不可能查出程序中因遗漏路径而出错。 第三、穷举路径测试可能发现不了一些与数据相关的错误。,49,控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年中职工程数学实验(数据建模应用)试题及答案
- 网络信息安全态势
- 转基因生物安全
- 电子产品质量培训
- 雪天小班安全教案
- 校园冬季防火安全
- 《社戏》文本深度解析与教学实践-现代卡通插画风格
- 司法接工作制度
- 周黑鸭工作制度
- 四权工作制度
- 2026年护士资格考试统考历年真题及答案
- 2026江苏南京市雨花台区征收拆迁安置办公室招聘编外人员3人笔试参考题库及答案解析
- 内部财务交叉检查制度
- OpenClaw:AI从聊天到行动 下一代智能助手白皮书
- 电梯维保2026年复工培训
- 中国整形美容外科诊疗指南(2025版)
- 2026年及未来5年中国骨科手术机器人行业市场全景监测及投资战略咨询报告
- 精细化工过程与设备 第四章 塔式反应器
- 第6章-六足仿生机器人项目设计课件
- 安全文明施工措施费专款专用的方案
- 复方氨基酸注射液
评论
0/150
提交评论