软件测试实验1

实验要求

  1. Install Junit(4.12), Hamcrest(1.3) with Eclipse
  2. Install Eclemma with Eclipse
  3. Write a java program for the triangle problem and test the program with Junit.
    1. 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(4.12)和Hamcrest-all(1.3)
  2. 然后打开eclipse,新建一个java的project,右键properties-Java Build Path-Library-Add External JARs
  3. 安装eclemma (这是一个开源的软件测试工具,可以查看代码调用情况、也可以检测单覆盖率)
    1. 选择Help->Eclipse Marketplace->搜索eclemma,Install
    2. 重启eclipse发现工具栏上出现Coverage图标,说明安装成功
  4. 可以开始编码写程序了。
lab1.Main
package lab1;

public class Main {
    //whether this three integers can make a triangle 
    public Boolean triangle(int a,int b,int c) {
        if(a <= 0 || b <= 0 || c <= 0 || 
                a+b <= c || a+c <= b || b+c <= a) return false;
        return true;
    }
    public Boolean equilateral(int a,int b,int c) {
        if(triangle(a,b,c) &&  a == b && b == c) return true;
        return false;
    }
    public Boolean isosceles(int a,int b,int c) {
        if(triangle(a,b,c) &&
                (a == b || b == c || a == c) ) return true;
        return false;
    }
    /* 
     * 0 not a triangle
     * 1 equilateral
     * 2 isosceles
     * 3 triangle
    */
    public int tri(int a,int b,int c) {
        if(!triangle(a,b,c)) return 0;
        if(equilateral(a,b,c)) return 1;
        if(isosceles(a,b,c)) return 2;
        return 3;
    }
    public static void main(String[] args) {
    }
}

右键new一个junit Test case,进行测试。

MainTest
package lab1;

import static org.junit.Assert.*;
import org.junit.Test;

public class MainTest {
    /* 
     * 0 not a triangle
     * 1 equilateral
     * 2 isosceles
     * 3 triangle
    */
    @Test
    public void test() {
        Main l = new Main();

        assertEquals(0,l.tri(-2, 3, 32));
        assertEquals(0,l.tri(2, 3, 32));
        assertEquals(0,l.tri(0, 0, 1));
        assertEquals(0,l.tri(0, 0, 0));
        assertEquals(0,l.tri(-2, -2, -2));

        assertEquals(1,l.tri(3, 3, 3));

        assertEquals(2,l.tri(8, 6, 6));
        assertEquals(2,l.tri(2, 3, 2));
        assertEquals(2,l.tri(2, 1, 2));

        assertEquals(3,l.tri(2, 3, 4));
        assertEquals(3,l.tri(2, 5, 6));
        assertEquals(3,l.tri(3, 4, 5));
    }
}       
测试结果:

绿色为访问到了,黄色为部分访问,红色为未访问到。
这里写图片描述

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您解答关于Java编写三角形问题以及软件测试实验1的问题。 首先,三角形问题是一个经典的计算几何问题,它要求根据给定的三边长度判断这三边能否构成一个三角形,以及能够构成何种类型的三角形。在Java中,我们可以编写一个类来解决这个问题,例如: ```java public class Triangle { public static String getType(int a, int b, int c) { if (a <= 0 || b <= 0 || c <= 0) { return "不是三角形"; } if (a + b <= c || a + c <= b || b + c <= a) { return "不是三角形"; } if (a == b && b == c) { return "等边三角形"; } if (a == b || b == c || a == c) { return "等腰三角形"; } return "普通三角形"; } } ``` 在上面的代码中,我们用了一个静态方法getType来判断三角形的类型。它接受三个参数a、b、c分别表示三边的长度,并返回一个字符串表示三角形的类型。 接下来,我们可以使用JUnit框架对这个类进行测试。JUnit是一个用于Java编程语言中的单元测试框架,它可以让我们更方便地测试我们编写的代码是否符合预期。 例如,我们可以编写如下的测试代码: ```java import static org.junit.Assert.assertEquals; import org.junit.Test; public class TriangleTest { @Test public void testGetType() { assertEquals("等边三角形", Triangle.getType(3, 3, 3)); assertEquals("等腰三角形", Triangle.getType(3, 3, 4)); assertEquals("普通三角形", Triangle.getType(3, 4, 5)); assertEquals("不是三角形", Triangle.getType(-1, 2, 3)); assertEquals("不是三角形", Triangle.getType(1, 2, 3)); assertEquals("不是三角形", Triangle.getType(1, 1, 2)); } } ``` 在上面的代码中,我们使用了JUnit的@Test注解标记了一个测试方法testGetType,然后在这个方法中调用了Triangle类的getType方法,并使用assertEquals来断言其返回值是否和预期值相同。 最后,我们可以使用Eclipse等Java开发环境来运行这个测试方法,以便确认我们编写的代码是否符合预期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值