JUnit单元测试

一、单元测试的概念和目的

什么是单元测试?单元测试是在开发过程中要进行的最低级别的测试活动,是需要与开发同步进行的工作,它由程序员自己完成,属于编码的一部分。单元测试是为了确保类的某一个特定方法能成功执行一系列特定的任务,每个测试都确保只要给定输入,方法将输出预期的结果。单元测试是对软件基本组成单元进行的测试,而且软甲单元是在与程序的其他部分相隔离的情况下进行独立的测试。

单元测试测什么?1.函数、过程或完成某一功能的程序块 2.类的成员函数 3.核心方法及可能引入错误的地方 4.特定的边界条件 5.复杂算法 6.复杂的业务逻辑 7.需求变动频繁之处

软件系统是由许多单元构成的,这些单元可能是一个对象或是一个类,也可能是一个函数,也可能是一更大的单元——组件或模块。要保证软件系统的质量,首先就要保证构成系统的单元的质量,也就是要开展单元测试活动。通过充分的单元测试,发现并修正单元中的问题,从而为系统的质量打下基础。

二、JUnit的概念

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

三、JUnit的特性

JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。

它包括以下特性:

(1)可以使测试代码与产品代码分开,更有利于代码的打包发布和测试代码的管理。

(2)针对某一个类的测试代码,以较少的改动便可以应用另一个类的测试,JUnit提供了一个编写测试类的框架,使测试代码的编写更加方便。

(3)易于集成到程序中的构建过程中,JUnit和Ant的结合还可以实施增量开发。

(4)JUnit的源代码是公开的,可以进行二次开发。

(5)Junit具有很强的扩展性,可以方便地对JUnit进行扩展。

四、总结

检验各单元模块是否被正确地编码,即验证代码和软件系统设计的致性是单元测试的主要目标,但是单元测试的目标不仅是测试代码的功能性,还需确保代码在结构上可靠且健壮,能够在各种条件下(包括异常条件,如异常操作和异常数据)给子正确的响应。如果这些系统中的代码未被适当测试,则其弱点可被用于侵入代码,并导致安全性风险(例如内存泄漏或被窃指针)以及性能问题。执行完全的单元测试,可以比较彻底地消除各个单元中所存在的问题,避免将来功能测试和系统测试问题查找的困难,从而减少应用级别所需的测试工作量并且彻底减少发生误差的可能性。概括起来,单元测试是对单元的代码规范性、正确性、安全性、性能能等进行验证,通过单元测试。而Junit是测试执行的开始阶段,即首先对每一个程序模块进行单元测试,以确保每个模块能正常工作。单元测试是程序员对自己的代码进行测试后,所以是大多是白盒测试。JUnit的最大作用就是可以方便的进行单个方法的测试。可与其他框架整合方便了JUnit的使用。

软件测试2gkd的更多相关文章

  1. 小公司0成本基于Pythony的单元\GUI\Web自动化\性能的几个开源软件测试工具

    以下是当前流行的几款适合小公司0成本的几个开源软件测试解决方案: 1.单元测试 a.unittest :Python自带的单元测试框架 b.pyunit:Junit的Python版本 2.使用Pyho ...

  2. Anliven - 基础知识梳理汇总 - 软件测试

    基础知识梳理 - 软件测试 - 概念 基础知识梳理 - 软件测试 - 分类 基础知识梳理 - 软件测试 - 流程 基础知识梳理 - 软件测试 - 用例 基础知识梳理 - 软件测试 - 方法 基础知识梳 ...

  3. IEEE829-2008软件测试文档标准介绍

    1998版中定义了一套文档用于8个已定义的软件测试阶段: 测试计划: 一个管理计划的文档 包括:   测试如何完成 (包括SUT的配置).   谁来做测试   将要测试什么   测试将持续多久 (虽然 ...

  4. 自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00:23 185人阅读 评论(0) 收藏

    1. QTP简介 1.1QTP功能与特点 QTP是QuickTest Professional的简称,是一种自动化软件测试工具.在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试 ...

  5. <<软件测试实战>>读书笔记

    软件测试基础 软件的复杂度已经超越了人的理解能力 1. 虽然高抽象的层次语言,程序框架,程序库等提高了人的生产力,但是还是需要开发者深入理解细节,可以减少开发时间,但是无法减少开发者学习整个技术栈的时 ...

  6. 软件测试基本理论-IBM模式

    软件测试基本理论(1) IBM生产模式 1   参考书目 <IBM-从菜鸟到测试架构师-一个测试工程师的成长日记> 出版社:电子工业出版社 印次:2013年6月 作者:IBM主要工程师 2 ...

  7. 安卓下如何使用JUnit进行软件测试

    软件测试作为程序员必备的一项技能是决定软件开发周期长短以及软件运行成败的关键,可以说好的软件不是代码写得好而是有效的测试决定的.本文将介绍在android下利用eclipse进行开发时如何使用JUni ...

  8. 关于软件测试人员能力模型的建立(from知乎)

    转自: http://www.zhihu.com/question/20254092 测试思维方面:1.测试基础理论(测试流程.测试的基础知识)2.测试用例设计方法论(黑盒.白盒)3.软件质量体系(建 ...

  9. Web 软件测试 Checklist 应用系列,第 1 部分: 数据输入

    Web 软件测试 Checklist 应用系列,第 1 部分: 数据输入 本文为系列文章"Web 软件测试 Checklist 应用系列"中的第一篇.该系列文章旨在阐述 Check ...

随机推荐

  1. 阿里云入坑指南&&nodejs 安装配置

    买了阿里云1G1核1M的机器(800元,3年) 登录阿里云-实例-选择实例所在地区-重置密码 用公网IP ssh连接 #升级CentOS yum -y update #安装or更新组件 yum -y ...

  2. JVM性能调优总结

    引自其它博客 : https://www.cnblogs.com/donaldlee2008/p/5469685.html 注 : 该条同样适用于Tomcat调优 调优配置说明 堆大小设置JVM 中最 ...

  3. gdb调试原理及qemu中的gdbserver

    (一)gdb调试原理 此部分转自:https://blog.csdn.net/u012658346/article/details/51159971     https://www.cnblogs.c ...

  4. @RequestParam @PathVariable

    1.Request参数 在访问各种各样网站时,经常会发现网站的URL的最后一部分形如:?xxxx=yyyy&zzzz=wwww.这就是HTTP协议中的Request参数,它有什么用呢?先来看一 ...

  5. (2.1)mysql升级与降级

    (2.1)mysql升级与降级 转自:深入浅出mysql数据库开发.优化与管理第二版 1.mysql升级 2.mysql降级

  6. Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'系列一:

    从库报这个错误:Got fatal error 1236 from master when reading data from binary log: 'Could not find first lo ...

  7. input type = file 在部分安卓手机上无法调起摄像头和相册

    移动端H5web 用input type = file 在部分安卓手机上无法调起摄像头拍照,有的也无法访问相册而是直接访问了文档,解决办法是: 加上 accept = "image/*&qu ...

  8. db2一、查询

    1.查询单条数据( fetch 放在最后) select * from x where 1=1 order by id fetch first 1 rows only

  9. dede织梦手机站m文件夹功能基础详解

    织梦2015年6月8日更新后,就添加了很多针对手机移动端的设计,最大的设计就是添加了生成二维码的织梦标签和织梦手机模板功能,织梦更新后,默认的 default模板中就包含手机模板,所以我们可以给织梦网 ...

  10. Ubuntu14.04 安装 Sublime Text 3

    Linux下安装,一种办法是从官网下载 tar.bz ,手动安装.另一种是使用apt-ge安装 这里介绍用 apt-get 自动安装方法: 1.添加sublime text 3的仓库: sudo ad ...