覆盖率
它是度量测试完整性的一个工具,通常可以分为逻辑覆盖和功能覆盖。覆盖率 =(被执行到的项数/总项数)* 100%
逻辑覆盖
逻辑覆盖是以程序内部的逻辑结构为基础设计测试用例的技术,属于白盒测试。
被测试模块的流程图
语句覆盖
设计若干测试用例,运行被测程序,使每个可执行语句至少执行一次。
语句覆盖率 = 被评价到的语句数量 / 可执行的语句数量 * 100%
为了使每个语句都执行一次,程序的执行路径应该是sacbed,因此需要输入测试数据:A=2,B=0,X=4
判定覆盖
又称为分支覆盖。设计若该测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少评价一次。
判定覆盖率 = 被评价到的判定分支个数 / 判定分支总数 * 100%
上例中,能够分别覆盖sacbed和sabd的两组测试数据,或者可以分别覆盖sacbd和sabed的两组测试数据,都满足判定覆盖标准。【1】A=3,B=0,C=3(覆盖sacbd)【2】A=2,B=1 ,X=1(覆盖sabed)
条件覆盖
设计若干测试用例,运行被测程序,使得每个判定的每个条件的可能取值至少评价一次。
条件覆盖率 = 被评价到的条件取值的数量 / 条件去追的总数 * 100%
上例中,a点的各种结果为A>1, A<=1, B=0, B !=0。b点的各种结果为:A=2, A !=2,X>1,X<=1。
测试数据为【1】A=2,B=0,X=4 【2】A=1,B=1,X=1
条件/判定覆盖
设计足够的测试用例,使得判定语句的每个条件的所有可能取值至少评价一次,同时每个判定语句本身的所有可能分支也至少评价一次。
条件/判定覆盖率 = 被评价到的条件取值和判定分支的数量 / (条件取值总数 + 判定分支总数)* 100%
测试数据为【1】A=2,B=0,X=4 【2】A=1,B=1,X=1
条件组合覆盖
设计足够的测试用例,使得每个判定的所有可能条件取值至少评价一次。
条件组合覆盖率 = 被评价到的条件取值组合数量 / 条件取值组合的总数 * 100%
上例中有8种可能的条件组合(1)A>1,B=0(2)A>1,B !=0(3)A<=1,B=0(4)A<=1,B !=0(5)A=2,X>1(6)A=2,X<=1(7)A !=2,X>1(8)A !=2,X<=1
测试用例【1】A=2,B=0,X=4 (针对1,5两种组合)【2】A=2,B=1,X=1(针对2,6两种组合)【3】A=1,B=0,X=2(针对3,7两种组合)【4】A=1,B=1,X=1(针对4,8两种组合)
路径覆盖
设计足够的测试用例,执行程序中所有可能的路径。
路径覆盖率 = 被执行到的路径数量 / 程序中的路径总数 * 100%
ESTCA覆盖
错误敏感测试用例分析规则:
规则1:对于A rel B(rel可以是<、=、>)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A<B、A=B、A>B的情况分别出现一次。
规则2:对于A rel C(relrel可以是<或>,A是变量,C是常量)型的分支谓词,当rel为<是,应适当地选择A的值,使得A=C-M(M是距C最小的容许正数,若A和C均为整型时,M=1)。同样,当rel为>时,应适当地选择A的值,使得A=C+M。
规则3:对外部输入变量赋值,使其在每一测试用例中均有不同的值与符号,并与同一组则是用例中其他变量的值与符号不一致。
LCSAJ覆盖
路径测试
分支结构的路径测试
循环结构的路径测试
简单循环:使用下列测试集来测试简单循环,其中n是允许通过循环的最大次数。
嵌套循环:
串接循环:
如果各个循环相互独立,则同简单循环;若几个循环不是相互独立的,则使用嵌套循环测试方法。
基本路径测试
程序的控制流图:描述程序控制留的一种图示方法,其中控制流图中的箭头称为边,表示控制流的方向,一条边必须终止于一个节点,边与节点圈定的空间称为区域。
程序的环路复杂性:是对程序逻辑结构所做的一种定量量度,求法如下:
基本路径测试方法设计测试用例
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193218.html原文链接:https://javaforall.cn