软件工程测试3

软件测试第一次上机实验

这次上机我们主要进行Java的一些常用的测试工具的安装与使用,在这里稍微介绍一下这次使用的几种工具

junit:JUnit是一个Java语言的单元测试框架。

它包括以下特性:
1、用于测试期望结果的断言(Assertion)
2、用于共享共同测试数据的测试工具
3、用于方便的组织和运行测试的测试套件
4、图形和文本的测试运行器
通过Junit我们可以用一种全新的方法(断言)验证程序运行结果的正确性,避免了大量手动测试的繁琐工序,我们想要测试一个加法函数的运算结果,我们只需要断言这个函数的运算结果和我们的预期结果相同就可以了。如:
assertEquals(3,add(1,2));

就是断言add(1,2)的运算结果为3。

Hamcrest:Hamcrest 是一个测试的框架,它提供了一套通用的匹配符 Matcher,灵活使用这些匹配符定义的规则,程序员可以更加精确的表达自己的测试思想,指定所想设定的测试条件。

Junit的功能虽然强大,但是当我们进行一些范围测试的时候如判断一个函数的运算结果在20和40之间,如果用枚举的方法测试就显得过于繁琐

但是我们如果使用Hamcrest可以这样做

assertTrue((40>30) && (40<50)) 

断言40>30且40<50

eclemma:EclEmma是一个开源的软件测试工具,可以在编码过程中查看代码调用情况、也可以检测单覆盖率。我们通过安装EclEmma可以明显的看出那些代码得到了运行那些没有得到运行,以及各个判断语句的执行结果。

然后简单说一下这次的上机内容以及过程

首先是用Eclipse安装上述的三个测试工具,然后写一个判断三角形是等边、等腰或者两者都不是的函数并使用junit测试运行结果

首先使用build path中的configure build path中

 

 

 

至于另一个工具需要在help里的Eclipse marketplace

寻找到Eclemma即可

代码:

package baixuejianmsl;

public class paqiuligo {
public String checkiftri(int a,int b,int c){
    if(a == b && b == c)
        return "等边" ;
    else if (a == b || b == c || a == c)
        return "等腰" ;
    else
        return "啥也不是" ;
}
}
package baixuejianmsl;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class test {
    private paqiuligo p=null;
    @Before
    public void setUp() throws Exception {
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    public void test() {
        p=new paqiuligo();
        assertEquals("等边",p.checkiftri(2, 2, 2));
        assertEquals("等腰",p.checkiftri(2, 3, 3));
        assertEquals("啥也不是",p.checkiftri(5, 2, 1));
        
    }

}

在测试部分我主要使用是before、test、after三个标签,

before标签下一般用于在测试开始之前进行初始化

test标签下是测试的内容

after标签下的内容一般是进行资源的释放或者进行补充测试 

我们上述三个标签后,在选择Run as的方式的时候会多出一个选项

然后就可以进行测试了,由于我将test写在了一起,在测试中我会将另外两个测试注释掉,并加入其它语句,但是其实大同小异

错误的话:

补充一下EclEmma的用法:

 

然后就可以看到代码的覆盖测试

如果没有运行,将以红色标注,绿色是已经运行过的语句:

That's all.

 

posted @ 2016-03-18 14:56  盟军的次时代  阅读(259)  评论(0编辑  收藏  举报