软件测试上机-lab1

Junit and Eclemma

课题作业:

1.在eclipse内安装Junit,hamcrest和Eclemma。

2.编写一个判断三角形的程序并使用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.

编写三角形方法,输入三个代表三角形三边长的整形数a,b,c,计算并判断三边长是否是等边三角形、等腰三角形或斜角三角形。

Java环境以及eclipse已经配置并安装完毕,直接开始安装jUnit/hamcrest/Eclemma。

第一步:

分别从:

http://mvnrepository.com/artifact/org.hamcrest/hamcrest-all/1.3

http://mvnrepository.com/artifact/junit/junit/4.12

https://sourceforge.net/projects/eclemma/

下载hamcrest、jUnit和eclemma。

下载后解压到一个文件夹中,

第二步:在eclipse内引用jUnit与hamcrest的jar包,安装Eclemma

首先启动eclipse

a)引入jar包,步骤如下

右键单击项目,Build Path -> Configure Build Path -> Add External jars

在弹出的窗口里选中junit-4.12,jarhamcrest-all-1.3.jar,打开文件。引入成功。

b)安装Eclemma

将刚才解压的Eclemma文件夹复制到[eclipse_home]\dropins

随后操作为help -> install new software -> add -> local -> 选择下载好的eclemma安装,根据提示重启。

接下来编写判断三角形类别的程序:

创建Triangle类,编写三角形对象的基本属性和方法。

创建Func类,编写用于判断三角形是否为等边、等腰或斜角三角形的方法。

创建FuncTest类:

右键Func类,New -> JUnit Test Case,弹出窗口如下图设置,Finish。

生成FuncTest类,之后编写测试程序。

Triangle类代码:

package triangleCal;

public class Triangle {

    private int a, b, c;//三角形的三条边

    public Triangle(int la, int lb, int lc){//输入三角形的三条边长
        setA(la);
        setB(lb);
        setC(lc);
    }

    public double getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public double getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }

    public double getC() {
        return c;
    }

    public void setC(int c) {
        this.c = c;
    }
}

Func类代码:

package triangleCal;

public class Func {

    private Triangle t;
    private int ans = -1;

    public Func(){

    }

    public void setFunc(int a, int b, int c){//题目要求的函数
        t = new Triangle(a, b, c);

        if(isTriangle()){//能否构成三角形
            if(isEquilateral()){//正三角形
                ans = 1;
                System.out.println("正三角形");
            }
            else if(isIsosceles()){//等腰
                ans = 2;
                System.out.println("等腰三角形");
            }
            else{//非等边
                ans = 0;
                System.out.println("非等边三角形");
            }
        }else{//构不成三角形 not a triangle
            ans = -1;
            System.out.println("构不成三角形");
        }
    }

    public int getAns() {//test获取结果
        return ans;
    }

    public boolean isEquilateral(){//判断等边【单个函数不验证是否能构成三角形
        if(t.getA() == t.getB() && t.getA() == t.getC())
            return true;
        return false;
    }

    public boolean isIsosceles(){//判断等腰【单个函数不验证是否能构成三角形
        if(t.getA() == t.getB() || t.getA() == t.getC() || t.getB() == t.getC())
            return true;
        return false;
    }

    public boolean isTriangle(){//判断是否为三角形
        if(t.getA() <= 0 || t.getB() <= 0 || t.getC() <= 0)//边长不小于0
            return false;
        if(t.getA() + t.getB() <= t.getC() || Math.abs(t.getA() - t.getB()) >= t.getC() )//两边之和大于第三边,两边之差小于第三边
            return false;
        return true;
    }

}

FuncTest类代码:

package test;

import static org.junit.Assert.*;

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

import triangleCal.Func;

public class FuncTest {

    private Func f;

    @Before
    public void setUp() throws Exception {
        f = new Func();
    }

    @Test
    public void testFunc() {
        f.setFunc(1, 1, 1);
        assertEquals(1, f.getAns());//正三角形

        f.setFunc(-1, -1, -1);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(-1, 1, 1);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(1, -1, 1);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(1, 1, -1);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(0, 0, 0);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(1, 5, 2);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(1, 5, 4);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(2, 1, 7);
        assertEquals(-1, f.getAns());//不是三角形

        f.setFunc(3, 4, 5);
        assertEquals(0, f.getAns());//非等边三角形

        f.setFunc(4, 4, 6);
        assertEquals(2, f.getAns());//等腰三角形
    }

    @Test
    public void testIsEquilateral() {
        f.setFunc(1, 1, 1);
        assertEquals(true, f.isEquilateral());

        f.setFunc(50, 50, 50);
        assertEquals(true, f.isEquilateral());
    }

    @Test
    public void testIsIsosceles() {
        f.setFunc(1, 1, 1);
        assertEquals(true, f.isIsosceles());

        f.setFunc(2, 1, 1);
        assertEquals(true, f.isIsosceles());

        f.setFunc(1, 2, 1);
        assertEquals(true, f.isIsosceles());

        f.setFunc(3, 4, 5);
        assertEquals(false, f.isIsosceles());
    }

    @Test
    public void testIsTriangle() {
        f.setFunc(-1, 1, 1);
        assertEquals(false, f.isTriangle());

        f.setFunc(1, -1, 1);
        assertEquals(false, f.isTriangle());

        f.setFunc(1, 1, -1);
        assertEquals(false, f.isTriangle());

        f.setFunc(0, 0, 0);
        assertEquals(false, f.isTriangle());

        f.setFunc(-1, -1, -1);
        assertEquals(false, f.isTriangle());

        f.setFunc(2, 3, 5);
        assertEquals(false, f.isTriangle());

        f.setFunc(7, 3, 2);
        assertEquals(false, f.isTriangle());

        f.setFunc(2, 3, 4);
        assertEquals(true, f.isTriangle());
    }

}

测试了多种情况,包括一些均为0,均为-1,两边之和等于第三边之类的边界条件。经过一些修改,测试用例均能正常运行。

jUnit测试结果截图:

eclemma覆盖率测试截图:

原文地址:https://www.cnblogs.com/hotarufuni/p/8647517.html

时间: 2025-01-05 01:30:34

软件测试上机-lab1的相关文章

软件测试上机实验

一.   实验目的 安装Junit和Hamcrest,写一个java程序判断三角形类型,并编写测试用例观察代码的正确率和覆盖率. 二.  实验环境 IDEA15 junit(4.12) hamcrest(1.3) 三.  实验过程 1.创建项目 创建新的module,新建一个package命名为lib,并在project structure中将lib这个包设置为jar 包,将junit和hamcrest的jar包放入lib下. 打开IDEA的preferences,在plugins下搜索juni

软件测试 上机

首先,从网上下载了junit和 hamcrest,并且随后在程序中进行了添加. 然后,我参考了http://liangruijun.blog.51cto.com/3061169/803473/学习了EclEmma的安装与使用. 最后,程序运行结果如下.我随后将项目代码已传到github中URL: https://github.com/hongjian9/Junit/tree/master

软件测试上机作业

一.junit.hamcrest和eclemma的安装. 1.junit和hamcrest在新建了junitHw1工程后在build path里通过add external jars添加junit-4.12.jar和hamcrest-all-1.3.jar. 2.eclemma在eclipse下点击help-eclipse marketplace-find-eclemma安装,重启eclipse. 二.编程判断三角形是等边三角形.等腰三角形或不等边三角形. public class triang

软件测试上机实验报告

Tasks: 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. 实验过程: 1. 从办公网上下载junit-4.12.jar和hamcrest-all-1.3.jar包,并通过build path导入. 2. 下载Eclemma并安装,H

软件测试上机实验(一)

Practice on Junit and Eclemma 1.Install Junit and Eclemma 1.1. Install Junit Download necessary JARs packages Click right key on the project – Properties – Java Build Path – Libraries – Add External JARs Add Junit and harmcrest-all-* 1.2. Install Ecl

软件测试lab1

3014218160 谭智元 软件测试lab1 1.下载Junit(4.12), Hamcrest(1.3) 2.建立project,将Junit(4.12), Hamcrest(1.3)库通过以下方式添加进项目 3.将eclemma-2.3.3中的文件复制到eclipse\dropins目录下 4.点击help下的install software,安装eclemma 5.在项目中新建两个.java文件并编写代码如下 6.运行代码,点击launch,查看测试结果,结果如下(覆盖率是100%) 7

软件测试第二次上机实验

这次上机我们主要使用Selenium进行自动化测试,首先我们需要下载selenium-java的依赖项. 若使用maven管理项目,则在.pom文件中加入如下依赖项: <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.0</version> </dep

软件测试第一次上机

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. 简单地判断一个三角形的形状 软件结构如下: Triangle的内容: 判断三角形的形状的代码如下: public String t

软件测试 Lab1

一.安装Junit及Hamcrest 1. 在Intellij IDEA中新创建一个工程. 2. 右键->Open Module Settings->Libraries,添加Junit及Hamcrest.jar包导入完成. 二.创建三角形类Triangle. 三角形的情况分为: “不是三角形”,“等边三角形”,“等腰三角形”,“其他三角形”. 三.创建测试三角形的类. 1. 创建与src等级的目录. 2. 右键->Make Directory As->Test Source Roo