软件测试实验报告一

2018-03-22  本文已影响0人  hdychi

一、实验要求

Install Junit(4.12), Hamcrest(1.3) with Eclipse

Install Eclemma with Eclipse

Write a java program for the triangle problem and test the program with Junit.

Description of triangle problem:

Function triangle takes three integers a,b,c which are length of triangle sides; calculates whether the triangle is equilateral, isosceles, or scalene.

二、实验过程

1、Junit、Hamcrest、Eclemma的安装

使用了Idea作为IDE,引入了Junit4.8的Jar包。引入方法为:

File->Project Structrure->Libraries->+按钮->选择jar包->确定

对于Hamcrest,Junit4.4及以上已经集成了Hamcrest框架。由于我使用的是4.8版本,无需再安装

对于Eclemma,Idea自带的插件有Idea Code Coverage,不用再安装其他Code Coverage插件

2、判断三角形的代码

我的程序对于等边三角形返回1,对于非等边而等腰的三角形返回2,对于斜三角形返回3,对于不是三角形的返回4

package hdychi;

public class Triangle {
    public static int getType(int a,int b,int c){
        if(a == b && b == c){
            System.out.println(1);
            return 1;
        }
        else{
            if(a == b){
                if(a + b > c){
                    System.out.println(2);
                    return  2;
                }
            }
            else if(b == c){
                if(b + c > a){
                    System.out.println(2);
                    return 2;
                }
            }
            else if(a == c){
                if(a + c > b){
                    System.out.println(2);
                    return 2;
                }
            }
        }
        if(a + b > c && Math.abs(a - b) < c){
            System.out.println(3);
            return 3;
        }
        System.out.println(4);
        return 4;
    }
}

3、进行测试

我设计的样例包括等边三角形,三个不同两条边相等的等腰三角形
代码如下:

package hdychi;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;

public class Test {
    @org.junit.Test
    public void testNormal(){
        int res1 = Triangle.getType(1,1,1);//测试等边三角形
        assertEquals(1,res1);
        int res2 = Triangle.getType(2,2,1);//测试等腰三角形
        assertEquals(2,res2);
        res2 = Triangle.getType(1,2,2);//换两条边等腰
        assertEquals(2,res2);
        res2 = Triangle.getType(2,1,2);//换两条边等腰
        assertEquals(2,res2);
        int res3 = Triangle.getType(3,4,5);//测试斜边三角形
        assertEquals(3,res3);
        int res4 = Triangle.getType(2,2,4);//测试不是三角形的
        assertEquals(4,res4);
        assertThat(res4,equalTo(4));
    }
}

4、测试结果

2018-03-22 12-04-04屏幕截图.png 2018-03-22 12-04-29屏幕截图.png

由图可见,测试覆盖率为97%,每个分支都达到了,且无错误

上一篇下一篇

猜你喜欢

热点阅读