(7)多条件覆盖
● 也称条件组合覆盖,设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)
● 满足条件覆盖一定满足判定覆盖、条件覆盖、条件判定组合覆盖
● 缺点:判定语句较多时,条件组合值比较多
(8)修正条件判定覆盖
● 每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次
● 程序的判定被分解为通过逻辑操作符(and,or)连接的bool条件,每个条件对于判定的结果值是独立的
练习1:采用多条件覆盖方法,对下程序进行白盒测试用例设计
if ((a >1 )&&( b= = 0)) { x=x/a; } if (( a = = 2)|| (x > 1 )) { x=x+1; } |
3. 基本路径覆盖
(1) 概述
● 在程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径的集合,然后据此设计测试用例
● 设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次
(2)程序控制流图
● 控制流图是描述程序控制流的一种方式
● 图形符号:圆圈代表一个结点 表示一个或多个无分支的语句或源程序语句
● 边和点圈定的部分叫做区域。当对区域计数时,图形外的一个部分也应记为一个区域
● 判断语句中的条件为复合条件时,即条件表达式由一个或多个逻辑运算符连接的逻辑表达式(a and b),则需要改变复合条件的判断为一系列只有单个条件的嵌套的判断
图形符号图所示
(3)程序环路复杂性
● 程序的环路复杂性即McCabe复杂性度量,简单的定义为控制流图的区域数
● 从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界