做网站还是软件,室内设计效果图 客厅,门户网站建设方案公司,廊坊建设质量监督局网站白盒测试白盒测试之逻辑覆盖法逻辑覆盖用例设计方法1.语句覆盖2.判定覆盖(分支覆盖)3.条件覆盖4.判定条件覆盖5.条件组合覆盖6.路径覆盖白盒测试之基本路径测试法基本路径测试方法的步骤1.根据程序流程图画控制流图2.计算圈复杂度3.导出测试用例4.准备测试用例5.例题白盒测试总…
白盒测试白盒测试之逻辑覆盖法逻辑覆盖用例设计方法1.语句覆盖2.判定覆盖(分支覆盖)3.条件覆盖4.判定条件覆盖5.条件组合覆盖6.路径覆盖白盒测试之基本路径测试法基本路径测试方法的步骤1.根据程序流程图画控制流图2.计算圈复杂度3.导出测试用例4.准备测试用例5.例题白盒测试总结按照测试方法测试可以分为白盒测试和黑盒测试两种。
白盒测试也称结构测试或逻辑驱动测试是把测试对象看作一个透明白色的盒子测试人员依据程序内部逻辑结构相关信息设计或选择测试用例对程序所有逻辑路径进行测试。 所以白盒测试是一种基于代码的测试测试者必须检查程序的内部结构从检查程序的逻辑着手得出测试数据。 白盒测试一般是开发做单元测试用但是也有是测试自己做的那么对测试能力要求比较高。
白盒测试之逻辑覆盖法
逻辑覆盖用例设计方法
白盒测试的逻辑覆盖基本方法主要有以下6种接下来我们就来分析一下每种方法的原理以及他们之间的区别
语句覆盖分支覆盖条件覆盖判定条件覆盖路径覆盖组合覆盖
强度由低到高语句覆盖、分支覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
接来下的学习我们使用如下案例
if A and B then Action1;
if C or D then Action2;1.语句覆盖
语句覆盖顾明思意就是针对代码语句我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。
通常语句覆盖被认为是“最弱的覆盖”因为它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支比较难以发现代码中的问题。
案例
if A and B then Action1;
if C or D then Action2;语句覆盖需使得每个语句(本案例中有两个判断语句)都被执行一次即 A and B true, C or D true 上例中设计一条测试用例即可Atrue Btrue Ctrue
2.判定覆盖(分支覆盖)
判定覆盖(分支覆盖)︰使得程序中每个判断的取真和取假至少经历一次即判断的真假均被满足。
案例
if A and B then Action1;
if C or D then Action2;分支覆盖需使得程序中的每个判断(本案例中有两个判断)的取真和取假至少经历一次 A and B True , Flase C or D True , Flase 即 A and B True A true B true A and B Flase A true B flase C or D True : C true D flase C or D Flase : C flase D flase 上例中两条测试用例即可: testcase1: AtrueBtrue,C trueDfalse testcase2: AtrueBfalseC falseDfalse.
3.条件覆盖
条件覆盖:条件覆盖要求所设计的测试用例能使每个判定中的每一个条件都获得可能的取值即每个条件至少有一次真值和假值。(不考虑组合情况)
第一个判断应考虑到 AtrueAfalseBtrueBfalse 第二个判断应考虑到 C trueC falseDtrue,Dfalse,
所以上例中可以设计测试用例满足下列条件两条用例: testcase1 : AtrueBtrueC true Dtrue testcase2 : AfalseBfalse,C falseDfalse
4.判定条件覆盖
判定条件覆盖就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖)。同时每个判断本身所有的结果也要至少执行一次(判定覆盖)。 不难发现判定条件覆盖同时满足判定覆盖和条件覆盖弥补了两者各自的不足但是判定条件覆盖并未考虑条件的组合情况。 条件覆盖: AtrueAfalseBtrueBfalse Ctrue,C falseDtrueDfalse, 判断覆盖: A and B True, A and B False C or D True , C or D False 所以满足条件覆盖和判断覆盖。我们可以设计两条用例: TestCase1 : AtrueBtrueCtrueDtrue(条件都为TrueA and BTrue,C or D True) TestCase2: AfalseBfalseCfalseDfalse (条件都为FalseA and BFalseC or D False)
5.条件组合覆盖
组合覆盖也叫做条件组合覆盖意思是说我们设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。 每个判定中的各个条件的各种可能组合都至少出现一次,即 A - trueflase B - trueflase C - trueflase D - trueflase 针对这个案例做条件组合覆盖时我们可以设计如下用例:
TestCase1: ATrue,BTrueCTrue,DTrue TestCase2: ATrue,BFalse, CTrue,DFalse TestCase3: AFalse,BTrueCFalse,DTrue TestCase4: AFalse,BFalseCFalse,DFalse
条件组合覆盖能够同时满足判定、条件和判定条件覆盖覆盖度较高但是组合覆盖的测试用例数量相对来说也是比较多的。
6.路径覆盖
路径覆盖要求覆盖程序中所有可能的路径。意思是说我们设计的测试用例可以覆盖程序中所有可能的执行路径。可以对程序进行彻底的测试用例覆盖但是用例数量会增多很多。所以路径覆盖是最彻底的测试用例覆盖但实际上可操作性不强。
所以可以设计测试用例满足下列条件:
AtrueBtrueC trueDtrue,
AfalseBfalseC false。DfalseAtrueBtrueC falseDfalseAfalseBfalse,C true。DtrueAtrueBtrueC falseDfalse …
白盒测试之基本路径测试法
基本路径法基本路径法是在程序控制流图的基础上通过分析控制构造的环路复杂性导出基本可执行路径的集合从而设计测试用例的方法 。是白盒测试中运用最广泛的方法。
基本路径测试方法的步骤
第一步画出控制流图
第二步计算圈复杂度
第三步导出测试用例
第四步准备测试用例
1.根据程序流程图画控制流图 根据程序流程图画控制流图的步骤
开始结束不要先把每一 个节点画成圆圈将节点上的出入关系补全 2.计算圈复杂度
圈的复杂度流图中区域的数量对应于环型的复杂度有以下两种方式计算圈复杂度
给定流图G的圈复杂度V(G)定义为V(G) E - N 2E是流图中边的数量N是流图中结点的数量。给定流图G的圈复杂度V(G)定义为V(G) P 1P是流图G中判定结点的数量。
圈的复杂度就是设计测试用例的个数
3.导出测试用例
4.准备测试用例
5.例题 5.1 画控制流图 5.2 计算圈复杂度 5.3 导出测试用例
根据上面的计算方法可得出四个独立的路径。(一条独立路径是指和其他的独立路径相比至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)
路径14-14
路径24-6-7-14
路径34-6-8-10-13-4-14
路径44-6-8-11-13-4-14
根据上面的独立路径去设计输入数据使程序分别执行到上面四条路径。
5.4 准备测试用例
为了确保基本路径集中的每一条路径的执行根据判断结点给出的条件选择适当的数据以保证某一条路径可以被测试到满足上面例子基本路径集的测试用例是 白盒测试总结
以上简单描述了几种不用的白盒测试方法的原则和优劣。在实际的操作中要正确使用白盒测试的代码覆盖方法就要从代码分析和代码调研入手根据调研的结果可以选择上述方法中的某一种或者好几种方法的结合设计出高效的测试用例尽可能全面地覆盖到代码中的每一个逻辑路径只有适当的测试方法才能帮助我们从代码的角度对产品做到最好的测试。 白盒测试的优点:
迫使测试人员去仔细思考软件的实现。帮助软件测试人员增大代码的覆盖率提高代码的质量发现代码中隐藏的问题。
白盒测试的缺点:
昂贵系统庞大时测试开销会非常大; 测试人员要求比较高人才昂贵。测试基于代码只能测试开发人员做的对不对而不能知道设计是否正确可能会漏掉一些功能需求。
适当的测试方法才能帮助我们从代码的角度对产品做到最好的测试。 白盒测试的优点:
迫使测试人员去仔细思考软件的实现。帮助软件测试人员增大代码的覆盖率提高代码的质量发现代码中隐藏的问题。
白盒测试的缺点:
昂贵系统庞大时测试开销会非常大; 测试人员要求比较高人才昂贵。测试基于代码只能测试开发人员做的对不对而不能知道设计是否正确可能会漏掉一些功能需求。