已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7 6白盒测试技术 测试方案包括具体的测试目的 应该输入的测试数据和预期的结果 通常又把测试数据和预期的输出结果称为测试用例 设计测试方案的基本目标 确定一组最可能发现某个错误或某类错误的测试数据 白盒测试法按照程序内部的逻辑测试程序 检测程序中的主要执行通路是否都能按预定要求正确工作 本节讲述在用白盒方法测试软件时设计测试数据的典型技术 学习内容 逻辑覆盖的概念逻辑覆盖的分类语句覆盖判定覆盖条件覆盖判定 条件覆盖条件组合覆盖点覆盖边覆盖路径覆盖覆盖法之间的关系 教学目标 理论环节学习理解白盒测试方法的基本概念学习理解白盒测试的覆盖理论实践环节通过案例运用学习掌握覆盖问题的解决方法 逻辑覆盖的概念 逻辑覆盖 是以程序内在逻辑结构为基础的测试 是对一系列测试过程的总称 这组测试过程逐渐进行越来越完整的通路测试 7 6 1逻辑覆盖 逻辑覆盖法的分类 根据覆盖目标的不同 逻辑覆盖又可分为 语句覆盖判定覆盖条件覆盖判定 条件覆盖组合覆盖路径覆盖 voidDoWork intx inty intz intk 0 j 0 if x 3 语句块3 程序举例 程序流程图 语句覆盖 语句覆盖 选择足够多的测试用例 使得程序中的每个可执行语句至少执行一次 语句覆盖 要实现DoWork函数的语句覆盖 只需设计一个测试用例就可以覆盖程序中的所有可执行语句 测试用例输入为 x 4 y 5 z 5 程序执行的路径是 abdf 结果如何呢 X 3 z5 语句覆盖 分析 语句覆盖可以保证程序中的每个语句都得到执行 但发现不了判定中逻辑运算的错误 即它并不是一种充分的检验方法 例如在第一个判定 x 3 z 10 中把 错误地写成了 这时仍使用该测试用例 则程序仍会按照流程图上的路径abdf执行 可以说语句覆盖是最弱的逻辑覆盖准则 判定覆盖 判定覆盖 通过执行足够多的测试用例 使得程序中的每个判定至少都获得一次 真 值和 假 值 也就是使程序中的每个取 真 分支和取 假 分支至少均经历一次 也称为 分支覆盖 判定覆盖 要实现DoWork函数的判定覆盖 需要设计两个测试用例 测试用例的输入为 x 4 y 5 z 5 x 2 y 5 z 5 程序执行的路径分别是 abdf acef y 5 结果如何呢 判定覆盖 分析 上述两个测试用例不仅满足了判定覆盖 同时还做到语句覆盖 从这点看似乎判定覆盖比语句覆盖更强一些 但仍然无法确定判定内部条件的错误 例如把第二个判定中的条件y 5错误写为y 5 使用上述测试用例 照样能按原路径执行而不影响结果 因此 需要有更强的逻辑覆盖准则去检验判定内的条件 条件覆盖 条件覆盖 设计足够多的测试用例 使得程序中每个判定包含的每个条件的可能取值 真 假 都至少满足一次 条件覆盖 在实际程序代码中 一个判定中通常都包含若干条件 条件覆盖的目的是设计若干测试用例 在执行被测程序后 要使每个判定中每个条件的可能值至少满足一次 对DoWork函数的各个判定的各种条件取值加以标记 对于第一个判定 x 3 z3取真值记为T1 取假值记为 T1条件z5 条件x 4取真值记为T3 取假值记为 T3条件y 5取真值记为T4 取假值记为 T4 条件覆盖 续 根据条件覆盖的基本思想 要使上述4个条件可能产生的8种情况至少满足一次 设计测试用例如下 分析 上面这组测试用例不但覆盖了4个条件的全部8种情况 而且将两个判定的4个分支b c d e也同时覆盖了 即同时达到了条件覆盖和判定覆盖 条件覆盖 续 说明 虽然前面的一组测试用例同时达到了条件覆盖和判定覆盖 但是 并不是说满足条件覆盖就一定能满足判定覆盖 如果设计了下表中的这组测试用例 则虽然满足了条件覆盖 但只是覆盖了程序中第一个判定的取假分支c和第二个判定的取真分支d 不满足判定覆盖的要求 判定 条件覆盖 判定 条件覆盖 设计足够多的测试用例 使得程序中每个判定包含的每个条件的所有情况 真 假 至少出现一次 并且每个判定本身的判定结果 真 假 也至少出现一次 满足判定 条件覆盖的测试用例一定同时满足判定覆盖和条件覆盖 判定 条件覆盖 判定 条件覆盖实际上是将判定覆盖和条件覆盖结合起来的一种方法 即 设计足够的测试用例 使得判定中每个条件的所有可能取值至少满足一次 同时每个判定的可能结果也至少出现一次 根据判定 条件覆盖的基本思想 只需设计以下两个测试用例便可以覆盖4个条件的8种取值以及4个判定分支 判定 条件覆盖 判定 条件覆盖 续 分析 从表面上看 判定 条件覆盖测试了各个判定中的所有条件的取值 但实际上 编译器在检查含有多个条件的逻辑表达式时 某些情况下的某些条件将会被其它条件所掩盖 因此 判定 条件覆盖也不一定能够完全检查出逻辑表达式中的错误 例如 对于第一个判定 x 3 z3和z3为假 则编译器将不再检查z5 来说 若条件x 4满足 就认为该判定为真 这时将不会再检查y 5 那么同样也无法发现这个条件中的错误 组合覆盖 组合覆盖 通过执行足够的测试用例 使得程序中每个判定的所有可能的条件取值组合都至少出现一次 满足组合覆盖的测试用例一定满足判定覆盖 条件覆盖和判定 条件覆盖 组合覆盖 组合覆盖的目的是要使设计的测试用例能覆盖每一个判定的所有可能的条件取值组合 对DoWork函数中的各个判定的条件取值组合加以标记 1 x 3 z3 z 10记做T1 T2 第一个判定的取假分支3 x 10记做 T1 T2 第一个判定的取假分支5 x 4 y 5记做T3T4 第二个判定的取真分支6 x 4 y5记做 T3T4 第二个判定的取真分支8 x 4 y 5记做 T3 T4 第二个判定的取假分支 组合覆盖 根据组合覆盖的基本思想 设计测试用例如下 分析 上面这组测试用例覆盖了所有8种条件取值的组合 覆盖了所有判定的真假分支 但是却丢失了一条路径abef 覆盖法之间的关系 练习 设计下列伪码程序的语句覆盖和路径覆盖测试用例 STARTINPUT A B C IFA 5THENX 10ELSEX 1ENDIFIFB 10THENY 20ELSEY 2ENDIF IFC 15THENZ 30ELSEZ 3ENDIFPRINT X Y Z STOP 语句覆盖的测试用例 路径覆盖的测试用例 设计下列伪码程序的分支覆盖和条件组合覆盖测试用例 STARTINPUT A B C D IF A 0 AND B 0 THENX A BELSEX A BENDIF C A AND D B THENY C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 5 Good manners(复习课件)英语新教材译林版八年级下册
- it个人外包合同
- 上水作业外包合同
- 中央空调外包合同
- 临淄区劳务外包合同
- 亦庄置业外包合同
- 仓储服务外包合同
- 海装风电外包合同
- 企业短期工外包合同
- 供销社送菜外包合同
- 压缩空气储能技术
- 行政管理本科毕业论文-我国城市流动人口管理问题研究
- 代还信用贷款合同
- SMT设备安全培训材料
- 专题04 名篇名句默写-(2020-2024)5年高考1年模拟语文真题分类汇编(天津专用)
- 伙食管理委员会职责
- 管道直饮水项目可行性研究报告
- 小型农田灌溉工程施工组织设计
- 2024年广东省广州市市中考道德与法治试卷真题(含答案逐题解析)
- GB/T 4008-2024锰硅合金
- 车辆租赁服务方案
评论
0/150
提交评论