白盒测试:覆盖方式
来源:互联网 发布:花店管理系统数据库 编辑:程序博客网 时间:2024/05/17 08:36
注:整理自http://blog.csdn.net/ffeiffei/article/details/6579280
语句覆盖(statement coverage):语句覆盖是指程序的每一行代码是否都被覆盖到;语句覆盖是最常用的一种代码覆盖率指标,也非常简单。但是对一些控制结构的代码而言,它不能真正表示是否完全覆盖到。
决策覆盖(decision coverage):又叫分支覆盖,决策覆盖是指在控制结构的代码块,如if, while中的整个bool表达式是否在false和true条件下,各被执行一次。决策覆盖不考虑组成该条件表达式的各个子条件是否被完全覆盖到。于是,通常对于c/c++/java语言,由于short circuit operators,对于一个由多个条件以与关系组成的一个条件表达式,当出现第一个条件被检测为false时,其后所有的条件都不会被执行了。
条件覆盖(condition coverage):条件覆盖是指每个条件都必须有true和false的情况,这里一个条件是一个逻辑操作符的操作数,但是不含该逻辑操作符。注意和决策覆盖的区别,如
bool f(bool e){ return false; }bool a[2]={false, false};if(f(a&&b)) ...if(a[int(a&&b)]) ...if((a&&b)?false:false) ...该代码块的3个if条件中,一共包含2个条件a,b;共四种情况a=true, a=false, b=true, b=false;我们只需取a,b分别为true和false的组合(a=true, b=false和a=false, b=true)即可使条件覆盖为100%;而实际上,无论a,b取什么值,3个if语句的分支始终都返回false。而分支覆盖只看每个if语句的整体是否是true忽然false。
多重条件覆盖(multiple condition coverage):多重条件覆盖是指各个条件的每个可能的组合是否被检查到。多重条件覆盖中的各个条件组合是一种排列关系,而不是组合。通常多重条件覆盖的测试案例设计都非常复杂,因为在考虑到各个条件之间的排列关系时,其数量本身就多,而且还要考虑关系之间的相互影响,剔除无效的排列。
条件/决策覆盖(condition/decision coverage):条件决策覆盖是条件覆盖和决策覆盖的联合运算,它具有比多重条件覆盖简单的优势,同时又没有条件覆盖和决策覆盖的缺点。
改进的条件/决策覆盖(modified condition/decision coverage):其定义是程序中的每个入口和出口都至少被调用一次,一个决策的每个条件都至少有一次所有可能的输出,程序中的每个决策都至少有一次所有可能的输出,一个决策中的每个条件都能独立的影响该决策的输出(该条件改变,而其他条件保持不变)。
路径覆盖(path coverage):路径决策指示函数中的每个可能的路径是否被执行到。一条路径是一个唯一的从函数入口到出口的分支序列。路径覆盖通常能比较彻底的进行测试,但是它也有两个非常严重的缺陷:其一,路径的数量是分支数量的几何级数。例如,一个具有10个if语句的函数,需要1024个路径测试;而我们再加一条if语句,则有2048个路径需要测试。
- 白盒测试:覆盖方式
- 白盒测试的几种覆盖方式
- 【白盒测试】——五覆盖方式
- 白盒测试的六种覆盖方式
- 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖
- 白盒测试实例--逻辑覆盖测试(覆盖程度)
- 白盒测试实例--逻辑覆盖测试
- 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- 白盒测试逻辑覆盖法
- 白盒测试方法--逻辑覆盖法
- 白盒测试方法(覆盖逻辑)
- 白盒测试中的逻辑覆盖
- 白盒测试之语句覆盖
- 白盒测试之语句覆盖
- Google发布机器学习平台Tensorflow游乐场~带你玩神经网络
- C++ 虚函数、纯虚函数、抽象类、接口、虚基类
- 纹理 贴图 材质
- [leetcode] 112. Path Sum
- jsp 自定义标签
- 白盒测试:覆盖方式
- 处理java错误”编码 GBK 的不可映射字符“
- MySQL配置了环境变量还是提示mysql不是内部指令
- 判断鼠标或者手指是否点击在UI上(用于应对不能点击UI的情况)
- 关于项目部署乱码的原因及解决办法
- 我的mac pro常用的应用
- Java自动内存管理机制(二) 运行时数据区
- android中获取view的位置
- TCP/IP四层模型