软件测试(三)之 Lab1 Junit

本篇博客记录一下软件测试的第一次实验----------使用Junit进行软件测试

 

 

一、Junit, hamcrest & eclemma的安装

 

  Junit和hamcrest我是通过导入jar包进行安装的,步骤如下:

  选中建好的项目,右击,选择Build Path->Configure Build Path,转到下图界面:

  

  点击 Add Exterbal JARs, 然后选择Junit和hamcrest对应的jar包

  

     点击OK即导入成功!

 

  eclemma我是在线安装的,步骤如下:

  依次选择 Help ->Install New Software,转到下图界面

  

  点击 Add,按下图输入Name与Location,Name随意填写,Location填写 http://update.eclemma.org/

  

  之后选择EclEmma

     

      再一路点击Next就可以了,安装完成之后重启eclipse,发现有这个出现即说明安装成功!

 

二、测试

   实验要求:  

   Function triangle takes three integers a,b,c which are length of triangle sides; calculates whether the triangle is equilateral, isosceles, or scalene.

   简而言之,就是判断一个三角形的类型。

   除了老师要求的等边和等腰三角形外,我还多加了几个判断,总计6种,为边值超过范围,不构成三角形,等边三角形,等腰三角形,直角三角形,一般三角形,

  分别返回"Sides value is out of range", "Not a triangle", "Equilateral", "Isosceles", "RtTriangle", "Scalene"。

  判断函数如下:

  

 1 // 获取三角形类型
 2 
 3 public String GetTriangleType()  
4
{ 5 if(side1 < 1 || side1 > 100 || side2 < 1 || side2 > 100 || side3 < 1 || side3 > 100) 6 return "Sides value is out of range"; //边值超出范围 7 if(side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1) 8 return "Not a triangle"; //不能构成三角形 9 if(side1 == side2 && side2 == side3) //等边三角形 10 return "Equilateral"; 11 else if(side1 == side2 || side2 == side3 || side1 == side3) 12 //等腰三角形 13 return "Isosceles"; 14 else if(IsRtTriangle(side1, side2, side3)) //直角三角形 15 return "RtTriangle"; 16 else //一般三角形 17 return "Scalene"; 18 } 19 20 // 判断是否为直角三角形 21 private boolean IsRtTriangle(int a, int b, int c) 22 { 23 int a_2 = a*a; 24 int b_2 = b*b; 25 int c_2 = c*c; 26 27 if(a_2 + b_2 == c_2 || a_2 + c_2 == b_2 || b_2 + c_2 == a_2) 28 return true; 29 30 return false; 31 }

  

  测试数据方面,我运用了参数化测试,测试数据集合如下:

  

  前三个数据为三角形的三边,第四个boolean变量代表是否为直角三角形,用来测试Triangle类的IsRtTriangle方法,最后一个代表三角形种类,测试GetTriangleType方法。

  测试运行结果如下:

  

  可以看到40个测试用例全部通过!

 

  用eclemma执行结果如下:

  

  绿色代表全部执行过了

  

      黄色代表未完全执行

  

  红色代表未执行(这是Triangle类的main函数,在测试时未运行)

  最后测试统计如下:

  

     可以看到基本所有代码都执行过了。

 

posted @ 2016-03-18 13:49  马列神教  阅读(296)  评论(0编辑  收藏  举报