软件测试:lab1.Junit and Eclemma
软件测试:lab1.Junit and Eclemma
Task:
- 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.
a) 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.
Report:
Junit:http://mvnrepository.com/artifact/junit/junit/4.12
Hamcrest:http://mvnrepository.com/artifact/org.hamcrest/hamcrest-all/1.3
Eclemma:https://sourceforge.net/projects/eclemma/
1. Junit(4.12), Hamcrest(1.3)安装与配置
eclipse中新建Java项目scs2015,再在该项目下新建目录lib,将hamcrest-all-1.3.jar,junit-4.12.jar拷贝到lib目录下,并导入项目里;
2. Eclemma的安装与配置
eclipse中—点击Help菜单—Install New Software,在弹出的对话框中,点击Add,之后点击 Archive,找到你下载好的 Eclemma.zip 资源文件,按照提示一步一步的安装重新启动 eclipse就完成了;
3. Test triangle program with Junit
点击安装Eclemma后工具栏上新增的覆盖测试按钮,来使用Eclemma测试Java程序


测试结果如上图所示。
在 Java 编辑器中,EclEmma 用不同的色彩标示了源代码的测试情况。其中,绿色的行表示该行代码被完整的执行,红色部分表示该行代码根本没有被执行,而黄色的行表明该行代码部分被执行。黄色的行通常出现在单行代码包含分支的情况,例如上图中的 20 行就显示为黄色。
除了在源代码编辑窗口直接进行着色之外,EclEmma 还提供了一个单独的视图来统计程序的覆盖测试率。

由于Triangle.java中还有一些get set 方法行没有被测试覆盖,上图Coverage为52.6%,尝试删去多余代码行后视图显示如下:

代码附录:
Triangle.java
public class Triangle {
private double side1,side2,side3;
public Triangle(double side1, double side2, double side3) {
super();
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public String getShape() {
String sha[]= {"equilateral","isosceles", "scalene"};
int i=-1;
if(this.side1!=this.side2&&this.side1!=this.side3&&this.side2!=this.side3) {
i=2;
}else if(this.side1==this.side2&&this.side2==this.side3) {
i=0;
}else {
i=1;
}
return sha[i];
}
}
TriangleTest.java
public class TriangleTest {
@Test
public void testEquilateral() {
double a1=1,a2=1,a3=1;
Triangle tria=new Triangle(a1, a2, a3);
assertEquals("equilateral",tria.getShape());
}
@Test
public void testIsosceles() {
double b1=1,b2=1,b3=1.2;
Triangle trib=new Triangle(b1, b2, b3);
assertEquals("isosceles",trib.getShape());
}
@Test
public void testScalene() {
double c1=3,c2=4,c3=5;
Triangle tric=new Triangle(c1, c2, c3);
assertEquals("scalene",tric.getShape());
}
}
软件测试:lab1.Junit and Eclemma的更多相关文章
- 软件测试Lab 1 Junit and Eclemma
首先安装eclipse 然后下载hamcrest-core-1.3.jar,下载地址:http://mvnrepository.com/artifact/org.hamcrest/hamcrest-c ...
- ST Lab1 junit test
代码地址: https://github.com/newff/st-lab1 Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Insta ...
- 单元测试系列:如何使用JUnit+JaCoCo+EclEmma完成单元测试
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...
- 使用junit和eclemma进行简单的代码测试
1.Junit和Hamcrest的安装 可以在https://mvnrepository.com/上面下载所需要的Junit和Hamcrest的jar包,然后在项目中新建一个lib文件夹,将下载好的j ...
- 【软件测试】Junit入门
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- Software Testing Techniques LAB 01: test Junit and Eclemma
1. Installing 1. Install Junit and hamcrest First, I download the Junit-4.12.jar and hamcrest-core- ...
- 软件测试作业3 — PrintPrimes()
一.Use the following method printPrimes() for questions a–d. (a) Draw the control flow graph for the p ...
- 软件测试-homework3
printPrime()代码: public static void printPrimes (int n) { int curPrime; // Value currently considered ...
- 软件测试技术作业3---PrintPrimes()
一.代码部分: private static void printPrimes (int n) { int curPrime; // Value currently considered for pr ...
随机推荐
- 理解JavaScript中的属性描述符
我们把描述JavaScript中定义内部特性的属性叫做属性描述符 分为两大类:数据描述符和存取描述符 数据描述符是一个拥有可写或不可写的属性(Writable); 存取描述符不包含数据值,是一组拥有g ...
- 查看python中模块的所有方法
查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...
- SQLServer 2008R2主从部署实战
说明: 由于临时接到做OA的主从环境,基于Windows 200R2 SQLServer2008 R2,由于搜索的资料都不完整,好多重要之处有遗漏,亲自动手做了好几次,填完了坑,整理以备忘记与分享,如 ...
- 配置3层交换机VLAN间通信
SW2 Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(c ...
- linux Posix线程同步(条件变量) 实例
条件变量:与互斥量一起使用,暂时申请不到某资源时进入条件阻塞等待,当资源具备时线程恢复运行 应用场合:生产线程不断的生产资源,并通知产生资源的条件,消费线程在没有资源情况下进入条件等待,一直等到条件信 ...
- NSArray NSMutableArray
NSArray 或者 NSMUtableArray 去除重复的数据: 原来集合操作可以通过valueForKeyPath来实现的,去重可以一行代码实现: [array valueForKeyPath: ...
- 科学计算库Numpy(1)
Numpy 一,数据结构 数据类型: ndarray import numpy world_alchol = numpy.genfromtxt('world_alchol.txt',delimiter ...
- Linux上更换默认的java版本
最近注意的一个问题: 在Server上和本地里都使用了相同版本的Tomcat,但是在Server上的tomcat日志里会出现很多java异常的错误, 但是本地的tomcat日志没有出现,初步判断应该是 ...
- HDU 6181:Two Paths(次短路)
Two Paths Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 153428/153428 K (Java/Others) Total S ...
- Where are your from!!!!!!!!!!!! !Baby! {封装}
在说Java 三个特性之前,我们先了解一下什么是面向对象,以及为什么Java是面向对象的语言. 面向对象是区别于面向过程的一种编程的思想.我们可以通过这个例子冰箱装大象的例子来了解一下面向对象与面向过 ...