当前位置:首页 > 白盒测试
些情况下的某些条件将会被其他条件所掩盖,因此判定——条件覆盖也不一定能够完全查出逻辑表达式中的错误。未考虑条件组合。 5.条件组合覆盖
基本思想:设计足够的测试用例,使得所有可能的条件取值组合至少执行一次
优点:条件组合覆盖准则满足判定覆盖、条件覆盖和判定——条件覆盖
缺点:线性的增加了测试用例数量 6.路径覆盖
基本思想:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。
优点:可以对程序进行彻底的测试,比前几种测试面广
缺点:需要设计大量、复杂的测试用例,使得工作量呈指数级增长,而且不见得把所有的条件组合都覆盖。
基本路径测试,在程序控制流程的基础上,分析控制构造的环路复杂性,到处基本可执行路径集合,从而设计测试用例
逻辑覆盖总结
根据覆盖目标的不同可分为以上6种覆盖方法
语句覆盖:选择足够多的测试用例,使得程序中的每个可执行语句至少一次。
判定覆盖:通过执行足够的测试用例,使得程序中的每个判定可能取值(真/假)都至少满足一次,也称为“分支覆盖”。
条件覆盖:设计足够多的用例,使得程序中每个判定包含的每个条件都肯呢个取值(真/假)都至少满足一次。
判定/条件覆盖:设计足够多的用例,使程序中每个判定包含的每个条件的所有情况至少出现一次,并且每个判定本身的判定结果(真/假)也都至少满足一次。
组合覆盖:使得程序中每个判定的所有可能的条件取值组合都至少出现一次。
路径覆盖:要求覆盖程序中所有可能的路径。 组合覆盖(强)
判断——条件覆盖 判断覆盖 条件覆盖 语句覆盖(最弱)
发现错误能力 标准 含义
1 弱 语句 每条语句至少执行一次
2 判定 每一判定的每个分支至少执行一次
3 条件 每一判定中的每个条件,分别按T、F 至少
个执行一次
4 判定——条件 同时满足判定覆盖和条件覆盖的要求 5强 条件组合 求出判定中所有条件的各种可能组合值,每一
可能的条件组合至少执行一次
逻辑覆盖法实力演练 Void do work(int x,int y, int z) {
Int k=0,J=0; If ((x>3)&&*(z>10)) { k=x*y-1; J=sqrt(k); }
If((x==4)||(y>5)) {J=x*y+10; } J=J%3 }
语句覆盖 5.7.8 判定覆盖 5.7.8 2.4.9
基本路径测试方法
测量覆盖准则
逻辑覆盖的出发点是合理的完善的,所谓覆盖就是想要做到全面而无遗漏,但逻辑覆盖并不能真的覆盖所有
路径测试:为了满足路径覆盖,必须首先确定具体的路径以及路径个数,通常采用控制流图
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路1.程序的控制流图:圆圈成为控制流图的一个节点,箭头称为边或连复杂性,导出基本可执行路径计和从而设计用例,步骤如下:
接,代表控制流,其中包含条件的节点被称为判定节点也较谓词节点,由判定节点发出的边必须终止于某一节点。由边和节点圈定的范围叫作区域,当对区域计数时,图形外的区域也应计作一个区域。
2.程序圈复杂度:从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目上界
计算圈复杂度
流图中区域的数量对应于环形的复杂度
给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图节点的数量
给定流图G的圈复杂度V(G),定义V(G)=P+1,P是流图G的判定点
程序的控制流图:描述程序控制流的一种图示方法;圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句。
导出独立路径 3.导出测试用例 4.准备测试用例
流图只有两种图形符号,一个圆圈称为结点,代表一条或多条语句 流图中的箭头称为边或链接,代表控制流
其中,包含条件的结点被称为判定结点,由判定结点发出的边必 须终由边和结点所限定的范围被称为区域
止于某一个结点。
共分享92篇相关文档