单元测试简介和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的试用方法。

最新文章

  1. Valid Parentheses 使用递归的解法
  2. Android接收短信
  3. cookie 和 session 的基础知识
  4. 【转】清理Kylin的中间存储数据(HDFS & HBase Tables)
  5. HDU 4832 Chess(DP+组合数学)(2014年百度之星程序设计大赛 - 初赛(第二轮))
  6. 博客Mac桌面编辑器-cnblogs
  7. Ubuntu下sqlite3的安装及使用
  8. 2015年NEUACM一月月赛题解
  9. 13 - NSURLConnection
  10. 18-UIKit(Core Animation、广播设计模式)
  11. Linux中iptables设置详细
  12. Nodejs express 获取url参数,post参数的三种方式
  13. [AHOI2012]树屋阶梯
  14. 4月22日MySQL学习
  15. Linux安装 火速入门
  16. AtCoder [Dwango Programming Contest V] E 动态规划 多项式
  17. node安装及配置之windows版
  18. Selenium环境搭建---C#
  19. Git学习系列之Windows上安装Git详细步骤(图文详解)
  20. 比较两个Excle表格的修改内容

热门文章

  1. HTTPS 性能优化 -- 基于协议和配置的优化
  2. 再看Scrapy(1) 基本概念
  3. Visual Studio Nuget还原步骤
  4. ng 自定义服务
  5. ng json格式的序列化和反序列化
  6. Hihocoder 1128 二分·二分查找
  7. HWOJ-求字符串最后一个单词的长度
  8. LOJ103 子串查找
  9. Asp.Net构架(Http请求处理流程) - Part.1
  10. Oracle cursor_sharing 参数 详解