软件测试实验学习笔记系列5-单元覆盖测试

发表于:2013-8-08 11:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiajian2010    来源:51Testing软件测试网采编

  单元覆盖测试

  覆盖测试是衡量软件质量的一个重要的指标,是一种”白合”测试方法,覆盖的标准有逻辑覆盖,循环覆盖,基本路径覆盖。其中逻辑测试包括语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖和路径覆盖。

  覆盖测试必须拥有程序的规格说明书和程序清单,以程序的内部结构为清单设计测试用例。覆盖测试主要使用在具有高可靠性要求的软件领域(军工企业,航空航天软件,工业控制软件).覆盖测试需要借助一定的工具软件,工具软件具有的功能特点:

  分析软件内部接口,帮助定制覆盖策略及设计测试用例

  与适当的编译器结合,对被测软件实施自动插桩,以便在其运行过程中生成覆盖信息并收集这些覆盖信息

  根据收集的覆盖信息计算覆盖率(Coverage),帮助测试人员找到未被覆盖的软件部分,以改进测试用例,提高覆盖率

  对主流开发语言的支持,因为对不同的开发语言来说,测试工具的实现的方式和内容差别是较大的。目前测试工具主要支持的开发语言是:标准C,C++,Visual C++,Java等,

  进行动态覆盖测试的三项任务:1.设计测试用例;2.对被测代码进行插桩;3.收集覆盖信息并进行分析。

  2.1覆盖测试工具介绍

  xUnit基本不支持覆盖测试(白盒测试中重要的内容)。覆盖测试工具实现的技术方式和具体的语言是紧耦合的。不同语言使用的覆盖测试的策略是不一样的。实例如下:

  Java(EclEmma+JUnit,JCoverage)

  NET(NCover+NUnit)

  CppUnit框架很难提供覆盖测试的功能,c/c++测试覆盖测试是通过插桩实现的.C/C++覆盖测试工具:gcov

  2.2JUnit下的覆盖工具EclEmma

  时至今日,IT人士更加关注测试的重要性。 测试驱动开发(TDD)被证明是一种能有效提高软件质量的方法,测试优先原则,EclEmma2006年入围Eclipse Community Awards Winners 决赛

  2.2.1EclEmma

  Emma是Sourceforge上的开源项目,某种程度上,EclEmma是Emma的图形开发工具。

  Eclipse,OpenJDK,JUnit,Ant,CVS或者Subversion,Emma -- java开发成套开源的解决方案。

  Emma的同类产品:Coverlipse,Cobertura,Quilt,JCoverage.

  EclEmma的特点:快速的开发和测试周期,非常丰富覆盖信息分析以及非入侵方式。

  EclEmma:一个封装Emma覆盖工具的Eclipse的插件。Eclemma的官方地址:http://sourceforge.net/projects/eclemma

  EclEmma使用不同颜色标识的源代码测试的情况,绿色-完整执行,红色-根本没有执行,黄色-部分被执行,其视图能够分层显示代码的覆盖测试率。

  2.2.2EclEmma环境建立

  EclEmma的安装是就是Eclipse插件的安装,共有这样三种方式安装.

  1.Eclipse自身的Software Update机制.

  选中菜单栏中Help/Install New Softeware,在如下图中对话框中填入插件的站点的信息。

  本人是在Ubuntu12.04下使用eclipse的,如果是在windows下的话,具体操作可以参考[2]。

  缺点是:当安装了许多插件之后,eclipse的plugins中会充满各种旧的或废弃的插件,不便于更新和管理

  2.蛮力法安装

  将插件的压缩包解压,然后将其中的plugins和features与eclipse安装包中的同名文件夹合并,这样就可以在Eclipse中使用新插件。实际上第一个方法自动安装也是使用的这种方法,只不过由机器自动改成了手动。缺点同上。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号