软件测试中白盒测试的六大覆盖


  写在前面:软件测试快要考试了,于是进行了复习,之前学的都忘了,然后看视频发现特别蒙,然后就寻找了点博客,有的过于专业化,不易理解,看了很多博客之后打算写一个比较通俗易懂的博文进行记录和共勉。先系统介绍下六种覆盖方法吧(也就是视频上的)

  覆盖率从低到高

  1.语句覆盖法:语句覆盖法要求设计足够多的测试用例,使得程序中每条语句至少被执行一次,是最基本的覆盖要求

  2.分支覆盖法:又称判定覆盖法,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即程序中的每个分支至少执行一次,每个判断的取真、取假至少执行一次。

  3.条件覆盖法:要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。

  4.分支条件覆盖法:又称判定条件覆盖法,要设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

  5.条件组合覆盖法:要求设计足够多的测试用例,使得判定中的每个条件结果的所有可能结果至少出现一次,这样也会使得每个判定本身的所有可能结果至少出现一次。

  6.路径覆盖法:要求设计足够多的测试用例,覆盖程序中所有可能的执行路径。

  我看完这些介绍似懂非懂,等到了做题的时候明白视频上的答案是对的,但是不明白为什么我的就是不对,或者为什么不写我想的那个,这就需要了解每个覆盖方法的本质。如图:

 

 

 

 

 

 

 

 解释:条件C||条件D的结果为判断H,同理条件A&&条件B的结果为判断G,方框中为语句E和语句F,

  1.语句覆盖法:顾名思义,就是每个语句至少都要被执行一次,则路径为START->I->K->L->END,因为只涉及到判断的T和F所以不必去考虑条件ABCD的真或假,只要G为F,H为T即可。

 

 

 

   2.判定覆盖:顾名思义是关于判定(判断的覆盖),也只涉及G,H的真假,不涉及A,B,C,D的真假

 

 上图中本应有两个测试用例,12或者34即可,这也就是我为什么会觉得我写的为什么不是对的,因为理论上,12和34都满足G,H都分别有一次真假,只不过组合的方式不同,也就出现了结果的不同

 

已提供覆盖路径,图就不在赘述了。

   3.条件覆盖:就是对条件而言,而不去考虑判定或者判断的结果

原本也应该只有两个测试用例,因为每个条件只有T和F两个结果,但是由于条件有4个,所以会有很多的组合结果,也就出现了答案不唯一的情况,这里值做出了四个测试用例,12一组,34一组,

 

每个条件都分别由TF

  4.分支条件覆盖法:也就是共同考虑条件和判断的真假

 

 原本也应该只有两个测试用例,12一组,34一组,原因同上,但是因为组合方式不一样,结果就不一样了,同时做这个题的时候因为是判断和条件一起考虑,建议先去写判断的TF,即每个判断下面都要分别要有TF,然后再根据G或者H的真假去给条件A,B,C,D的值,同时也要注意每个条件下面结果不能相同即两个T或者两个F,必须是一个T一个F

 

 下图就是错的

 

 因为一个条件下面出现了相同的结果。

  5.条件组合覆盖法:也就是说通过条件的排列组合来进行覆盖,不涉及判断即GH的真假

 

 这是条件不在要求一个真假了,要进行组合,图比较简单的话,路径会有很多重复的。

   6.路径覆盖:即将每个路径都进行覆盖,只考虑路径,然后再根据路径找GH真假,在通过GH找ABCD的真假

 

 

 

注:上面所有图的不填都是在做题的时候不考虑,而不是选项里面没有值!都需要去计算出带有具体值的测试案例

 

注:这是我自己的感想和技巧,如果哪里有问题希望大佬们可以指出来,如果您觉得写的还不错,比较有用,可以点一下推荐,谢谢啦


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM