java-覆盖测试

覆盖测试-cobertura

  本文不是详细介绍cobertura的文章,只是笼统上说一下覆盖测试。

  从三个方面来说:

  1:cobertura是一款覆盖测试的框架并且是开源框架,并且依赖于单元测试例如junit。

  2:进行覆盖测试的时间段是在单元测试完成后进行(如果连单元测试都是有问题的或者是不全面,不完整的。进行覆盖测试根本没有意义)。

  3:进行覆盖测试的意义,能够测试代码是否有效正确(语句测试)。同时能够检测你的单元测试是否进行了测试了所有可能的case。同时也能够测试代码部分是否全部有效(分支测试)。

  书写单元测试按照规范来写,尽量每一个分支写一个case这样能使出错的时候更加明显。并且expected ,actual单独用变量表示。junit选用了4,因为junit4完全兼容junit3,所以在进行单元测试的时候最好选用junit4进行测试。

  以下部分为简单的覆盖测试例子。

  maven  pom文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.zhang</groupId>
    <artifactId>testjunit</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                 <version>2.5.1</version>
                <configuration>
                    <instrumentation>
                        <!--<ignore>.*</ignore> -->
                        <!--用来排除测试类,以MOdel结尾的类不算在要进行覆盖测试的类里面-->
                        <excludes>
                            <exclude>**/*Model.class</exclude>
                        </excludes>
                    </instrumentation>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Maven Cobertura Plugin集成详见  http://blog.csdn.net/kongxx/article/details/7757571

主类

 1 package com.zhang.testjunit;
 2
 3 /**
 4  * @author act
 5  *
 6  *
 7  */
 8 public class MyJunit {
 9
10     public int myDivide(int x,int y){
11         if(0==y){
12             System.out.println("重新输入y");
13             return -1;
14         }else if(0==x){
15             return x/y;
16         }else {
17             return x/y;
18         }
19     }
20 }

测试类

package com.zhang.testjunit;

import junit.framework.TestCase;

/**
 * @author act
 *
 *
 */

public class MyJunitTest extends TestCase{

    public void testMyDivide(){
        MyJunit mj = new MyJunit();
        int actual = mj.myDivide(6, 2);
        int expected = 3;
        assertEquals(expected, actual);
    }
    public  void testMyDivide1(){
        MyJunit mj = new MyJunit();
        int actual = mj.myDivide(6, 0);
        int expected = -1;
        assertEquals(expected, actual);
    }
}

生成测试报告

正好符合测试报告,测试类中有一个分支没有进行测试,并且model类也没有算到里面。

java-覆盖测试,布布扣,bubuko.com

时间: 2024-08-25 00:30:34

java-覆盖测试的相关文章

使用 EclEmma 进行覆盖测试

覆盖测试是衡量测试质量的一个重要指标.在对一个软件产品进行了单元测试.组装测试.集成测试以及接受测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察.如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的.相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心.本文将介绍一个优秀的开源软件测试工具 EclEmma,它能够对由 Java 语言编写的程序进行覆盖测试,从而对程序运行的结果生成

eclipse 常用插件

转自:http://blog.csdn.net/fmynjy/article/details/51500989 开发过程中的常用Eclipse插件,按字母排序: (1)    AmaterasUML        介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等:支持与Javaclass/interface之间的相互导入导出.        官方网站:http://amateras.sourceforge.jp/cgi-bin/fswiki

企业常用的ecplise插件

开发过程中的常用Eclipse插件,按字母排序: (1)    AmaterasUML        介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等:支持与Javaclass/interface之间的相互导入导出.        官方网站:http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML        插件下载URL:http://sour

Eclipse常用开发插件

以下是我整理的自己开发过程中的常用Eclipse插件,按字母排序: (1)    AmaterasUML         介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等:支持与Java class/interface之间的相互导入导出.         官方网站:http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML         插件下载UR

eclipse常用Eclipse插件介绍

以下是我整理的自己开发过程中的常用Eclipse插件: (1)     AmaterasUML         介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等:支持与Java class/interface之间的相互导入导出.        官方网站:http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML         插件下载URL:http

Java后端程序员1年工作经验总结

java后端1年经验和技术总结(1) 1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼.遂决定梳理一下自己所学的东西,为大家分享一下. 经过一年意识到以前也有很多认识误区,比如: 偏爱收集,经常收集各种资料视频塞满一个个硬盘,然后心满意足的看着容量不行动. 不重基础,总觉得很多基础东西不需要再看了,其实不懂的地方很多,计算机程序方面任何一个结果都必有原因

JUNIT,HAMCREST,ECLEMMA单元测试基础(JAVA)

本次实验是Junit,hamcrest,eclemma单元测试的基础应用,从安装开始.这里选择的语言是java,IDE为Eclipse(MARS.2) 1)安装junit, hamcrest 和 eclemma 1.1      安装juint,hamcrest 这两个的安装我使用了同一种方法,即导入jar包,在"项目"->"属性"当中选择java构建路径,导入外部提前下好的jar包,这里我导入的是junit(4.12)和hamcrest-all-1.3.导入

Pairwise Testing 的Java实现

本文只使用他人托管的jar包,不涉及具体算法 软件测试通常要花费掉软件开发组织30%~70%的开发资源,如何有效地提高软件测试的效率是开发组织应该考虑的关键问题之一.由于很多情况下穷举测试是不可行的,测试人员必须在时间和资源的有限性与测试覆盖的彻底性之间做好权衡.解决这个问题的一个行之有效的方法便是Pairwise Testing. 一.Pairwise Testing 先举例子 在测试用例设计过程中,有时会遇到很多变量进行组合的情况,对相互组合的两个或更多变量进行的测试活动就是组合测试,比如

Java多线程学习(吐血超详细总结)

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 目录(?)[-] 一扩展javalangThread类 二实现javalangRunnable接口 三Thread和Runnable的区别 四线程状态转换 五线程调度 六常用函数说明 使用方式 为什么要用join方法 七常见线程名词解释 八线程同步 九线程数据传递 本文主要讲了java中多线程的使用方法.线程同步.线程数据传递.线程状态及相应的一些线程函数用法.概述等. 首先讲一下进程和线程

Java TM 已被阻止,因为它已过时需要更新的解决方法

公司的堡垒机需要通过浏览器登陆,且该堡垒机的网站需要Java的支持,最近通过浏览器登陆之后总是提示"java TM 已被阻止,因为它已过时需要更新的解决方法"导致登陆之后不能操作, 但是操作系统中确实已经安装了比较新的JDK,安装的JDK版本是jdk-7u67-windows-i586,因为太烦人,所以决定搞清楚报错的原因,一劳永逸,彻底解决这个问题 准备工作:安装JDK,安装版本jdk-7u67-windows-i586.exe,因为机器的Eclipse还依赖64位的JDK,所以另安