《白盒测试技术》PPT课件.ppt

上传人:自*** 文档编号:124215987 上传时间:2020-03-11 格式:PPT 页数:63 大小:1.81MB
返回 下载 相关 举报
《白盒测试技术》PPT课件.ppt_第1页
第1页 / 共63页
《白盒测试技术》PPT课件.ppt_第2页
第2页 / 共63页
《白盒测试技术》PPT课件.ppt_第3页
第3页 / 共63页
《白盒测试技术》PPT课件.ppt_第4页
第4页 / 共63页
《白盒测试技术》PPT课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《《白盒测试技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《白盒测试技术》PPT课件.ppt(63页珍藏版)》请在金锄头文库上搜索。

1、第第2 2章章 白盒测试技术白盒测试技术 2 1 白盒测试方法 2 2 白盒测试的基本概念 2 3 覆盖测试 2 4 路径测试 2 5 最少测试用例数计算 本章教学目标本章教学目标 理论环节 v 学习理解白盒测试方法的基本概念 v 学习理解白盒测试的覆盖理论 v 学习掌握白盒测试的路径表达 v 学习掌握白盒测试的基本路径测试法 实践环节 v 通过案例运用学习掌握覆盖问题的解决方法 v 运用基本路径测试方法进行实际程序测试 2 1 2 1 白盒测试方法白盒测试方法 v 为什么要进行白盒测试 如果所有软件错误的根源都可以追溯到某个唯一 原因 那么问题就简单了 然而 事实上一个bug 常常是 由多个

2、因素共同导致的 如下图所示 ReturnReturn 假设此时开发工作已结束 程序假设此时开发工作已结束 程序 送交到测试组 没有人知道代码中有送交到测试组 没有人知道代码中有 一个潜在的被一个潜在的被 0 0 除的错误 若测试组除的错误 若测试组 采用的测试用例的执行路径没有同时采用的测试用例的执行路径没有同时 经过经过x 0 x 0和和y 5 xy 5 x进行测试 显然测试进行测试 显然测试 工作似乎非常完善 测试用例覆盖了工作似乎非常完善 测试用例覆盖了 所有执行语句 也没有被所有执行语句 也没有被 0 0 除的错误除的错误 发生 发生 白盒测试方法白盒测试方法 续 续 v 白盒测试也称

3、结构测试或逻辑驱动测试 是针对被测单元 内部是如何进行工作的测试 它根据程序的控制结构设计 测试用例 主要用于软件或程序验证 v 白盒测试法检查程序内部逻辑结构 对所有逻辑路径进行 测试 是一种穷举路径的测试方法 v 但即使每条路径都测试过了 仍然可能存在错误 因为 穷举路径测试无法检查出程序本身是否违反了设计规范 即程序是 否是一个错误的程序 穷举路径测试不可能查出程序因为遗漏路径而出错 穷举路径测试发现不了一些与数据相关的错误 白盒测试方法白盒测试方法 续 续 v 采用白盒测试方法必须遵循以下几条原则 才能达到 测试的目的 保证一个模块中的所有独立路径至少被测试一次 所有逻辑值均需测试真

4、true 和假 false 两种情 况 检查程序的内部数据结构 保证其结构的有效性 在上下边界及可操作范围内运行所有循环 v 白盒测试主要是检查程序的内部结构 逻辑 循环和路径 常用测试用例设计方法有 逻辑覆盖法 逻辑驱动测试 基本路径测试方法 2 2 2 2 白盒测试的基本概念白盒测试的基本概念 2 2 1 控制流图 2 2 2 环形复杂度 2 2 3 图矩阵 ReturnReturn 2 2 12 2 1 控制流图控制流图 v控制流图 可简称流图 是对程序流程图进行简 化后得到的 它可以更加突出的表示程序控制流 的结构 v控制流图中包括两种图形符号 节点和控制流线 v对于复合条件 则可将其

5、分解为多个单个条件 并映射成控制流图 常见结构的控制流图 常见结构的控制流图常见结构的控制流图 节点由带标号的圆圈表示 可代表一个或多个语句 一个处理框序列和 一个条件判定框 假设不包含复合条件 控制流线由带箭头的弧或线表示 可称为边 它代表程序中的控制流 其中 包含条件的节点被称为判定节点 也叫谓词节点 2 3 2 3 覆盖测试覆盖测试 2 3 1 测试覆盖率 2 3 2 逻辑覆盖法 2 3 3 面向对象的覆盖 2 3 4 测试覆盖准则 ReturnReturn 2 3 1 2 3 1 测试覆盖率测试覆盖率 v 测试覆盖率 用于确定测试所执行到的覆盖项的百分比 其中的覆盖项是指作为测试基础的

6、一个入口或属性 比如 语句 分支 条件等 v 测试覆盖率可以表示出测试的充分性 在测试分析报告中 可以作为量化指标的依据 测试覆盖率越高效果越好 但 覆盖率不是目标 只是一种手段 v 测试覆盖率包括功能点覆盖率和结构覆盖率 功能点覆盖率大致用于表示软件已经实现的功能与软件需 要实现的功能之间的比例关系 结构覆盖率包括语句覆盖率 分支覆盖率 循环覆盖率 路径覆盖率等等 2 3 2 2 3 2 逻辑覆盖法逻辑覆盖法 v 根据覆盖目标的不同 逻辑覆盖又可分为语句覆盖 判定 覆盖 条件覆盖 判定 条件覆盖 组合覆盖和路径覆盖 语句覆盖 选择足够多的测试用例 使得程序中的每个可 执行语句至少执行一次 判

7、定覆盖 通过执行足够的测试用例 使得程序中的每个 判定至少都获得一次 真 值和 假 值 也就是使程 序中的每个取 真 分支和取 假 分支至少均经历一次 也称为 分支覆盖 条件覆盖 设计足够多的测试用例 使得程序中每个判定 包含的每个条件的可能取值 真 假 都至少满足一次 逻辑覆盖法逻辑覆盖法 续 续 判定 条件覆盖 设计足够多的测试用例 使得程序中每个判定包含的 每个条件的所有情况 真 假 至少出现一次 并且每个判定本身的判 定结果 真 假 也至少出现一次 满足判定 条件覆盖的测试用例一定同时满足判定覆盖和条件覆 盖 组合覆盖 通过执行足够的测试用例 使得程序中每个判定的所有可 能的条件取值组

8、合都至少出现一次 满足组合覆盖的测试用例一定满足判定覆盖 条件覆盖和判定 条件覆盖 路径覆盖 设计足够多的测试用例 要求覆盖程序中所有可能的路径 逻辑覆盖法逻辑覆盖法 续 续 组合覆盖 判断 条件覆盖 判断覆盖条件覆盖 语句覆盖 C F A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5

9、 4 A D B E A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E 语句覆盖语句覆盖 v语句覆盖 选择 足够多的测试用 例 使得程序中 的每个可执行语 句至少执行一次 A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E 测试用例A B X A 1 and B 0 A 2 or X 1执行路径 测试用例12 0 3真 T 真 T ace BCEF 检查不 出and 写成or 判定覆盖判定覆盖 判定覆盖 通过执行足够 的测试用例 使得程序中

10、的每个判定至少都获得一 次 真 值和 假 值 也就是使程序中的每个取 真 分支和取 假 分 支至少均经历一次 也称 为 分支覆盖 A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E 测试用例A B X A 1 and B 0 A 2 or X 1执行路径 测试用例12 0 3真 T 真 T ace BCEF 测试用例21 0 1假 T 假 T abd AD 检查不出 X 1误写 成X1为真 T1 A 1为假 v T2 B 0为真 T2 B 0为假 v 对于第二个条件 v T3 A 2为真 T3 A 2为假 v T4 X

11、 1为真 T4 X 1为假 A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E 测试用例A B X执行路径覆盖条件 测试用例12 0 3ace BCEF T1 T2 T3 T4 测试用例51 1 1abd AD T1 T2 T3 T4 判定判定 条件覆盖条件覆盖 判定 条件覆盖 设计足 够多的测试用例 使得程 序中每个判定包含的每个 条件的所有情况 真 假 至少出现一次 并且每 个判定本身的判定结果 真 假 也至少出现一次 满足判定 条件覆盖 的测试用例一定同时满足 判定覆盖和条件覆盖 A 1and B 0 A 2 o

12、r X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E 测试用例A B X执行路径覆盖条件 A 1 and B 0 A 2 or X 1 测试用例12 0 3ace BCEF T1 T2 T3 T 4 真 T 真 T1 测试用例51 1 1abd AD T1 T2 T3 T4 假 T 假 T1 组合覆盖组合覆盖 组合覆盖 通过执行足 够的测试用例 使得程 序中每个判定的所有可 能的条件取值组合都至 少出现一次 满足组合覆盖的 测试用例一定满足判定 覆盖 条件覆盖和判定 条件覆盖 结合书P96 8种组合 A 1and B 0 A 2 or X 1 X X

13、A X X A T c e T d b 1 2 3 5 4 A D B E 测试用例A B X执行路径覆盖条件覆盖组合号 测试用例12 0 3ace BCEF T1 T2 T3 T41 5 测试用例42 1 1abeT1 T2 T3 T42 6 测试用例51 1 1abd AD T1 T2 T3 T44 8 测试用例61 0 3abe T1 T2 T3 T43 7 路径路径覆盖覆盖 路径覆盖 设计足够 多的测试用例 要 求覆盖程序中所有 可能的路径 A 1and B 0 A 2 or X 1 X X A X X A T c e T d b 1 2 3 5 4 A D B E 测试用例A B X

14、执行路径 测试用例12 0 3ace 测试用例21 0 1abd 测试用例33 0 3acd 测试用例42 1 1abe 2 4 2 4 路径测试路径测试 2 4 1 路径表达式 2 4 2 基本路径测试方法 2 4 3 循环测试方法 2 4 4 产生测试用例 ReturnReturn 2 4 1 2 4 1 路径表达式路径表达式 v 通常采用控制流图的边 弧 序列和节点序列表示某一 条具体路径 更为概括的表 示方法为 1 弧a和弧b相乘 表示为ab 2 弧a和弧b相加 表示为a b v 路径数的计算 在路径表达式中 将所有弧均以数值1来代替 再进行表达式的相乘和相加 运算 最后得到的数值即为

15、 该程序的路径数 1 2 3 4 5 a b c de f 路径表达式 abdf abef acdf acef 2 4 2 2 4 2 基本路径测试方法基本路径测试方法 v 路径测试就是从一个程序的入口开始 执行所经历的各个语句的完整 过程 v 从广义的角度讲 任何有关路径分析的测试都可以被称为路径测试 v 完成路径测试的理想情况是做到路径覆盖 但对于复杂性大的程序要 做到所有路径覆盖 测试所有可执行路径 是不可能的 v 在不能做到所有路径覆盖的前提下 如果某一程序的每一个独立路径 都被测试过 那么可以认为程序中的每个语句都已经检验过了 即达 到了语句覆盖 这种测试方法就是通常所说的基本路径测

16、试方法 环形复杂度环形复杂度 v 环形复杂度也称为圈复杂度 它是一种为程序逻辑复杂度 提供定量尺度的软件度量 v 环形复杂度的应用 可以将环形复杂度用于基本路径方 法 它可以提供 程序基本集的独立路径数量 确保所有 语句至少执行一次的测试数量的上界 独立路径是指程序中至少引入了一个新的处理语句集合或 一个新条件的程序通路 采用流图的术语 即独立路径必 须至少包含一条在本次定义路径之前不曾用过的边 v 测试可以被设计为基本路径集的执行过程 但基本路径集 通常并不唯一 基本路径测试基本路径测试 续 续 v 基本路径测试方法在程序控制流图的基础上 通过分析控制 结构的环形复杂度 导出基本可执行路径集合 从而设计测 试用例 它包括以下4个步骤 1 画出程序的控制流图 2 计算程序的环形复杂度 导出程序基本路径集合中的独 立路径条数 这是确定程序中每个可执行语句至少执行一次 所必须的测试用例数目的上界 3 导出基本路径集 确定程序的独立路径 4 根据各条独立路径 设计测试用例的输入数据和预期结 果 计算环形复杂度的方法计算环形复杂度的方法 v 环形复杂度以图论为基础 为 我们提供了非常有用的软件

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

最新文档


当前位置:首页 > 中学教育 > 教学课件

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