软件测试第一次上机实验
这次上机我们主要进行Java的一些常用的测试工具的安装与使用,在这里稍微介绍一下这次使用的几种工具
junit:JUnit是一个Java语言的单元测试框架。
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.