Junit学习历程(1)

发表于:2008-06-25来源:作者:点击数: 标签:junitJunitJUnit历程学习
(Version Beta 1.0) Junit 工具用于单元测试的工具,是 极限编程 中必不可少的工具。 Java 开发 人员必须掌握的工具。 首先,在开发软件的过程中,风险是无处不在,从根本上讲,我们无法消除这些风险,但可以通过进行测试来降低风险,从而提高开发的 可靠性
(Version Beta 1.0)

Junit 工具用于单元测试的工具,是极限编程中必不可少的工具。Java开发人员必须掌握的工具。
首先,在开发软件的过程中,风险是无处不在,从根本上讲,我们无法消除这些风险,但可以通过进行测试来降低风险,从而提高开发的可靠性,以及最终软件的质量

那么,我们所讲到的测试的职责又是什么呢?测试最为重要的一点就是为了确保各开发阶段的开发质量,发现软件中存在的缺陷;然后是为了验证开发的产品是否符合用户的需求,即通过对用户使用过程的一些样本数据在测试过程中的反应来确定软件功能的可用性,从而改善存在的一些缺陷。

这里的缺陷是指与“软件需求说明书”不一致的地方,由于存在不一致,因此不能够满足用户的需要。

对于测试本身来讲,分为静态测试,即不需要运行程序,通过评审和其它非运行的手段来进行检查,主要检查是否满足一些标准,一些规范。动态测试是运行程序,来根据运行的状态来测试各部分功能以及情况。

从另外的角度,测试还有其它的分类,例如根据顺序来分类:
单元测试(Unit Testing),最为基本和重要的测试方法,又称为模块测试,由开发人员在开发过程中完成,需要100%达标
集成测试,又称为组装测试,确保模块之间的通讯与协作之间的运行无问题。
系统测试,包括外围的运行环境一起来测试。
验收测试,由客户来根据前期文档来进行的总体的测试,主要以静态测试为主。
回归测试。
此外还有其它角度的分类,如:
功能测试、结构测试、黑盒测试白盒测试等等,大部分测试相关书籍中有相关的论述。

一、下面我们详细的来讨论一下单元测试方面的内容。
1)关注范围,局限在单元模块之类(如,类,方法)
2)代码分析与测试
3)功能分析与测试
4)结构分析与测试
5)以错误为导向的分析与测试

单元测试是从模块或者类的内部来设计测试用例的,目的是为了发现模块内部可能存在的各种差错。主要根据详细设计说明书和程序清单来了解I/O条件和程序逻辑,采用白盒测试用例。能够对合理输入与不合理的都能够进行识别和处理。
从模块的角度来讲,一个完整的模块需要涵盖以下几个方面:模块接口、出错处理、局部数据结构、边界条件、独立路径等等。

A.模块接口的测试,在单元测试开始的时候就需要对模块进出的数据流进行检查,例如,调用模块的参数输入是否正确,本模块调用子模块时的传递的参数是否正确,全局变更在各模块是否一致等。
详细说明一下在做内外存交互时,需要考虑的问题主要有以下几方面:
<1>文件的属性是否正确(特别在Linux等系统 下)
<2>Open与Close语句是否正确
<3>缓冲区容量与记录长度是否匹配
<4>进行读写之前文件是否已经打开
<5>结束文件处理时,是否关闭了文件
<6>I/O错误的检查与处理

B.局部数据结构的测试
<1>数据类型说明是否正确以及一致
<2>是否存在使用未赋值或者未初始化的变量的情况
<3>初始值或者缺省值是否正确
<4>变更名称是否存在拼写错误

原文转自:http://www.ltesting.net