软件单元测试用例设计ppt课件.ppt

上传人:资****亨 文档编号:124735829 上传时间:2020-03-13 格式:PPT 页数:46 大小:1.17MB
返回 下载 相关 举报
软件单元测试用例设计ppt课件.ppt_第1页
第1页 / 共46页
软件单元测试用例设计ppt课件.ppt_第2页
第2页 / 共46页
软件单元测试用例设计ppt课件.ppt_第3页
第3页 / 共46页
软件单元测试用例设计ppt课件.ppt_第4页
第4页 / 共46页
软件单元测试用例设计ppt课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

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

1、软件单元测试用例设计软件单元测试用例设计 1 1 软件单元测试用例设计1 软件单元测试用例设计举例2 课程内容课程内容 2 2 逻辑覆盖 功能覆盖 函数覆盖 属白盒的范畴 主要有语句 覆盖 判断覆 盖 条件覆盖 判断 条件 覆盖 路径覆 盖 属黑盒的范畴 用来指出测 试用例是否已 经覆盖了程序 应该提供的功 能 主要用来衡量 系统中哪些函 数被使用到 哪些函数没有 被使用到 覆盖率覆盖率 3 3 编写原则 1 测试用例的设计根据是软件的 详细设计说 明书 2 单元测试用例用来证明一个独立的单元是否实 现了单元设计说明书中的要求 3 单元测试不仅仅要进行正向测试 同时还应该 作逆向测试 单元测试

2、用例编写原则单元测试用例编写原则 4 4 语句覆盖法语句覆盖法 uu含义 运行被测程序 使程序中含义 运行被测程序 使程序中 的每个可执行语句至少被执行一次的每个可执行语句至少被执行一次 语句覆盖率 至少被执行一次的语句数量 可执行的语句数量 5 5 A 2 B 0 CASE1 X 3 A 2 B 1 CASE2 X 3 CASE1 能达到语句覆盖 CASE2 不能达到语句覆盖 语句覆盖法设计测试用例语句覆盖法设计测试用例 6 6 A 2 B 0 CASE1 路径ace X 3 A 1 B 0 CASE2 路径abd X 1 A 3 B 0 CASE1 路径acd X 3 A 2 B 1 CA

3、SE2 路径abe X 1 分支覆盖法设计测试用例分支覆盖法设计测试用例 7 7 条件条件取值取值标记标记 A 1A 1取真取真T1T1 取假取假F1F1 B 0B 0取真取真T2T2 取假取假F2F2 A 2A 2取真取真T3T3 取假取假F3F3 X 1X 1取真取真T4T4 取假取假F4F4 条件覆盖法设计测试用例 条件覆盖法设计测试用例 1 1 8 8 测测 试试 用用 例例 A B A B X X 所走所走 路径路径 覆盖条覆盖条 件件 CASCAS E1E1 2 0 2 0 3 3 a c a c e e T T1 1 T T 2 2 T T 3 3 CASCAS E2E2 1 0

4、 1 0 1 1 a b a b d d F F1 1 F F 3 3 F F 4 4 CASCAS E3E3 2 1 2 1 1 1 a b a b e e T T1 1 F F 2 2 T T 3 3 条件覆盖法设计测试用例 条件覆盖法设计测试用例 2 2 9 9 测测 试试 用用 例例 A B XA B X所走所走 路径路径 覆盖覆盖 条件条件 CACA SESE 1 1 1 0 1 0 3 3 a a b eb e F1F3TF1F3T 4 4 CACA SESE 2 2 2 1 2 1 1 1 a a b eb e T1F2TT1F2T 3 3 覆盖了条件的测试用例不一定覆盖了分支

5、条件覆盖法设计测试用例 条件覆盖法设计测试用例 3 3 1010 组合组合 编号编号 条件取值条件取值 标记标记 A 1A 1 B B 0 0 T T1 1 T T 2 2 A 1A 1 B B 0 0 T T1 1 F F 2 2 A 1A 1 B B 0 0 F F1 1 T T 2 2 A 1A 1 B 0 B 0 F F1 1 F F 2 2 A A 2 2 X X 1 1 T T3 3 T T 4 4 A A 2 2 X 1X 1 T T3 3 F F 4 4 A 2A 2 X X 1 1 F F3 3 T T 4 4 A 2A 2 X 1X 1 F F3 3 F F 4 4 设计足

6、够的测试用例 使得判断中每个条件的所 有可能至少出现一次 并且每个判断本身的判定 结果也至少出现一次 分支条件法设计测试用例 分支条件法设计测试用例 1 1 1111 测试测试 用例用例 ABXABX覆覆 盖盖 组组 合合 所走所走 路径路径 覆盖条覆盖条 件件 CASECASE 1 1 2 0 2 0 3 3 ace ace T T 1 1 T T 2 2 T T 3 3 CASECASE 2 2 2 1 2 1 1 1 abdabd T T1 1 F F 2 2 T T 3 3 CASECASE 3 3 1 0 1 0 3 3 abeabe F F1 1 F F 3 3 T T 4 4 C

7、ASECASE 4 4 1 1 1 1 1 1 abdabd F F1 1 F F 3 3 F F 4 4 以上四个测试用例固然覆盖了条件组合 同时也覆盖了4个 分支 但仅覆盖了3条路径 却漏掉了路径acd 分支条件法设计测试用例 分支条件法设计测试用例 2 2 1212 测试用测试用 例例 ABXABX覆盖路覆盖路 径径 CASE1CASE12 0 32 0 3ace ace CASE2CASE21 0 11 0 1abdabd CASE3CASE32 1 12 1 1abeabe CASE4CASE43 0 13 0 1acdacd 设计足够多测试用例 要求覆盖程序中所有可能的路径 路径覆

8、盖法设计测试用例 路径覆盖法设计测试用例 1 1 1313 路径能否全面覆盖在软件测试中 是个重要问题 如果程序中的每 一条路径都得到考验 才能说程 序受到了全面检验 测试中做到完全的路径覆盖是无 法实现的 为解决这一难题只得 把覆盖的路径数压缩到一定限度 内 即使对于路径数很有限的程序已经 作到了路径覆盖 仍然不能保证被 测程序的正确性 路径覆盖法设计测试用例 路径覆盖法设计测试用例 2 2 1414 测试中做到完全的路径覆盖是无 法实现的 为解决这一难题只得 把覆盖的路径数压缩到一定限度 内 右图包含的不同执行路径数达5的 20次方条 假定对每一条路径进 行测试需要1毫秒 一年工作365

9、24小时 要想把所有路径测试完 需3170年 路径覆盖的困难路径覆盖的困难 1515 基本路径覆盖法是在程序控制流图的基础上 通过分析控制结构的环路复杂性 导出基本可 执行路径集合 设计测试用例的方法 设计出的测试用例要保证在测试中 程序的每一 个可执行语句至少要执行一次 该方法把覆盖的路径数压缩到一定限度内 程序 中的循环体最多只执行一次 基本路径覆盖法基本路径覆盖法 1616 符号 为控制流图的一个结点 表示一个或多个无分支的源程序语句 箭 头为边 表示控制流的方向 程序控制流图程序控制流图 1717 1 在选择或多分支结构中 分支的汇聚处应有一个汇聚结点 2 边和结点圈定的区域叫做区域

10、当对区域计数时 图形 外的区域也应记为一个区域 3 如果判断中的条件表达式是由一个或多个逻辑运算符 OR AND NAND NOR 连接的复合条件表达式 则需要 改为一系列只有单条件的嵌套的判断 流图 程序控制流图程序控制流图 1818 基本路径覆盖法基本路径覆盖法 1919 基本路径覆盖法基本路径覆盖法 2020 1 程序的环路复杂性 程序基本路径集中 的独立路径数量 这是确保程序中每个可 执行语句至少执行一次所必需的测试用例 数目的上界 2 独立路径 至少包含有一条在其它独立 路径中从未有过的边的路径 复杂性 程序环路复杂性程序环路复杂性 2121 1 流图中区域的数量对应于环型的复杂性

11、2 给定流图G的圈复杂度V G 定义为 V G E N 2 E是流图中边的数量 N是 流图中结点的数量 3 给定流图G的圈复杂度V G 定义为 V G P 1 P是流图G中判定结点的 数量 复杂性计算 程序环路复杂性程序环路复杂性 2222 例如 在图示的控制流图中 一组独立的路径是 path1 1 11 path2 1 2 3 4 5 10 1 11 path3 1 2 3 6 8 9 10 1 11 path4 1 2 3 6 7 9 10 1 11 路径 path1 path2 path3 path4组成了控制流图的 一个基本路径集 例如 基本路径覆盖法基本路径覆盖法 2323 路径覆盖

12、法 1 从详细设计导出流图 2 确定流图的环路复杂度 3 确定独立路径的基本集 4 导出测试用例 确保基本路径集中的每一条 路径的执行 5 据判断结点给出的条件 选择适当的数据以 保证某一条 路径可以被测试到 用逻辑覆盖方法 基本路径覆盖法基本路径覆盖法 2424 循环分为4种不同类型 1 简单循环 2 连锁循环 3 嵌套循环 4 非结构循环 不同类型 循环路径测试循环路径测试 2525 四种循环路径四种循环路径 2626 1 零次循环 从循环入口到出口 2 一次循环 检查循环初始值 3 m次循环 检查更多次循环 反映执行典型的循环的执行次数 5 最大次数循环 比最大次数多一 次 少一次的循环

13、 6 对于增量和减量不是1的循环 要 特别注意 路径选择 简单循环的路径选择简单循环的路径选择 2727 对最内层循环做简单循环的全部测试 所有其 它层的循环次数置为最小值 逐步外推 对其外面一层循环进行测试 测试 时保持所有外层循环的循环次数取最小值 所 有其它嵌套内层循环的循环次数取 典型 值 反复进行 直到所有各层循环测试完毕 对全部各层循环同时取最小循环次数 或者同 时取最大循环次数 路径选择 嵌套循环的路径选择嵌套循环的路径选择 2828 如果各个循环互相独立 则 可以用与简单循环相同的方 法进行测试 但如果几个循 环不是互相独立的 则需要 使用测试嵌套循环的办法来 处理 路径选择

14、连锁循环路径选择连锁循环路径选择 2929 这一类循环应该使用结构化 程序设计方法重新设计 并 重新设计测试用例 路径选择 非结构循环的路径选择非结构循环的路径选择 3030 有效等价类是程序规格 说明有意义 合理的输 入数据 无效等价类是程序规格 说明无意义 不合理的 输入数据 某个输入域的集合 在这个集合中每个输 入条件都是等效的 如果其中一个的输入 不能导致问题发生 那么集合中其它输入 条件进行测试也不可 能发现错误 等价类 等价类 有效等价类 有效等价类 无效等价类 无效等价类 等价类划分方法等价类划分方法 3131 使用依据 等价类中的一个条件作为测 试数据进行测试不能发现程 序中的

15、缺陷 那么使用等价 类中的其它条件作为测试数 据进行测试 也不能发现错 误 等价类使用依据等价类使用依据 3232 划分原则 1 如果输入条件规定了取值范围或值的格式 则 可以确定一个有效等价类和两个无效等价类 2 输入条件规定了输入值的集合 或是规定了必 须如何的条件 则可以确定一个有效等价类和一 个无效等价类 3 如果我们确知 已经划分的等价类中各个元素 在程序中的处理方式不同的 则应该将此等价类 进一步划分 等价类划分原则等价类划分原则 3333 输入条件输入条件有效等价类有效等价类无效等价类无效等价类 等价类表等价类表 3434 测试用例 1 为每个输入划分等价类 得到等价类表 为每个

16、等 价类规定一个唯一编号 2 设计一个测试用例 使其尽可能多的覆盖所有尚未 覆盖的有效等价类 3 重复这一步骤 使得有效等价类均被测试用例所覆 盖 4 设计一个测试用例 使其只覆盖一个无效等价类 5 重复这一步骤使得所有无效等价类均被覆盖 等价类方法设计测试用例等价类方法设计测试用例 3535 边值分析方法的理论基础 是假定大多数的错误是发生在各种输入条件 的边界上 如果在边界附件的取值不会导致程序出错 那么其它的取值 导致程序错误的可能性也很小 边界值分析使用条件 条件 1 输入条件明确了一个值的取值范围 或是规定了值的个数 2 输入条件明确了一个有序集合 边界值分析方法边界值分析方法 3636 边界上的点 如果域 的边界是封闭的 上 点就在域范围内 如 果域的边界是开放的 上点就在域范围外 就是离上点最近的一 个 点 如果域的边界是 封 闭的 离点就在域范 围 外 如果域的边界是 开放的 离点就在域 范围内 顾名思义 就是在域范 围内的任意一个点 上点 上点 离点 离点 内点 内点 边界值点定义边界值点定义 3737 闭区间开区间半开半闭 区间 上点 离点 内点上点 离点 内点上点

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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