覆盖率(白盒)测试
2015-07-26 21:26
288 查看
1.由于覆盖率的不同,可以分为以下几种情况
语句覆盖
设计若干测试用例,运行被测程序,使得每个可执行语句至少执行一次
判定覆盖(分支覆盖)
使得每个判定的取值分支和取假分支至少评价一次
条件覆盖
使得每个判定的每个条件的可能取值至少评价一次
条件/判定覆盖
使得判定语句的每个条件的所有取值至少评价一次,同时每个判定语句本身的所有可能分支也至少评价一次
条件组合覆盖
使得每个判定的所有可能条件至少评价一次
路径覆盖
执行程序中所有可能的路径
2.逻辑覆盖之间存在的关系
条件组合覆盖 > 判定覆盖 > 语句覆盖
条件组合覆盖 > 条件覆盖
条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖
路径覆盖 > 判定覆盖 > 语句覆盖
3.分支结构的路径测试
嵌套型分支结构
若有n个判定语句,则存在n+1条不同的路径
串联型分支结构
若有n个判定语句,则存在2^n条不同路径,可以采用正交法
4.数据流测试
它是路径测试的一种,主要关注一条路径上变量在何时定义、何时使用,通过变量的定义和使用异常来检查程序错误。
5.变量异常的三种情况
变量被定义,但未使用
变量未定义,但被使用
变量在使用前被重复定义
6.执行定义结点会改变变量在存储单元中的内容
7.执行使用结点不会改变变量在存储单元中的内容
8.定义/使用路径与定义/清除路径描述了数据流,往往会存在潜在错误
9.输出语句不能作为定义结点,而作为使用结点
10.覆盖率的使用原则
覆盖率不是目的,而是一种手段
不可能针对所有的覆盖率指标去进行测试
不要追求绝对100%的覆盖率
语句覆盖
设计若干测试用例,运行被测程序,使得每个可执行语句至少执行一次
判定覆盖(分支覆盖)
使得每个判定的取值分支和取假分支至少评价一次
条件覆盖
使得每个判定的每个条件的可能取值至少评价一次
条件/判定覆盖
使得判定语句的每个条件的所有取值至少评价一次,同时每个判定语句本身的所有可能分支也至少评价一次
条件组合覆盖
使得每个判定的所有可能条件至少评价一次
路径覆盖
执行程序中所有可能的路径
2.逻辑覆盖之间存在的关系
条件组合覆盖 > 判定覆盖 > 语句覆盖
条件组合覆盖 > 条件覆盖
条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖
路径覆盖 > 判定覆盖 > 语句覆盖
3.分支结构的路径测试
嵌套型分支结构
若有n个判定语句,则存在n+1条不同的路径
串联型分支结构
若有n个判定语句,则存在2^n条不同路径,可以采用正交法
4.数据流测试
它是路径测试的一种,主要关注一条路径上变量在何时定义、何时使用,通过变量的定义和使用异常来检查程序错误。
5.变量异常的三种情况
变量被定义,但未使用
变量未定义,但被使用
变量在使用前被重复定义
6.执行定义结点会改变变量在存储单元中的内容
7.执行使用结点不会改变变量在存储单元中的内容
8.定义/使用路径与定义/清除路径描述了数据流,往往会存在潜在错误
9.输出语句不能作为定义结点,而作为使用结点
10.覆盖率的使用原则
覆盖率不是目的,而是一种手段
不可能针对所有的覆盖率指标去进行测试
不要追求绝对100%的覆盖率
相关文章推荐
- 经典DFS--找油田---POJ 1562
- Java文件拷贝
- DataInputStream和DataOutputStream操作基本数据类型的流
- MPI_Gathe MPI收集
- Android Canvas的save(),saveLayer()和restore()浅谈
- (剑指Offer)面试题39:判断平衡二叉树
- java之连续子数组的最大和
- Dev-Cpp/Mingw32 环境介绍
- hihocoder 1154 Spring Outing
- stm32中的C语言(7.24)
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- mcafee8.8 Patch1与mcafee8.7 Patch5右键扫描出现msi.dll等无效映像错误的解决方法
- 近期使用McAfee8.8时碰到的一些问题
- 常用数组方法
- android 用xml实现点击效果
- CS224d Problem set 1作业
- 动态代理
- 如何查看自己电脑上windows installer的版本?
- logstash 1.5.3 配置使用redis做续传
- 强大的ViewDragHelper和ViewDragHelper的妙用 一