用逻辑覆盖测试方法测试以下程序段

用逻辑覆盖测试方法测试以下程序段,第1张

void DoWork (int x,int y,int z){1 int k=0, j=02 if ( (x>3)&&(z<10) )3 {4 k=x*y-15 j=sqrt(k)6 }7 if((x==4)||(y>5))8 j=x*y+109 j=j%310 }说明:程序段中每行开头的数字(1~10)是对每条语句的编号。(1)画出程序的控制流图(用题中给出的语句编号表示)。(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。题目二、折半查找请按要求慎昌对下面键敬的java 代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key 的元素。public int binSearch ( int array[], int key ) {int mid, low, highlow = 0high = array.length-1while ( low <= high ) {mid = (low +high)/2if ( key = = array [mid] )return midelse if ( key <array [mid] )high = mid -1elselow = mid + 1}return -1}(1) 试计算此程序段的McCabe 复杂性;(2) 用基本稿孝慎路径覆盖法给出测试路径;(3) 为各测试路径设计测试用例。

测试是无法全尽的,无法遍历的。

但是我们可以通过一定的测试方法,设计测试用例,用较少的测试用例覆盖最大的范围,发现念携最多的bug。

黑盒测试(等价类划分法,边界值分析法)和白盒测试 (语句覆盖,判定覆盖,条件覆盖 ,基本路径覆盖,等等)都是从不同的角度来思考如何用较少的测试用例覆盖最大的范围。

在实际测试当中,通常为了提高覆盖,我们需要组合使用这些测试方法,并不一定只采用一个。

边界值分析法:

如果输入了条件规定了值的范围,则应取刚达到这个范围的边界值,以及刚刚超越这个边界范围的值作为测试输入数据;

 如果输入条件规定了值的个数,则用最大个数、最小个数、比最大多1、比最小小1的数作为测试输入数据;

 根据规格说明的每个输出条件,使用前面的原则;

 如果程序的规格说明给出的输入输出域是有序集合,则应选取集合的每一个元素和最后一个元素作为测试用列;

 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试案例;

 分析规格说明,找出其他可能的边界条件。

边界条件是桥高让指软件计划的 *** 作界限所在的边缘条件。

等价类划分法:

 如果输入条件决定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。

 如果输入条件规定了输入值的集合,或者规定了“必须如何”的条件,此时可确立一个有效等价类和一个无效等价类;

 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类;

 如果规定了输入数据的一组值,而且程序对每个输入值分别进行处理,此时可为每一个输入值确立一个有效等价类,此外,针对这组值确立一个无效等价类,它是所有不允许输入值的集合;

 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同的角度违反规则)。

 如果确知,已划分的等价类中各元素在程序中的处理方式不同,则应敏局将此等价类进一步划分成更小的等价类。

基本路径覆盖:在程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径的集合,然后据此设计测试用例。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。

条件判定组合覆盖:设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12497451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存