一、实验目的
本次实验目的是为了:
(1)熟悉软件测试工具Junit和Hamcrest以及Eclemma,以及其使用方法。
(2)编写软件测试中经典的三角形问题的代码,并且为其设计测试用例,用Junit来调试此程序。
二、实验内容
(1)安装Junit和Hamcrest
(2)安装Eclemma
(3)写一个java程序解决三角形问题,并且写出测试程序
三、实验环境
Junit 4.12、Hamcrest 1.3、Eclemma、Eclipse LUNA 4.4.2、OS X 10.11.3
四、实验过程描述
1,实验一:安装Junit和Hamcrest
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活。
此次实验中Junit和Hamcrest均为jar包,因此只需要将两个jar包加入build path即可。
右键项目,点击congfigure build path,出现下图界面:
点击add external jar,加入两个jar包。
加入jar包之后,可以建立junit test case文件,来编写测试程序,如下图:
2,实验二:安装Eclemma
Eclemma是一个开源的软件测试工具,可以在编码过程中查看代码调用情况、也可以检测单覆盖率。
在Eclipse的help选项中,点击install new software,把已经下载好的Eclemma装载到Eclipse中:
之后就会在菜单栏中出现如下图标,在测试的时候可以点击这个图标,进行代码调用情况的查看和分析。
3,实验三:三角形问题的java程序编写和测试
三角形问题的程序编写和测试用例的设计是软件测试中很经典的一个问题。
三角形问题是指,设计一个程序,可以判断给出的a,b,c三条三角形边值的三角形是哪种类型的三角形。此次试验简单的划分三角形的类型为等边三角形、等腰三角形和普通三角形。
因此程序设计的主要思路为,一个judge函数来负责判断三角形的类型,并且返回类别值,在主函数中判断返回的值并且在终端输出提示信息,同样a,b,c值的获取也是在主函数中。
判断函数中,根据三角形的特性,首先判断输入的值能不能组成三角形,其次判断如果其中两条边相等则为等腰三角形,如果进一步还有不同的另两条边相等,则为等边,如果二者都不是,则为普通三角形。
三角形问题的测试设计,采用了黑盒和白盒两种方法。
其中黑盒方法主要针对主函数中的显示信息问题进行,测试目的是观察主函数能否获取输入数据并且正确显示判断信息。测试结果如下:
其次使用白盒测试,使用Junit以及Eclemma工具来进行测试。
根据逻辑分支,共设计5个测试用例,分别涵盖每个逻辑分支,测试结果如下:
Eclemma测试覆盖结果如下:
五、实验总结
此次实验主要体验了junit以及elcemma工具,通过对软件测试经典的三角形问题的编程和测试,了解了测试原理和测试的主要方法。为今后对测试的深入研究做了铺垫。