「转载」论述白盒测试的覆盖方法

之前说了黑盒测试,今天聊聊白盒测试

白盒测试用例设计的一个很重要的评估标准就是对代码的覆盖度。一说到覆盖,相信大家都感觉非常熟悉,但是常见的覆盖都有哪些?各自有什么优缺点?在白盒测试的用例设计中我们应该如何自如地运用呢?

简单说说,白盒测试的覆盖方法:语句覆盖、判定覆盖、条件覆盖、组合覆盖和路径覆盖。

语句覆盖,就是针对代码语句。设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”,因为它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,因此在实际运用中语句覆盖很难发现代码中的问题。

判定覆盖,就是说设计的测试用例要保证让被测试程序中的每一个分支都至少执行一次。判定覆盖比语句覆盖强一些,能发现一些语句覆盖无法发现的问题。但是往往一些判定条件都是由多个逻辑条件组合而成的,进行分支判断时相当于对整个组合的最终结果进行判断,这样就会忽略每个条件的取值情况,导致遗漏部分测试路径。

条件覆盖,就是要求所设计的测试用例能使每个判定中的每一个条件都获得可能的取值,即每个条件至少有一次真值、有一次假值。通常而言条件覆盖比判定覆盖强,因为条件覆盖使得判定中的每一个条件都取到了不同的结果,这一点判定覆盖则无法保证。但条件覆盖也有缺陷,因为它只能保证每个条件都取到了不同结果,但没有考虑到判定结果,因此有时候条件覆盖并不能保证判定覆盖。

组合覆盖,就是说设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。

路径覆盖,意思是说我们设计的测试用例可以覆盖程序中所有可能的执行路径。这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。

总结

以上简单描述了几种不用的逻辑覆盖方法的原则和优劣。在实际的操作中,要正确使用白盒测试的代码覆盖方法,就要从代码分析和代码调研入手,根据调研的结果,可以选择上述方法中的某一种,或者好几种方法的结合,设计出高效的测试用例,能尽可能的全面地覆盖到代码中的每一个逻辑路径。这样白盒测试在结合自动化测试,能更好的进行测试。

TestBird- 手游和App自动化测试平台

之前说了黑盒测试,今天聊聊白盒测试

白盒测试用例设计的一个很重要的评估标准就是对代码的覆盖度。一说到覆盖,相信大家都感觉非常熟悉,但是常见的覆盖都有哪些?各自有什么优缺点?在白盒测试的用例设计中我们应该如何自如地运用呢?

简单说说,白盒测试的覆盖方法:语句覆盖、判定覆盖、条件覆盖、组合覆盖和路径覆盖。

语句覆盖,就是针对代码语句。设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”,因为它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,因此在实际运用中语句覆盖很难发现代码中的问题。

判定覆盖,就是说设计的测试用例要保证让被测试程序中的每一个分支都至少执行一次。判定覆盖比语句覆盖强一些,能发现一些语句覆盖无法发现的问题。但是往往一些判定条件都是由多个逻辑条件组合而成的,进行分支判断时相当于对整个组合的最终结果进行判断,这样就会忽略每个条件的取值情况,导致遗漏部分测试路径。

条件覆盖,就是要求所设计的测试用例能使每个判定中的每一个条件都获得可能的取值,即每个条件至少有一次真值、有一次假值。通常而言条件覆盖比判定覆盖强,因为条件覆盖使得判定中的每一个条件都取到了不同的结果,这一点判定覆盖则无法保证。但条件覆盖也有缺陷,因为它只能保证每个条件都取到了不同结果,但没有考虑到判定结果,因此有时候条件覆盖并不能保证判定覆盖。

组合覆盖,就是说设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。

路径覆盖,意思是说我们设计的测试用例可以覆盖程序中所有可能的执行路径。这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。

总结

以上简单描述了几种不用的逻辑覆盖方法的原则和优劣。在实际的操作中,要正确使用白盒测试的代码覆盖方法,就要从代码分析和代码调研入手,根据调研的结果,可以选择上述方法中的某一种,或者好几种方法的结合,设计出高效的测试用例,能尽可能的全面地覆盖到代码中的每一个逻辑路径。这样白盒测试在结合自动化测试,能更好的进行测试。

TestBird- 手游和App自动化测试平台


相关内容

  • 软件工程题库考试
  • 语句覆盖,又称行覆盖,段覆盖,基本块覆盖,这是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了.语句覆盖常常被人指责为"最弱的覆盖",它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等.假如只要求达到语句覆盖,那么换来的确实测试效果不明显,很难更 ...

  • [转载]回归测试中的项目质量管理应用
  • 1)回归测试介绍 在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能对该软件带来问题.软件的改变可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块.在增量型软件开发过程中,通常将软件分成阶段进行开发,在一个阶段的软件开发结束后将被测软件交给测试组进行测试,而下一个阶 ...

  • 混凝土早期受冻临界强度
  • 混凝土早期受冻临界强度浅谈 2008-12-02 19:52 [提 要]通过对混凝土早期受冻临界的论述,指出了早期受冻临界强度是保证冬期施工中混凝土工程质量的重要前提. [关键词]早期受冻临界强度 冬期施工 外加剂 1 前 言 混凝土工程的冬期施工和常温施工不同,由于自然气温已降低到0℃以下,从整个 ...

  • 手机通讯原理
  • 各国特警格斗 智能办案 警Q 线索网 民警E站 一.手机的通讯原理 任何通讯器材在通讯时,都需要一个频道,手机也不例外,手机和对讲机的区别在于,手机需要两个通道,即上行通道和下行通道,分别负责把你的声音传给对方和把对方的声音传送给你.这种通讯的通道,我们称之为信道. 手机通话时,首先手机把信号传送到 ...

  • 51Testing软件测试网:面向对象软件的测试
  • 当前位置:首页>>软件测试技术>>功能测试>>正文 面向对象软件的测试 文章出处:不详 作者:周梦醒 发布时间:2005-10-30 一 摘要(Abstract) [摘要] 面向对象技术在软件工程中的推广使用,使得传统的测试技术和方法受到了极大的冲击.对面向对象技 ...

  • 自己为什么选择这个课题
  • 自己为什么选择这个课题?(选题的缘由) 主要有两种写法: 一.是由于看到与你论文中观点一致或相反的资料.事例引发的思考.这种要求你把事例或是资料解析一下,并着重强调自己的思考.最后要求阐述一下你思考后的结论和你为了证明自己观点所做的研究.二.是由于你所研究的内容具有明确的理论价值和实践意义.要从观点 ...

  • 初中英语阅读理解答题技巧分析
  • 2013-02-24 15:41:40|  分类: 英语学习 |字号 订阅 本文转载自Victor英语教育学习<初中英语阅读理解答题技巧分析> 初中英语阅读理解答题技巧分析 江西赣州大余县青龙中学  钟 艳 阅读理解试题主要用来测试学生的阅读速度.理解能力和记忆能力.有的采用一个句子,有 ...

  • 华为财经类职位_最全笔试题
  • 华为财经类职位 最全笔试题 会计类 一道综合题(20分):现金流量表的定义.作用以及三个组成部分的内容: 多选题(2*35=70分):我记得的有厂房未建成之前的借款费用入帐问题,会计要素,无形资产的折旧,存货的可变现净值,固定资产的折旧,资本化支出(长期股权投资是不是资本化支出??),什么情况下会引 ...

  • [软件工程学]作业
  • <软件工程学>作业 一.简答题 1.需求分析的任务 答:需求分析的任务主要包括以下几项: 确定目标系统的综合要求,其中包括 (目标系统的功能.性能.运行的环境及扩展性要求): 分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数 据数据及数据结构?对数据的处理逻辑 ...