美文网首页
软件测试白盒覆盖率

软件测试白盒覆盖率

作者: LinminWang | 来源:发表于2019-06-27 17:18 被阅读0次

白盒覆盖率中使用的最常见的就是逻辑覆盖率(Logical Coverage ),也叫代码覆盖率(Code

Coverage)或者结构化覆盖率(Structural

Coverage),我们常见的逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

1、语句覆盖(Statement Coverage)

  1)定义:在测试时,运行被测程序后,程序中被执行的可执行语句的比率。

  2)计算公式:语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)

  3)100%语句覆盖率含义:在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。

  4)特点:语句覆盖可以检验每个可执行语句,但是即使语句覆盖率达到了100%,也会有缺陷发现不了,所以覆盖率只是我们度量的手段。

2、判定覆盖(Decision Coverage)/分支覆盖率(Branch Coverage)

  1)定义:在测试时,运行被测程序后,程序中所有判断语句的取真分支和取假分支被执行到的比率。

  2)计算公式:判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)

  3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,然后运行测试程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。

  4)特点

  (1)若判定覆盖达到100%,则语句覆盖必为100%。

  (2)即使判定覆盖率达到了100%,也会有缺陷发现不了。

3、条件覆盖(Condition Coverage)

  1)定义:在测试时,运行被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)出现过的比率。

  2)计算公式:条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)

  3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,然后运行被测试程序,要使每个判断中每个条件的可能取值至少满足一次。

  4)特点:覆盖条件的测试用例不一定覆盖判定。

4、判定-条件覆盖(Decision Condition Coverage)/分支条件覆盖(Branch Condition Coverage)

  1)定义:在测试时,运行被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)和每个判断本身的判定结果(为真为假)出现的比率。

  2)计算公式:判定-条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值的总数+判定结果的总数)

  3)100%判定-条件覆盖率含义:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能结果至少执行一次。换言之,即是要求各个判断的所有的可能的取值组合至少执行一次。

  4)特点

  (1)判定-条件覆盖率实际上就是判定覆盖率和条件覆盖率的组合。

  (2)采用判定-条件覆盖,逻辑表达式中的错误不一定能够查得出来。

5、条件组合覆盖(Condition combination coverage)

  1)定义:在测试时,运行被测程序后,所有语句中原子条件所有的可能的取值结果组合出现过的比率。

  2)计算公式:条件组合覆盖率=(至少被执行一次的条件组合)/(总的可能的条件组合数)

  3)100%条件组合覆盖率含义:设计足够的测试用例,使得判断中条件的各种可能组合至少出现过一次。

  4)特点:若条件组合覆盖率为100%,则语句覆盖率、判定覆盖率、条件覆盖率和判定-条件覆盖率必为100%。

6、路径覆盖(Path Coverage)

  1)定义:在测试时,运行被测程序后,程序中所有可能的路径被执行的比率。

  2)计算公式:路径覆盖率=(至少被执行一次的路径数)/(总的路径数)

  3)100%路径覆盖率含义:设计足够的测试用例,要求覆盖程序中所有可能的路径。

  4)特点

  (1)路径覆盖比判定条件覆盖更强,但是不能包含判定条件覆盖。

  (2)若路径覆盖率为100%,则语句覆盖率、判定覆盖率必为100%。

  小结:逻辑覆盖率可以作为软件测试的一个度量,但是,即使达到了100%的逻辑覆盖率,仍然无法保证程序的正确性。

如有疑问,请留言告知,或者咨询柠檬班软件测试培训机构:www.lemonban.com官网客服哦

相关文章

  • 基于SkyEye的覆盖率测试

    01.覆盖率测试概念 覆盖率测试是一种白盒测试手段,通常会在软件测试的早期阶段进行,也就是单元测试过程中。覆盖率测...

  • 使用JaCoCo统计java代码覆盖率

    代码覆盖率 在白盒测试中,主要使用代码覆盖率来评判白盒测试完成的程度。代码覆盖率是指:在测试中,所执行的源代码占全...

  • 03_测试覆盖率

    测试覆盖率 学习目标 掌握各种测试覆盖率的含义 能计算各种测试覆盖率 理解覆盖率在白盒测试中所起的作用 覆盖率概念...

  • 软件测试白盒覆盖率

    白盒覆盖率中使用的最常见的就是逻辑覆盖率(Logical Coverage ),也叫代码覆盖率(Code Cove...

  • 测试分类

    软件测试分类 一、测试方法 1、白盒测试 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试...

  • 03软件测试方法[中]

    软件测试基础知识03—软件测试方法[中] 白盒测试、黑盒测试、灰盒测试(测试技术和设计测试用例方法的角度划分) 白...

  • 面试问题2

    1、软件测试方法有哪些分类? 软件测试方法分类:白盒、黑盒、灰盒;单元测试、集成测试、系统测试、验收测试、回归测试...

  • 测试day3

    动态测试技术之白盒测试:白盒测试利用程序设计的内部逻辑和控制结构生成测试用例,进行软件测试。白盒测试的方法主要是静...

  • 【软件测试】软件测试分哪3种方法?分别适合什么情况?

    软件测试分3种:白盒测试/黑盒测试/灰盒测试。白盒测试:又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于...

  • 软件测试读书笔记(佟伟光著)3

    软件测试基本技术 白盒测试 白盒测试可分为静态和动态测试,动态测试技术主要包括程序插桩、逻辑覆盖、基本路径测试等。...

网友评论

      本文标题:软件测试白盒覆盖率

      本文链接:https://www.haomeiwen.com/subject/zfarcctx.html