单元测试简介和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. php中生成树形菜单

    废话不多说!上代码 class tree { /** * 生成树型结构所需要的2维数组 * @var array */ var $arr = array(); /** * 生成树型结构所需修饰符号,可 ...

  2. Juint 单元测试(1)

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

  3. del语句

    5.2. del 语句 有个方法可以从列表中按给定的索引而不是值来删除一个子项: del 语句.它不同于有返回值的 pop() 方法.语句 del 还可以从列表中删除切片或清空整个列表(我们以前介绍过 ...

  4. 剑指offer-第五章优化时间和空间效率(数组中的逆序对的总数)

    题目:在数组中如果两个数字的前面的数比后面的数大,则称为一对逆序对.输入一个数组求出数组中逆序对的总数. 以空间换时间:思路:借助一个辅助数组,将原来的数组复制到该数组中.然后将该数组分成子数组,然后 ...

  5. 【JQuery】学习

    JavaScript参考 JQuery 学习总结及实例 1.JQuery概念 A.Jquery是一个优秀的Javascript框架.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器,jQuery ...

  6. [ArgumentException: 可能证书“CN=JRNet01-PC”没有能够进行密钥交换的私钥,或者进程可能没有访问私钥的权限。有关详细信息,请参见内部异常。]

    堆栈跟踪: [CryptographicException: 密钥集不存在. ] System.Security.Cryptography.Utils.CreateProvHandle(CspPara ...

  7. LeetCode Design TinyURL

    原题链接在这里:https://leetcode.com/problems/design-tinyurl/description/ 题目: How would you design a URL sho ...

  8. 对django整个网站搭建文件的总结

    1.比方说现在是写一个使用HTTP 2.0的HTTP服务器,在不改变现有程序配置的情况下,需要重新编译HTTP服务器,比方说,用的是Nginx服务器,需要隐藏服务器版本,如果想要小绿锁 也就是网站安全 ...

  9. Java面试题:栈和队列的实现

    面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的栈,要 ...

  10. js对字符串进行编码方法总结

    在用javascript对URL字符串进行编码中,虽然escape().encodeURI().encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤.但后两者是 ...