#ST# Lab1 for ST

Software Testing, Lab 1

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

  1.在github上下载两个jar包junit-4.12.jar和hamcrest-all-1.3.jar地址为https://github.com/junit-team/junit4/wiki/Download-and-Install

  2.打开eclipse,新建项目,点击Project,选择Properties;

  

  弹出如下界面,点击Add External JARs...,添加如上两个jar包。

  

2. Install Eclemma with Eclipse

  将eclemma-2.3.3.zip解压缩到eclipse下的dropins文件夹中,我的路径为:D:\Download\eclipse\eclipse\dropins\eclemma-2.3.3。

  

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

  3.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.

  3.2 创建triangles类,编写代码,首先检测三条边是否可以构成三角形,如果构成,那是等边三角形还是等腰三角形或者是不等边三角形。代码如下:

  

package triangle;

public class triangles {

    public static String triangles(int a,int b,int c){

        if(a <= 0 || b <= 0 || c <= 0 || a + b <= c || a + c <= b || b + c <= a)

            return "Not a triangle";

        else {

            if(a == b && a == c)
                return "equilateral";

            else if(a == b || b == c || a == c)
                return "isosceles";

            else
                return "scalene";

        }
    }
}

  3.3 创建测试类,及测试用例,利用JUnit进行测试,代码如下:

  

package triangle;

import static org.junit.Assert.*;

import java.util.Arrays;

import java.util.Collection;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.junit.runners.Parameterized;

import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)

public class testTriangle {

    private int a;

    private int b;

    private int c;

    private String expected;

    public testTriangle(int a,int b, int c, String expected){

        this.a = a;

        this.b = b;

        this.c = c;

        this.expected= expected;

        }

    @Parameters

    public static Collection<Object[]> getData(){

     return Arrays.asList(new Object[][]{

     {-1, 1, 2, "Not a triangle"},

     {3, 2, 5, "Not a triangle"},

     {6, 6, 6, "equilateral"},

     {2, 5, 5, "isosceles"},

     {7, 8, 9, "scalene"}

     });

    }

    @Test

    public void test() {

    assertEquals(this.expected,triangles.triangles(a,b,c));

    }

}

  3.4 利用JUnit进行测试,如下图,在testTriangle类上点击右键,选择run as, 然后选择JUnit Test。

  

  测试结果如下:

  

  3.5 点击如下图标,利用Eclemma进行覆盖统计。

  

  结果如下图:

  

  可见,对于测试类的覆盖率为100%。

时间: 2024-12-24 06:06:24

#ST# Lab1 for ST的相关文章

ST lab1——Junit和覆盖测试的初探

实验名称: 软件测试第一次实验 实验目的: 了解Junit,Hamcrest,Eclemma这些intelij idea插件或开发包的使用 实验内容: 写一个java程序,判断一个给定三边的三角形是等边三角形.等腰三角形.还是非等边三角形,并用Junit,Hamcrest,Eclemma进行功能测试和覆盖性测试. 实验步骤: 1)  下载Junit,Hamcrest,Eclemma对应的软件开发包 这里我使用的是junit-4.12.jar和hamcrest-all-1.3.jar 2)  为i

st lab1: junit and eclemma

1.install junit and eclemma 在网上搜素并下载junit-4.12.jar 和 hamcrest-core-1.3.jar 两个jar包,在项目里创建一个lib文件夹将jar包放进去,再右键选择这两个jar包,选择Build Path->add to build path 即可. 安装eclemma: 点击eclipse的help,选择eclipse marketplace, 在find框里搜索eclemma并按照指示安装即可. 2.lab code package t

#ST# Lab2 for ST

1.安装SeleniumIDE插件 SeleniumIDE是FireFox的一个插件,它支持脚本的录制和导出等.安装时,我们可以直接搜索SeleniumIDE,进入其官网,在火狐浏览器中安装该插件,安装成功后,会在浏览器右上角出现这样的图标. 2.学会使用SeleniumIDE录制脚本和导出脚本 点开图标,下图为每个区域所代表的用途. 当右上角的红点是空心的时候表示正在录制,而且一般情况下默认打开SeleniumIDE直接录制,我们可以点击红点暂停录制.此时打开浏览器,进行操作,进到需要的网址,

关于st表的推导

#include <bits/stdc++.h> using namespace std; const int maxn=1e6+7; int st[maxn][32]; int a[maxn],n; void init(){ int i,j; //st[i][j]表示i到i+2^j-1区间的最小值 //先预处理区间长度为1的 for(i=0;i<n;++i) st[i][0]=a[i]; for(i=0;i<n;++i){ for(j=1;i+2^(j)-1<n;++j){

HDU 5875 st+二分区间

题目大意:给你n个数,q次询问,每次询问区间[l, r],问a[i]%a[i + 1] % a[i + 2]...%a[j](j <= r)的值 思路:st预处理维护,在二分区间,复杂度n*(logn)*logn //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> using namespace std; #define LL long long #define ALL(a) a.begin(), a.en

UVALive 5905 Pool Construction 最小割,s-t割性质 难度:3

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3916 这道题要求一种填充+挖坑+建屏障的方法,使得这块土地上的所有坑和草地之间都有屏障,挖坑花费d每块,填充花费f每块,建屏障花费b每两块之间,注意并不要求一定有坑,但是外围一圈要一定没有坑,所以需要预先填充好 令st代表平地,ed代表坑,边权为花费,那么本题是要求一个st-

[BZOJ1012] [JSOI2008] 最大数maxnumber (ST表)

Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插入操作.语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾.限制:n是非负整数并且在长整范围内.注意:初始时数列是空的,没有一个数. Input 第一行两个整数,M和D,其中M表示操作的个

C++之路进阶——ST表(降雨量)

2439 降雨量 2007年省队选拔赛四川 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master 题目描述 Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003,2004和2005年的降雨量分别为4920,5901,2832和3890,则可以说“2005年是自2003年以来最多的”,但不能说“2005年是自2002年以来最多的”由于有

倍增思想到ST表RMQ

Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 36864   Accepted: 17263 Case Time Limit: 2000MS Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer Joh