软件测试技术第一次试验之——JUnit的安装与使用

众所周知,在一个大型的软件项目中,测试是必不可少的。传统的测试方法往往要自己编写测试函数再结合测试用例进行验证,这样会显得比较繁琐。所以我们可以使用JUnit框架进行测试。

使用junit的好处就是这个结果是否正确的判断是它来完成的,我们只需要看看它告诉我们结果是否正确就可以了,在一般情况下会大大提高效率。

下图为传统测试方法与JUnit测试方法的代码量对比。

接下来就是安装JUnit了

前提条件:电脑已安装eclipse,已配置java环境。

步骤一:下载JUnit与Hamcrest对应的jar包(注:Hamcrest是JUnit底层的匹配工具)

必须文件如图所示:

接下来将这些文件导入对应项目中。(注:为了项目的可迁移性这里暂时不添加到全局变量。)

在Eclipse中新建项目 (File - new - javaproject)

建完项目之后右键点击项目,选择Build Path - Configure Build Path

然后点击Libraries - Add External JARs,选择你刚才下载的三个jar包,点击打开。

导入完成如图所示

查看左侧项目中应该多出来这三个jar包,至此JUnit项目环境已配置完成。

步骤二:安装测试覆盖率工具 Eclemma 

在Eclipse上方菜单栏中点击Help,选择Eclipse Marketplace,在搜索栏中输入Eclemma,搜索出来后点击Install安装即可。

如果Eclipse上方导航栏出现这样一个小标记说明安装成功:

至此,环境配置已全部完成,下面来编辑一个小程序来测试一下Junit。

步骤三:程序测试

从最简单的测试加法减法开始,便于新手理解。

在项目下src文件夹下新建一个包(package),这里我命名为cn.tjuscs.st,大家可以自行命名。

在项目下新建类(class),我命名为MyTest,大家可以自行命名。

下面为代码:

package cn.tjuscs.st;

public class MyTest {

    private int result;

    public void add(int a, int b)
    {
        result = a + b;
    }

    public void substract(int a, int b)
    {
        result = a - b;
    }

    public int getresult()
    {
        return result;
    }

}

很简单的加法与减法函数,相信大家都可以看得懂。

然后右键点击MyTest.java,选择new-JUnit Test Case,点击next选择函数add和substract后点击finish。这里不选择也可以,后续自行编辑。

然后eclipse会生成一个MyTestTest.java的类,表示这个是测试类。

下面是编辑后MyTestTest.java的代码:

package cn.tjuscs.st;

import static org.junit.Assert.*;

import org.junit.Test;
import org.junit.Ignore;

public class MyTestTest {

    MyTest t=new MyTest();

    @Test
    public void testAdd() {
        t.add(1,4);
        assertEquals(5, t.getresult());
    }

    @Test
    public void testSubstract() {
        t.substract(9,4);
        assertEquals(5, t.getresult());
    }

}

代码解释:@Test告诉JUnit接下来进行测试,assertEquals(期望值,测试用例);是JUnit自带的函数用来检测是否与预期相符。

因为1+4=5,9-4=5,这里两个测试都没有出问题,所以运行结果应该是一片绿色。

运行方法:在这个文件下点击右键-run as-junit test

运行结果:

现在修改一下程序,把程序中的9换成6,按ctrl+s保存完再运行一下。

这里就可以看到testSubstract这个函数出错了,和预期不符。

再来试一下覆盖率测试工具eclemma:

点击刚才装完eclemma生成的小图标旁边的小箭头,选择MyTestTest,这里可以看到结果如下:

红色代表未执行,黄色代表条件没有全部执行(通常适用于if语句等),绿色代表执行过了。

如果这几次运行结果和图中相符,那么说明之前的步骤都没有问题了,接下来进行编写一个简单的三角形的测试程序。

很简单的代码,只是为了了解一下junit的使用方法,所以就不添加其他检测与判断,这里就不再赘述了。

TestTriangle.java:

package cn.tjuscs.st;

public class TestTriangle {

    public int getkind(int a, int b, int c)
    {
        int kind = 0;
        if (a+b<=c || a+c<=b || b+c<=a || a<=0 || b<=0 || c<=0)
            kind = -1;    //-1代表三角形不成立
        else if (a==b && b==c)
            kind = 1;  //1代表等边三角形
        else if ((a==b && a!=c) || (a==c && a!=b) || (b==c && b!=a))
            kind = 2; //2代表等腰三角形
        else if (a!=b && b!=c)
            kind = 3; //3代表普通三角形

        return kind;
    }

}

TestTriangleTest.java:

package cn.tjuscs.st;

import static org.junit.Assert.*;

import org.junit.Test;

public class TestTriangleTest {

    TestTriangle t = new TestTriangle();

    @Test
    public void test_not_a_triangle() {
        assertEquals(-1,t.getkind(1,2,3));
    }
    @Test
    public void test_equilateral() {
        assertEquals(1,t.getkind(2,2,2));
    }
    @Test
    public void test_isosceles() {
        assertEquals(2,t.getkind(2,2,3));
    }
    @Test
    public void test_scalene() {
        assertEquals(3,t.getkind(2,3,4));
    }

}

运行结果:

这里四个函数全部运行正确,符合预期。

总结:作为软件开发人员,在大型项目中测试往往是一项工作量相当大的事情。如何正确地利用工具提高效率是作为一个程序员所必须知道的。JUnit就是一个相当好的工具,虽然成不了巨人,但是我们应该站在巨人的肩膀上看的更远。

时间: 2024-10-13 02:21:23

软件测试技术第一次试验之——JUnit的安装与使用的相关文章

软件测试学习日志———— round 2 Junit+intellj idea 安装及简单的测试使用

今天是软件测试的上机,主要内容是对junit的安装以及对一个简单类的测试实践.老师推荐用eclipse,但是我原来一直在 用intellj Idea,所以我试了试intellj Idea对junit的安装使用.下面介绍过程. 安装: intellj Idea 自带了junit模块,所以安装起来很简单. 首先,打开intellj Idea,双击shift键,搜索plugins,点击下图中画红线的button. 进入plugins后,搜索junit,选中下面画红圈插件后面的对勾,然后确定并重启int

软件测试第一次实验: junit, hamcrest and eclemma.

junit, hamcrest and eclemma. a)     junit的安装 步骤: 1. 从http://www.junit.org/ 下载junit相应的jar包: 2. 在CLASSPATH中加入JAR包所在的路径,如E:\Java\jar\junit\junit-4.10.jar: 3. 将junit-4.10.jar加入到项目的lib文件夹或者Libaries中: 4. Window -> Preference -> java -> JUinit(或者Window

软件测试技术的未来【转】

"测试已死"的观点在业内仍然存在着争议,很多公司缩减了测试人员,开发测试比屡创新高.本文旨在通过介绍软件测试的新趋势和新技术来展示软件测试行业面临的机遇与挑战,为软件测试工程师的职业规划提供参考. 安全测试 从孟加拉国银行8100万美元被黑客成功盗取到美国民主党邮件泄露事件可以看出,网络安全事件已经被推到了风口浪尖.随着物联网逐步普及,智能家居.汽车电子等设备的网络化水平大幅提升.但物联网的安全却不容乐观,很多中小企业往往忽视安全防护.开源软件的源代码公开,黑客可以通过阅读源代码更容易

软件测试技术树

软件测试技术树,今天翻论文,发现一张图[1],分享给大家: 实际上,软件测试,简单分类,可以分为功能测试,非功能测试,性能测试,其他测试. 1.功能测试 黑盒测试.白盒测试 2.非功能测试 安装测试.安全测试.兼容性测试等 3.性能测试 负载测试.压力测试.容量测试 4.其他测试 文档测试.UI测试 而软件测试的周期是:测试计划.设计测试用例.开发测试脚本.执行(手动.自动).评估.共五部. 参考文献 [1]单锦辉, 姜瑛, 孙萍. 软件测试研究进展[J]. 北京大学学报: 自然科学版, 200

软件测试技术

性能测试: 性能测试如果进行得太晚,会给项目带来巨大的挑战,在大并发用户访问的情况下系统崩溃,需要重新调整系统的架构设计,大量的代码需要重构,并会带来大量功能上的不稳定和大量的bug.所以性能测试不应该只是一个后期的测试活动,应该贯穿整个软件的生产过程,从单元测试就开始:代码的效率评估和数据库的优化. 网站响应时间和用户的接受时间: 响应时间在4秒以内,大部分用户可以接受:在4-9秒,30%的用户会选择离开:8-9秒,60%的用户选择离开:超过10秒,90%的用户会离开. 业务数据量的估算,在一

《软件测试技术》课程第七周随笔

软件测试第二次试验 软件测试第二次试验为白盒测试,使用了单元测试 1. 实验准备 Windows 8.1,Visual Studio Ultimate 2013,被测试软件(Is it a prime number?) 2. 实验步骤 ①使用Windows8.1系统,安装好Visual Studio Ultimate 2013和被测试的软件Is it a prime number及其源代码. ②右键单击解决方案,选择添加→新建项目,在新建项目的对话框中选择已安装→Visual C#→Window

软件测试技术入门

软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求.预先定义的不一致性. 简介 软件测试技术-软件测试的分类 1.从是否需要执行被测试软件的角度分类(静态测试和动态测试). 2.从测试是否针对软件结构与算法的角度分类(白盒测试和黑盒测试). 3.从测试的不同阶段分类(单元测试.集成测试.系统测试.验收测试). 2主要步骤 1.测试计划 2.测试设计与开发 3

用javascript技术读取注册表中软件安装位置并启动本地软件

1.首先读取注册表中本地软件安装的位置,如果未安装则无就跳转到下载页面. 2.启动软件,关闭页面. 3.如报错提示. <SCRIPT language=javascript>  <!--   function killErrors(){  alert("请将您浏览器Internet选项中的“对没有标记为安全的ActiveX控件进行初始化和脚本运行”设置为“启用”!/n/n然后刷新本页登陆!");  return true;}   window.onerror = ki

软件测试技术第一周课堂随笔记录

写在前,这是软件测试技术的课堂随笔,记录了一些在课上所阐述的内容. 一.由于是第一周课,免不了讲起软件测试的定义:什么是软件测试. 软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求.预先定义的不一致性.-----------------百度百科. 个人的理解暂时就是:1.找bug.2.找出需求与实际的差别. 二.软件测试常见测试方法: 从测试是否针对软件结