




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章白盒测试及其实例设计9 1逻辑覆盖测试9 2路径分析测试9 3其他白盒测试方法9 4白盒测试综合用例 第9章白盒测试及其实例设计本章概要逻辑覆盖测试路径分析测试其他白盒测试方法白盒测试综合用例9 1逻辑覆盖测试白盒测试技术的常见方法之一就是覆盖测试 它是利用程序的逻辑结构设计相应的测试用例 测试人员要深入了解被测程序的逻辑结构特点 完全掌握源代码的流程 才能设计出恰当的用例 根据不同的测试要求 覆盖测试可以分为语句覆盖 判断覆盖 条件覆盖 判断 条件覆盖 条件组合覆盖和路径覆盖 9 2路径分析测试着眼于路径分析的测试称为路径分析测试 完成路径测试的理想情况是做到路径覆盖 路径覆盖也是白盒测试最为典型的问题 独立路径选择和Z路径覆盖是两种常见的路径覆盖方法 9 2 1控制流图白盒测试是针对软件产品内部逻辑结构进行测试的 测试人员必须对测试中的软件有深入的理解 包括其内部结构 各单元部分及之间的内在联系 还有程序运行原理等等 为了更加突出程序的内部结构 便于测试人员理解源代码 可以对程序流程图进行简化 生成控制流图 控制流图有以下几个特点 1 具有唯一入口节点 即源节点 表示程序段的开始语句 2 具有唯一出口节点 即汇节点 表示程序段的结束语句 3 节点由带有标号的圆圈表示 表示一个或多个无分支的源程序语句 4 控制边由带箭头的直线或弧表示 代表控制流的方向 2 程序环路复杂性程序的环路复杂性是一种描述程序逻辑复杂度的标准 该标准运用基本路径方法 给出了程序基本路径集中的独立路径条数 这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界 给定一个控制流图G 设其环形复杂度为V G 在这里介绍三种常见的计算方法来求解V G 1 V G E N 2 其中E是控制流图G中边的数量 N是控制流图中节点的数目 2 V G P 1 其中P是控制流图G中判断节点的数目 3 V G A 其中A是控制流图G中区域的数目 由边和结点围成的区域叫做区域 当在控制流图中计算区域的数目时 控制流图外的区域也应记为一个区域 9 2 2独立路径测试从前面学过的覆盖测试一节中可知 对于一个较为复杂的程序要做到完全的路径覆盖测试是不可能实现的 既然路径覆盖测试无法达到 那么可以对某个程序的所有独立路径进行测试 也就是说检验了程序的每一条语句 从而达到语句覆盖 这种测试方法就是独立路径测试方法 从控制流图来看 一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径 路径可以用控制流图中的节点序列来表示 1 导出程序控制流图2 求出程序环形复杂度3 设计测试用例9 2 3Z路径覆盖测试和独立路径选择一样 Z路径覆盖也是一种常见的路径覆盖方法 可以说Z路径覆盖是路径覆盖面的一种变体 对于语句较少的简单程序 路径覆盖是具有可行性的 但是对于源代码很多的复杂程序 或者对于含有较多条件语句和较多循环体的程序来说 需要测试的路径数目会成倍增长 达到一个巨大数字 以至于无法实现路径覆盖 9 3其他白盒测试方法白盒测试除了覆盖测试和路径分析测试两大类方法之外 还有很多其他常见的测试方法 如循环测试 变异测试 程序插装等等 这些方法相辅相成 增强测试效果 提高测试效率 9 3 1循环测试循环测试是一种着重循环结构有效性测试的白盒测试方法 1 简单循环设计简单循环测试用例时 有以下几种测试集情况 其中n是可以通过循环体的最大次数 1 零次循环 跳过循环体 从循环入口到出口 2 通过一次循环体 检查循环初始值 3 通过两次循环体 检查两次循环 4 m次通过循环体 m n 检查在多次循环 5 n n 1 n 1次通过循环体 检查最大次数循环以及比最大次数多一次 少一次的循环 2 嵌套循环如果采用简单循环中的测试集来测试嵌套循环 可能的测试数目就会随着嵌套层数的增加成几何级的增长 这样的测试是无法实现的 所以 要减少测试数目 1 对最内层循环按照简单循环的测试方法进行测试 把其他外层循环设置为最小值 2 逐步外推 对其外面一层的循环进行测试 测试时保持本次循环的所有外层循环仍取最小值 而由本层循环嵌套的循环取某些 典型 值 反复进行 2 中操作 向外层循环推进 直到所有各层循环测试完毕 3 串接循环如果串接循环的循环体之间是彼此独立的 那么采用简单循环的测试方法进行测试 如果串接循环的循环体之间有关联 例如前一个循环体的结果是后一个循环体的初始值 那么需要应用嵌套循环的测试方法进行测试 4 无结构循环不能测试 重新设计出结构化的程序后再进行测试 9 3 2变异测试变异测试是一种故障驱动测试 即针对某一类特定程序故障进行的测试 变异测试也是一种比较成熟的排错性测试方法 它可以通过检验测试数据集的排错能力来判断软件测试的充分性 总之 对程序进行变换的方法多种多样 具体操作要靠测试人员的实际经验 通过变异分析构造测试数据集的过程是一个循环过程 当对源程序及其变异体进行测试后 若发现某些变异体并不理想 就要适当增加测试数据 直到所有变异体达到理想状态 即变异体集合中的每一个变异体在T上都存在错误 9 3 3程序插装程序插装是借助于在被测程序中设置断点或打印语句来进行测试的方法 在执行测试的过程中可以了解一些程序的动态信息 这样在运行程序时 既能检验测试的结果数据 又能借助插入语句给出的信息掌握程序的动态运行特性 从而把程序执行过程中所发生的重要事件记录下来 程序插装设计时主要需要考虑三方面因素 1 需要探测哪些信息 2 在程序的什么位置设立插装点 3 计划设置多少个插装点 小结白盒测试是基于被测程序的源代码设计测试用例的测试方法 常见的白盒测试方法有逻辑覆盖测试和路径分析测试两大类 在逻辑覆盖测试中 按照覆盖策略由弱到强的严格程度 介绍了语句覆盖 判断覆盖 条件覆盖 判断 条件覆盖 条件组合覆盖和路径覆盖六种覆盖测策略 语句覆盖 每个语句至少执行一次 判定覆盖 在语句覆盖的基础上 每个判定的每个分支至少执行一次 条件覆盖 在语句覆盖的基础上 使每个判定表达式的每个条件都取到各种可能的结果 判定 条件覆盖 即判定覆盖和条件覆盖的交集 条件组合覆盖 每个判定表达式中条件的各种可能组合都至少出现一次 路径覆盖 每条可能的路径都至少执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水资源智能运维与维护-洞察及研究
- 工业0下的机械优化-洞察及研究
- 医院门诊接待服务规范手册
- 高含杂质原油处理评价报告
- 财务风险预警风险规定风险预防制
- 饮食安全事故处理方案
- 快乐的麦克小虎的足球训练规程
- 2025年太阳能光伏绿色信贷政策效果评估与建议报告
- 股份分红协议书模板及法律要点
- 物联网技术在饮料生产过程中的数据集成研究-洞察及研究
- 2025年国企面试题型及答案
- 【道法】2025~2026学年度第一学期七年级上册道德与法治第一次月考试卷
- 5年(2021-2025)高考1年模拟物理真题分类汇编专题04 机械能守恒、动量守恒及功能关系(广东专用)(解析版)
- 2025湖南生物机电职业技术学院单招《语文》考试历年机考真题集【必考】附答案详解
- 2024年齐齐哈尔市公安局招聘警务辅助人员真题
- 4.2《让家更美好》 课件 2025-2026道德与法治七年级上册 统编版
- 2025耿马傣族佤族自治县司法局面向社会公开招聘司法协理员(10人)考试参考题库及答案解析
- 北师大版三年级上册第八单元8.1《评选吉祥物》课时练(含答案)
- 麻精药品培训知识课件
- 手术室无菌技术操作讲课
- 2025年北京师大附属实验中学丘成桐少年班选拔数学试卷
评论
0/150
提交评论