覆盖率测试的几种方法

军用软件对覆盖率测试有明确的要求,比如语句覆盖率要达到100%,分支覆盖率要达到100%。那么这些覆盖率测试是怎么做的呢?

首先我们要明确的是,覆盖率测试运用的是白盒测试技术,具体的测试技术包括代码检查法,逻辑覆盖法,基本路径测试法,静态结构分析法等。

  1. 代码检查法

代码检查法是一种静态测试(不执行程序)方法,它通过专业工具或者人工的方式检查代码和设计的一致性,检查代码结构的合理性、逻辑的正确性以及代码的可读性等。

  1. 静态结构分析法

静态结构分析是使用图表来表示代码的内部结构,包括控制流图、函数调用关系图等,并通过对这些图表的分析来检查软件的数据流、控制流、接口等是否存在缺陷或错误。

  1. 逻辑覆盖法

逻辑覆盖法包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和条件组合覆盖5种测试方法。

  • 语句覆盖法的目标是让程序中每个语句至少执行一次,但它对程序的逻辑覆盖甚少。

  • 判定覆盖法也叫分支覆盖法,它的目标是覆盖每个判定的所有分支,但它对程序的逻辑覆盖仍然不高。

  • 条件覆盖法的目标是不仅每个语句至少执行一次,而且要使判定表达式中每个条件都取到可能的结果。

  • 判定/条件覆盖兼顾了判定覆盖和条件覆盖,它的目标是使得判定中每个条件的所有可能至少出现一次,每个判定的所有结果至少出现一次。

  • 条件组合覆盖目标是使得每个判定表达式中每个条件的各种可能组合都至少出现一次。

按照覆盖强度由低到高的顺序,这5种测试方法排列如下:语句覆盖->判定覆盖->条件覆盖->判定/条件覆盖->条件组合覆盖。

  1. 基本路径测试法

基本路径测试法首先计算程序的圈复杂度,用该复杂度定义执行路径的基本集合,再从该集合中导出测试用例来保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值。

我们的军用软件开发通常包括单元测试、集成测试、配置项测试和系统测试等测试级别。其中在单元测试和集成测试阶段主要应用白盒测试技术,在配置项测试和系统测试阶段,主要应用黑盒测试技术。

所以,军用软件要满足覆盖率测试要求,主要就是在单元测试阶段。

虽然理论上,使用语句逻辑覆盖和判定逻辑覆盖就能够满足语句和分支覆盖率的要求。但在实际上覆盖率100%是很难达到的。我们要追求较高的测试覆盖率,通常是要把以上几种白盒测试技术混合使用,设计更多的测试用例。

最后,覆盖率可以通过专业的测试工具获得,也可以通过打桩或更改应用入口的手工方式来获得。

这正是:

覆盖指标想达成,单一技术不太行

混合使用多技术,相互补充有望行

参考书目:现代软件测试技术与管理研究,作者:赵仕波 魏生斌 罗耀华,出版社:中国水利水电出版社

(0)

相关推荐

  • 白盒测试

    定义: 白盒测试又称结构测试,透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,白盒指的是程序的内部结构和运作机制是可见的. 白盒测试的目的: 通过检查软件内部的逻辑结构,对软 ...

  • 为什么测试覆盖率如此重要(转)

    本文出处:http://www.51testing.com/html/60/n-4474360.html 由于软件中普遍存在的错误,全世界都见证了一些灾难性事件.2008年在英国希思罗机场5号航站楼开 ...

  • 一步一步,写出优雅的程序(二)——驼峰命名法和代码自测

    文/Edward 我们在上一篇文章"一步一步,写出优雅的程序(一)"里面介绍了新手入门如何编写出一个可以满足功能的程序,但是,这这个程序中还有很多不尽人意的地方.这些不尽人意的地方 ...

  • 关于智能网联汽车示范应用可行性测试评价的一些思考和一种方法

    得益于过往10年的质量管理和近3年自动驾驶行业工作经历,本文初始于2018年完成初稿,但考虑到智能网联汽车技术发展所处的阶段,并不合适. 2021年1月,工业和信息化部会同公安部.交通运输部组织行业机 ...

  • 电路板的板子测试有哪两种方法

    电路板制作完成之后,就需要用一些测试工具来对电路板进行检查,以确保生产出来的电路板是符合要求的合格电路板.通常电路板的板子测试有以下两种方法: 第一种:飞针测试: 飞针测试仪是针对元件布置高密度.层数 ...

  • 社保没交满15年的有救了!新规下,这5种方法一定要知道!

    在社保中,大家除了关注医保外,对养老金的关注度也很高,毕竟养老金是很多退休老人的主要生活来源. 我们都知道,只有当退休时缴纳了至少15年社保,才能拿到养老金.根据不同地区的不同规定,需要缴纳15年.2 ...

  • 健康早知道|老花眼年轻化 这几种方法让你彻底摘掉老花镜

    健康早知道|老花眼年轻化 这几种方法让你彻底摘掉老花镜

  • 书法这样写,越写越有味!(10种方法分享)

    在美学角度而言,书法是一种视觉造形艺术,讲究变化与造势.下面,我们总结书法10种变化,悟懂和实践这些变化,越写越清爽.越有味! 大 小 变 化 三个同样大小的字,笔划的粗细与多少差不多的,若相连在一起 ...

  • 危机时期管理业务的7种方法

    对于我们所有人来说,疫情是不确定的时期,现金流量很少的小型企业主尤其感到紧缩.为了帮助你确定如何在诸如冠状病毒等危机时期管理业务,我们与世界领先的管理专家进行沟通,以下是一些要点,Azides博士为你 ...

  • 不确定时期保持稳定招聘的5种方法

    在疫情这些不稳定的时期, 你如何才能维持稳定的招聘流程,并继续为候选人提供与目标和价值观一致的优质体验? 通过数字化,诚实的沟通,发展员工以及大量急需的同理心,这仍然是可能实现的,在不确定时期保持稳定 ...

  • 提高员工敬业度的11种方法

    组织必须对自己的业务计划以及在疫情爆发期间的工作方式进行大量调整.他们比以往任何时候都更加需要敬业的员工来度过这个充满挑战的时期,他们需要为马拉松而不是短跑做准备,这种全球性流行病不可能在一夜之间消失 ...

  • 降低员工流失率的21种方法

    尽管进行了数百年的创新,但对于当今的组织而言,不必要的员工流动仍然是一个大问题,我们写出21种简单的方法来帮助你降低员工流失率. 01 不要让员工无聊 即使你的员工疯狂地爱上了他们的工作,但在职业生涯 ...