软件测试作业(二)

1. Eclipse下安装JUnit以及Hamcrest.

  事前准备:下载好JUnit以及Hamcrest的jar包,提供github的下载网址

https://github.com/junit-team/junit/wiki/Download-and-Install

  下载好了上述两个jar包之后,打开Eclipse,新建java project,右键完成好的工程文件夹,选择BuildPath选项。之后,在弹出的窗口中进行如下操作:选中“Libraries”,点击“Add External JARS”,选择上述两个jar包的下载路径,选中jar包即可。

2.Eclipse下安装Eclemma

  安装Eclemma的方法有许多,此处提供一种在线一键安装的方法:

  打开Eclipse,选择Help->EclipseMarketplace

  在出现的窗口中,选择Search,在输入框中填入"eclemma",点击搜索按钮后会显示搜索结果,直接在搜索结果处点击install即可。

  安装结束后,重启Eclipse,在工具栏出现  这个按钮的时候,说明eclemma安装成功。

3.编写代码完成三角形形状的检测

  按照实验要求,本次实验要求进行测试的代码为一段检测一个三角形形状的代码:给定三角形三条边的长度,判断该三角形是等边三角形还是等腰三角形还是普通三角形。

public class tri {

public String judgement(int a ,int b, int c){

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

return "Not a triangle";

}else{

if(a==b&&a==c){

return "equilateral";

}else if(a == c && b != c){

return "isosceles";

}else{

return "scalene";

}

}

}

}

  三角形类编写完成之后,编写测试函数,给定输入和预期的输出,通过JUnit来进行测试。

import org.junit.Test;

import static org.junit.Assert.*;

import org.junit.Before;

public class main {

public tri t;

@Before

public void create(){

t = new tri();

}

@Test

public void Test(){

assertEquals("equilateral",t.judgement(1,1,1));

assertEquals("isosceles",t.judgement(1,2,2));

assertEquals("isosceles",t.judgement(2,1,2));

assertEquals("Not a triangle",t.judgement(1,2,3));

assertEquals("scalene",t.judgement(3,4,5));

}

}

 4.测试结果

  JUnit测试

  Eclemma下的覆盖率测试(代码片段)

  

时间: 2024-12-30 02:35:26

软件测试作业(二)的相关文章

软件测试作业二——找出程序中的错误

一.软件程序中的错误 软件程序中的错误有三种:faults(故障), errors(错误), failures(失败). 软件故障(faults):软件中的静态缺陷. 软件错误(errors):不正确的内部状态,该状态是某个故障的表现. 软件失败(failures):与需求或其他期望行为的描述有关的,外部的,不正确的行为. 二.分析下列程序 程序一: public int findLast (int[] x,int y){ //Effects:If x==null throw NullPoint

软件测试作业二

(1)findLast public int findLast (int[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in x that equals y. // If no such element exists, return -1 for (int i=x.length-1; i > 0; i--) { if (x

day1作业二:多级菜单

    作业二:多级菜单 1.三级菜单 2.可以次选择进入各子菜单 3.所需新知识点:列表.字典 4.打印b回到上一层 5.打印q退出循环 流程图如下: readme: (1)存储三级菜单的字典;设置标识符active用来循环: (2)生成存储省市的字典,d1 = {1: '河南', 2: '广东', 3: '湖南'}; (3)用户输入查询编码,如果用户输入q退出循环:如果用户输入小于1或大于3则重新输入:输入编码在range(1,4)中,则输出省,并继续循环; (4)生成存储市的字典d2 =

day1作业二:多级菜单操作(函数实现)

作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 本示例的三级菜单是一个yaml文件格式,格式如下: 香港: 香港 澳门: 澳门 台湾: 台湾 钓鱼岛: 钓鱼岛 北京市: - 市辖区 - 东城区 - 西城区 - 崇文区 - 宣武区 - 朝阳区 河北省: - 石家庄市: - 长安区 - 桥东区 - 桥西区 - 新华区 - 唐山市: - 路南区 - 路北区 - 古冶区 - 开平区 - 秦皇岛市: -

机器学习 1 linear regression 作业(二)

机器学习 1 linear regression 作业(二) 这个线性回归的作业需要上传到https://inclass.kaggle.com/c/ml2016-pm2-5-prediction 上面,这是一个kaggle比赛的网站.第一次接触听说这个东西,恰好在京东上有一本刚出来的关于这个的书<Python机器学习及实践:从零开始通往Kaggle竞赛之路>.把我自己写的代码运行保存的结果提交上去后发现,损失函数值很大,baseline是6,而我的却是8,于是很不心甘,尝试了其他方法无果后,准

第二次作业: 二维数组

高级语言程序设计报告   实习题目 第二次作业: 二维数组 P228计算机双学位第8章实验题:学生成绩管理系统 l 在上次作业的基础上,改为每学生2门课,用二维数组编程实现相应功能,相应功能所有涉及分数的均需可以处理每门课程分数及每个学生课程总分. l 涉及到排序的,均需提供冒泡及选择两种排序方法,可增加菜单项. l 功能5中按学号查询学生排名及成绩,要求用折半法,为此你的学生数据可以多一点. l 数组中可以事先有数据(省却每次输入数据浪费时间),为此输入数据菜单可以改造为增加数据菜单. l 在

家庭作业二

家庭作业二(Chapter 3) P206 3.60 考虑下面的源代码,这里R,S,T都是用#define声明的常数 int A[R][S][T]; int store_ele(int i,int j,int k,int *dest) { *dest=A[i][j][k]; return sizeof(A); } 编译这个程序,GCC产生下面的汇编代码:(i at %ebp+8,j at %ebp+12,k at %ebp+16,dest at %ebp+20) movl 8(%ebp),%ec

機器學習基石(Machine Learning Foundations) 机器学习基石 作业二 课后习题解答

大家好,我是Mac Jiang,首先祝贺大家清明节快乐!作为一名苦逼的程序员,博主只能窝在实验室玩玩游戏,顺便趁着大早上没人发一篇微博.不过还是祝各位出行的兄弟玩的开心! 今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业二的习题解答.笔者在做这些题目时遇到很多困难,当我在网上寻找答案时却找不到,而林老师又不提供答案,所以我就想把自己做题时对题目如何思考的写下来,为大家提供一些思路.当然,我对题目的理解不一定是正确的,如果各位博

【作业二】林轩田机器学习基石

作业一被bubuko抓取了,要是能注明转载就更好了() 作业二关注的题目是需要coding的Q16~Q20 Q16理解了一段时间,题目阐述的不够详细.理解了题意之后,发现其实很简单. 理解问题的关键是题目中给的's'是啥意思: (1)如果s=1,则意味着x>theta y预测为1,x<theta y预测为-1: (2)如果s=2,则以为着x<theta y预测为1,x<theta y预测为1 想明白这个事情之后,直接分theta大于0,小于0讨论,s=1 or s=-1把几种情况分

day1作业二:多级菜单操作

作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序