• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

诊断 Java 代码:单元测试与自动化代码分析协同工作

发布: 2009-4-01 10:40 | 作者: 不详 | 来源: 测试时代采编 | 查看: 30次 | 进入软件测试论坛讨论

领测软件测试网

关于这些类型的工具,要牢记的要点是:最适宜应用于通过测试更新旧代码。当构建新项目时,它们的作用不大。

为什么会这样呢?因为新项目应该与项目上的单元测试是一前一后构建的。开发单元测试是构建设计的强有力的方法;针对组件的 API 就是在编写测试时隐式地为它们设计的。此外,以这种风格进行设计向设计师提供了即时的反馈。糟糕的设计将非常难于编写测试!并且,任何分析工具在确定为程序编写什么测试这方面,都很难做得象设计师那样好。

第二种分析工具分析程序及其单元测试,并确定测试能在多大范围内覆盖程序。与刚才提到的第一类工具不同,此类工具对每个项目都是有用的。实际上,极端编程团队可以考虑将此类工具集成到他们的代码提交过程中。那么,他们不仅能够防止代码在通过所有测试之前被提交,而且可以防止代码在未经测试的情况下提交!不仅懒惰会导致测试覆盖范围偏小,错误也可能导致同样后果,因此,此类强制措施对任何技能(和完整性)级别的程序员都有用。

Clover 是一种可以执行此类分析的新的并且特别有希望的工具。Clover 是 Ant 的插件,Ant 是make的流行的、全 Java 的替代物。Clover 是商业工具,但它可以免费用于开放源码项目。

Clover 分两阶段过程进行工作。首先,它在编译时检测代码。然后,在测试时将有关测试的运行信息写到用来生成报告的数据库中(通过 GUI、网页或在控制台中)。

将 Clover 集成到使用 Ant 的现有项目中很简单。这涉及调整项目的 build.xml 文件以添加几个在编译、记录测试和生成报表期间检测代码的目标。例如,假定我们有一个带构建和编译目标的 build.xml 文件。我们所必须做的全部工作是将 Clover JAR 文件放到我们的 Ant 库目录中,并如下所示扩展 build.xml 文件(Clover 用户指南中提供了这些和类似于 Ant 目标的信息;为了方便,我在这里包括了它们):

清单 3. 扩充 Ant build.xml 文件以使用 Clover

<property name="clover.initstring" value="/tmp/mycoverage.db"/>

<target name="with.clover">
<property name="build.compiler"
value="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/>
</target>

<path id="clover.classpath">
<pathelement path="<CLOVER_HOME>/lib/clover.jar"/>
<pathelement path="<CLOVER_HOME>/lib/velocity.jar"/>
</path>

<target name="clover.report">
<java classname="com.cortexeb.tools.clover.reporters.html.HtmlReporter">
<arg line="--outputdir /tmp/clover_html --showSrc --initstring
$\{clover.initstring\} --title 'My Project'"/>
<classpath refid="clover.classpath"/>
</java>
</target>

特性clover.initstring指定了一个文件,有关 Clover 覆盖范围的数据将写入这个文件中。目标with.clover用来在执行其它目标(如compile和test)时打开 Clover。clover.report目标用来接收累积的覆盖范围数据并生成报告。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网