软件测试: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 ...
随机推荐
- 07_mysql常用sql语句
一.数据库相关 1.创建数据库: mysql> create database test default character set utf8 collate utf8_general_ci;Q ...
- jQuery-3.事件篇---键盘事件
jQuery键盘事件之keydown()与keyup()事件 鼠标有mousedown,mouseup之类的事件,这是根据人的手势动作分解的2个触发行为.相对应的键盘也有这类事件,将用户行为分解成2个 ...
- Mathematica求微分换元
[转载请注明出处]http://www.cnblogs.com/mashiqi 2017/12/16 有时我们需要对PDEs中的各项进行变量替换,比如把$\frac{\text{d}}{\text{d ...
- Python heapq模块
注意,默认的heap是一个小顶堆! heapq模块提供了如下几个函数: heapq.heappush(heap, item) 把item添加到heap中(heap是一个列表) heapq.heappo ...
- AI之旅(1):出发前的热身运动
前置知识 无 知识地图 自学就像在海中游泳 当初为什么会想要了解机器学习呢,应该只是纯粹的好奇心吧.AI似乎无处不在,又无迹可循.为什么一个程序能在围棋的领域战胜人类,程序真的有那么聪明吗?如 ...
- TrustManagerService.java
/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Versi ...
- 使用new来分配内存
对指针的工作方式有一定的了解之后,来看看他如何实现在程序运行时分配内存.前面我们都将指针初始化为变量的地址(int * pt; pt = & a):变量是在编译时分配的有名称的内存,而指针只是 ...
- 再谈Retina下1px的解决方案
https://www.w3cplus.com/css/fix-1px-for-retina.html
- 用户控件 RadioButtonList
public static MvcHtmlString RadioButtonList(this HtmlHelper htmlHelper, string name, string codeCate ...
- python3+qqBot+图灵机器人实现qq聊天机器人
原理: 通过Python3的qqBot开源库,基于腾讯的smartQQ协议登录个人QQ,实现监控.收集QQ消息,进而通过图灵机器人API接入方式实现自动聊天. 零.前期准备: 1.Python3 2. ...