首页 > 代码库 > 软件测试Lab1

软件测试Lab1

本次实验主要配置安装了JUnit以及Eclemma,并使用了JUnit进行断言测试。

1. 安装JUnit以及Eclemma

下载Junit以及Hamcresta的jar包,在工程build path中点击Configure build path加入,在其中点击Add External JARs...选择下载好的jar包

 技术分享

添加好的如下:

 技术分享

选择help->Install New Software...

技术分享

 

将下载好的EclEmma文件放到eclipse的dropins目录下,并选择到这个地址安装,重启后即可以使用这个工具

 技术分享

 

2. 实现判断三角形是等边,等腰还是不等边的

我在src文件下添加了一个Triangle类,用于保存一个三角形的三条边的值。在project下新建了一个test文件夹并添加了一个testTriangle类,使用了断言来对不同的三角形进行判断。代码如下:

Triangle.java

 1 package testLab1;
 2 
 3 public class Triangle {
 4     private int a;
 5     private int b;
 6     private int c;
 7     public Triangle(int x,int y,int z)
 8     {
 9         a = x;
10         b = y;
11         c = z;
12     }
13     public String triangleType() {
14         if(a + b < c || b + c < a || a + c < b)
15             return "notTriangle";
16         if(a == b && b == c)
17             return "equilateral";
18         else if(a == b || b == c || c==a)
19             return "isosceles";
20         else {
21             return "scalene";
22         }
23     }
24 }

 

testTriangle.java

 1 package testLab1;
 2 
 3 import static org.junit.Assert.assertEquals;
 4 
 5 import org.junit.After;
 6 import org.junit.Before;
 7 import org.junit.Test;
 8 
 9 public class testTriangle {
10     @Before
11     public void setUp() throws Exception {
12         System.out.println("Before test");
13     }
14 
15     @After
16     public void tearDown() throws Exception {
17         System.out.println("After test");
18     }
19 
20     @Test
21     public void test1() {
22         Triangle tri = new Triangle(2,2,2);
23         assertEquals("equilateral",tri.triangleType());
24         tri = new Triangle(4,6,6);
25         assertEquals("isosceles",tri.triangleType());
26         tri = new Triangle(5,5,3);
27         assertEquals("isosceles",tri.triangleType());
28         tri = new Triangle(3,4,5);
29         assertEquals("scalene",tri.triangleType());
30     }
31     
32     @Test
33     public void test2(){
34         Triangle tri = new Triangle(1,4,1);
35         assertEquals("isosceles",tri.triangleType());
36     }
37 }

测试时我使用了before, test, after三个标签。before在测试开始之前用于初始化,test标签是测试部分,after标签是用于一些资源的释放。

测试是右键选择Run As Junit Test运行测试

 技术分享

成功与失败运行结果如下:

 技术分享

 技术分享

可以看到是test2没用通过,test1通过了测试

 

使用EclEmma的方法:

选择run菜单下的coverage last launched运行测试

 技术分享

 

绿色代表运行的部分,红色代表未运行的部分,黄色代表判断语句

 技术分享

技术分享

 

软件测试Lab1