单元测试简介和Junit的使用介绍


Junit是Java开发中用来支持单元测试的一个软件,这里对它的基本情况、使用方法等做简单的介绍。

提纲

1、软件测试

2、单元测试概述

3、单元测试的具体做法

4、Junit概述

5、Junit使用方法介绍

6、测试驱动的开发模式

1、软件测试概述

==============

在软件开发中,开发人员做完软件的代码之后,就要交付给测试人员对开发出来的功能做详细的测试,以保证质量。

在软件生产中的测试一般包括:单元测试(Unit Test)、模块功能测试(Functional Test)、多个模块的集成测试(System Integration Test)、整个系统的系统测试(System Test)、用户验收测试(User Acceptance Test)。

这个五个测试环节中,单元测试是一种白盒测试方法,一般是由开发人员自己对自己完成的功能做单元测试,测试的对象是单个软件模块内部的类,同一个软件模块,是由多个类组成的,单元测试就是写测试类(Test Class)来对每一个类进行测试。

单元测试的想法挺好的,可是实践中,中国的开发人员一般是没有时间写单元测试的,包括著名的百度、阿里巴巴的工程师,都亲口说过,根本没时间写单元测试,也不会有人在乎单元测试。因为每天的时间都很紧张,连业务功能都实现不完,还写单元测试?

模块功能测试,指的是对一个软件模块的外部功能进行测试,就是把这个模块当成一个黑箱,对它的功能进行测试。这种测试一般肯定最先是由模块的开发人员自己做的,然后请专职测试人员来做。

集成测试,指的是相关之间有密切关系的多个模块联合起来进行测试,主要是为了测试多个模块之间的交互和协同,业界也有人把这种测试叫联调。这种一般是先由多个模块的开发负责人一起测试,然后请专职测试人员再测。

系统测试,指的是对一个软件系统的全部模块集成在一起,把整个系统当成一个黑箱来测试它的外部行为,这也是一种集成测试。一般由专业的测试人员完成。

UAT测试,指的是让用户用这个软件,以达到测试验收软件的目的。在软件公司也可以看到alpha/beta测试,就是这类测试,这种测试一般由用户来完成,或者由公司请来的用户在真实场景下使用软件,在互联网业这种测试就是软件上线了请用户来使用了。

2、单元测试概述

==============

这里对单元测试进行介绍。

单元测试是什么呢?

单元测试是开发人员在开发过程种对自己开发的类或者函数(总之,是软件中最小的单元)进行的测试,这种测试是边开发正式代码,边开发测试代码,边测试的。

它是开发者编写的一小段代码,用于检测被测代码的一个很小的、很明确的功能是否正确,这里的很小的、很明确的功能指的就是最小的软件单元,在面向对象中是类,在面向过程中是函数。

通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

举例说明一下。比如,当你把一个很大的值放入一个有序list中去的时候,你想确认一下该值确实出现在了list的尾部。又比如,你从一个长字符串中删除了匹配某种模式的字符之后,你想确认字符串中确实不再包含这些字符了。对这些细小部分的测试就是单元测试。

单元测试的好处在哪里呢?

单元测试可以让开发人员更高效地写出质量更好地程序。

单元测试是由程序员自己来完成,并且最终受益地也是程序员自己,因为单元测试关注地是软件内部地每一个小功能点是否正确,软件内部地功能点是否正确是由程序员来保证的。当然只有软件内部地每个功能点都正确了,软件地外部行为才可能正确。

单元测试的设计目的并不是为了获得一些更好地整体质量,而是为了获得软件模块内部的质量而进行的测试。也就说说,它并不是一个针对最终用户、项目经理和开发组长的工具(他们关注地是软件模块或者整个软件外部地行为),而是正对软件模块的具体开发人员的一个工具。

3、单元测试的具体做法

===================

单元测试的具体做法的一般性概述,进而引出在Java开发领域的单元测试方法。

4、Junit概述

=============

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立。通过多年的发展,逐渐成为源于Kent Beck的xUnit家族中最为成功的一个测试框架。

多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

目前最新的版本是Junit5(截至2018年9月)。

5、Junit使用方法介绍

=================

6、测试驱动的开发模式

====================

单元测试能很好的保证软件内部的类和函数的正确性,从而最终很好地保证了软件的整体质量,因此,它得到了开发人员、开发组长、项目经理等人员的一致认可。

于是有人提议把它做到极致(这就是极限编程的思想,就是说,如果一个做法是很好的,那么我们就把它发挥到极致,xp,extreme programming),就在这样,测试驱动的开发模式就产生了。

测试驱动的开发模式,英文全称Test-Driven Development,简称TDD。它要求在编写某个功能的代码之前先编写测试代码,也就是针对这个软件单元的单元测试代码,然后才开始编写使测试能够通过的功能代码,通过测试来推动整个开发的进行。

测试驱动开发编写的测试一般是单元测试,而且由开发者编写,针对单个模块容易做到各个情景的测试覆盖。

参考资料

1、https://www.cnblogs.com/ysocean/p/6889906.html

2、《单元测试之道Java版,使用Junit》

3、https://baike.baidu.com/item/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/3328831?fr=aladdin

4、https://blog.csdn.net/xiyanggudao/article/details/76315271

5、https://www.cnblogs.com/ysocean/p/6889906.html,通过这个详细了解Junit的试用方法。

单元测试简介和Junit的使用介绍的更多相关文章

  1. 单元测试系列:JUnit单元测试规范

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...

  2. 【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

    [嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )     一. 内存 ...

  3. Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

    一. Spring 框架简介及官方压缩包目录介绍 主要发明者:Rod Johnson 轮子理论推崇者: 2.1 轮子理论:不用重复发明轮子. 2.2 IT 行业:直接使用写好的代码. Spring 框 ...

  4. Python单元测试简介及Django中的单元测试

    Python单元测试简介及Django中的单元测试 单元测试负责对最小的软件设计单元(模块)进行验证,unittest是Python自带的单元测试框架. 单元测试与功能测试都是日常开发中必不可少的部分 ...

  5. Java单元测试 Junit TestNG之介绍

    Junit是Java中默认的单元测试框架,通过注解的方式去识别测试方法 JUnit4 JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且 ...

  6. .net持续集成单元测试篇之单元测试简介以及在visual studio中配置Nunit使用环境

    系列目录 单元测试及测试驱动开发简介 什么是单元测试 单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验.单元测试几乎都是用单元测试框架编写的.单 ...

  7. junit测试的介绍和应用

    目录 1.junit测试简介 2.运行环境 3.测试过程 1.junit测试简介 JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent ...

  8. TDD学习笔记【二】---单元测试简介

    大纲 Testing 的第一个切入点:单元测试. 本篇文章将针对单元测试进行简介,主要内容包含了5W: Why What Where Who When 而How 的部分,属于实现部分,将于下一篇文章介 ...

  9. Java之单元测试工具(Junit)

    Junit是Java单元测试框架,一般Eclipse里面会集成这个Junit4测试工具 既然是测试工具,虽然开发用得比较多,但作为测试人员也需要具备会Junit测试的思想,况且技多不压身 这里简单介绍 ...

随机推荐

  1. New Concept English three (31)

    35w/m 45 True eccentrics never deliberately set out to draw attention to themselves. They disregard ...

  2. 简要谈谈javascript bind 方法

    最近去参加了场面试,跟面试官聊了很多JS基础上的东西,其中有个问题是谈谈对apply.call.bind的理解和区别.顿时一愣,apply.call我知道,经常用的东西,bind是什么鬼!!!好像见过 ...

  3. Juint 单元测试(1)

    Junit 是一个基于Java语言的回归单元测试框架.是白盒测试的一种技术,记住这些就可以了. 为项目添加Junit 1 右键项目名称选择“Properties”,在弹出的窗体中选择“Java Bui ...

  4. VS调试配置外网可访问

    1.首先找到项目的配置文件夹(一般是隐藏的) 2.在里面的config文件夹找到applicationhost.config配置文件,打开,在sites节点找到你项目的那个site配置,新建一个绑定:

  5. 官方:MySQL 5.7 并行复制实现原理与调优 | InsideMySQL(转载)

    MySQL 5.7并行复制时代 众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能, ...

  6. Django之搭建学员管理系统

    GET请求传参数的方式: /xxx/?k1=v1&k2=v2 ? 前面的是URL ?后面的是请求的参数 多个参数之间用&分隔 POST请求传数据: 是放在请求体里面的 表结构设计. - ...

  7. Requst Servervariables

    Request.ServerVariables("Url") 返回服务器地址 Request.ServerVariables("Path_Info") 客户端提 ...

  8. 【Python系统学习】基础篇

    这次真的是最后一次了!第三次滚Python的基础.走了太多弯路.认真一点!菜鸟! 教程 转义字符 \ 可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\ ...

  9. HihoCoder1127 二分图三·二分图最小点覆盖和最大独立集

    二分图三·二分图最小点覆盖和最大独立集 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上次安排完相亲之后又过了挺长时间,大家好像都差不多见过面了.不过相亲这个事不是说 ...

  10. linux之使用samba实现文件共享

    早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS开源文件共享程序,NFS是一个能够将多台L ...