深入浅出学测试——(四)

五:覆盖测试

覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接口测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。

1、覆盖测试与JUnit的关系

可以看到,覆盖测试会防止大量无用的垃圾代码存在,给后面的代码维护减轻负担。一般来说,覆盖测试都是在单元测试阶段完成的,不再单独设置测试用例。因此,我们可以说,我们使用cobertura作为覆盖测试的工具,但是cobertura是基于JUnit的。

2、覆盖测试—在maven中使用cobertura

使用cobertura的时候,直接复用JUnit的测试用例。我们可以在ant或maven中使用cobertura,但是ant的脚本及其复杂,官方例子中的build.xml长达147行,而且及其复杂。因此,我们选用maven的。在maven里就简单多了!

mvn cobertura:cobertura,即可。

观察输出的结果中的行覆盖率和分支覆盖率。

3、持续集成定义

持续集成(continuous integration)CI

持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。

一个典型的持续集成周期包括以下几个步骤:

1. 持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。

2. 如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。

3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。

4. 运行所有的自动化测试。

5. 进行代码分析。

6. 产生可执行的软件,能够提供给测试人员进行测试。

持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。持续集成服务器本质就是一个定时器,自动帮你进行测试及集成。需要版本控制服务器(CVS、SVN、GIT),持续集成服务器(TeamCity、Hudson )。

我们在这里使用SVN 和 Hudson 这两个服务器来做持续集成。下面先学习一下Hudson吧。

HudsonJenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括:

1、持续的软件版本发布/测试项目。

2、监控外部调用执行的工作。

Hudson的特性

  1. 易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。

  2. 易于配置-所有配置都是通过其提供的web界面实现。

  3. 集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail 实时通知。

  4. 生成JUnit/TestNG测试报告。

  5. 分布式构建支持-Hudson能够让多台计算机一起构建/测试。

  6. 文件识别- Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

  7. 插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。

持续集成是原理

1、每隔一段时间检查SVN上代码是否更新

2、编译代码,执行单元测试及执行测试。

3、有错误发邮件等通知开发人员。

4、开发人员纠错,提交代码。

使用Hudson

1、下载获得Hudson的war包,并发布在tomcat上。

2、对整个Hudson进行整体配置。

3、设置JAVA_HOME

4、设置MAVEN_HOME

5、设置maven参数-Xms128M -Xmx512M

6、邮件相关

7、持续集成—Hudson

创建项目

1、输入项目的svn

2、构建触发器

我们通常用每隔多长时间自动询问svn服务器或每天的什么时候自动询问svn服务器。

This field follows the syntax of cron(with minor differences). Specifically, each line consists of 5 fields separated by TAB or whitespace: MINUTE HOUR DOM MONTH DOW

MINUTE Minutes within the hour (0-59)

HOUR The hour of the day (0-23)

DOM The day of the month (1-31)

MONTH The month (1-12)

DOW The day of the week (0-7) where 0 and 7 are Sunday.

* * * * * :每分钟。

5 * * * * :每小时中的第5分钟。

*/10 * * * *:每隔10分钟。

3、构建后发送email

45 10 * * 1-5 :每周一到周五的上午10:45。

0,30 * 13 * 5 :每月13号的每半小时,或者每周五的每半小时。

3、构建后发送email

我们需要指定maven的编译插件的编译语种,否则不能执行

<build>

    <plugins>

       <plugin>

           <groupId>org.apache.maven.plugins</groupId>

           <artifactId>maven-resources-plugin</artifactId>

           <configuration>

              <encoding>UTF-8</encoding>

           </configuration>

       </plugin>

       <plugin>

           <artifactId>maven-compiler-plugin</artifactId>

           <configuration>

              <encoding>UTF-8</encoding>

           </configuration>

       </plugin>

    </plugins>

</build>

 

这块因没有代码演示,只是安装配置一个软件而已,so easy的!相信大家都能搞定!

如果有问题可以邮件联系。

转载于:https://my.oschina.net/u/2505908/blog/530468

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值