首页 > 代码库 > 软件测试基本方法(五)之单元测试

软件测试基本方法(五)之单元测试

这是我们最亲密的测试,我们平常写课程设计,当然谈不上商业级的测试,往往就一个单元测试占据了测试。有些人习惯先搭起框架,然后再单元测试;也有些人在完成了一个功能模块后即着手进行该模块的测试。但殊途同归,要保证软件系统的质量,首先就要保证构成系统的单元的质量,这些单元可能是一个对象、类和函数,也可能是更大的单元——组件或模块。


(1)为什么要进行单元测试:

软件中存在的错误发现得越早,则修改和维护的费用就越低,而且难度越小,单元测试是早期抓住这些错误的最好时机。


(2)定义:

单元测试是对软件基本组成单元(如函数、类的方法等)进行的测试,而且软件单元是在于程序其他部分相隔离的情况下独立测试。


(3)测试时机:

一般在代码完成后由开发人员完成,QA(质量管理员)人员辅助。


(4)测试目标:

  • 信息能否正确地流入和流出单元
  • 在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响
  • 在为限制数据加工而设置的边界处,能否正确工作
  • 单元的运行能否做到满足特定的逻辑覆盖
  • 单元中发生了错误,其中的出错处理措施是否有效


(5)测试任务:

  • 检查每一条独立执行路径的测试。保证每条语句被至少执行一次
  • 检查局部数据结构完整性
  • 检查模块接口是否正确
  • 检查临界数据处理的正确性
  • 预见、预设的各种出错处理是否正确有效

(6)测试依据:
软件详细说明书

(7)静态测试:
静态测试技术是单元测试中最重要的手段之一,它常采用代码审查的方法。据有关统计,代码中60%以上的缺陷可以通过代码审查发现出来。

代码审查:
  • 代码走查:非正式会议,以开发人员为主
  • 会议审查:正式会议,项目组成员包括测试人员,利用缺陷检查表,提前准备好文档和工具
(8)动态测试:
  • 驱动程序:用以模拟被测模块上级模块,能够调用被测模块,在测试过程中,驱动模块接受测试数据,调用被测试模块并把相关的数据传送给被测模块。(我认为JUnit就是基于驱动的,因为我们要测一个类,是通过JUnit来模拟类方法的执行,通过JUnit调用类方法并传递数据)
  • 桩程序:用以模拟被测模块工作过程中所调用的下层模块