#软件测试基本概念-单元测试

##1 概念

###1.1 定义 单元测试又称模块测试,是最小单位的测试,其依据是详细设描述,对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。
单元测试多采用白盒测试技术,系统内多个模块可以并行地进行单元测试。

###1.2 单元测试的对象

  • 结构化程序,单元测试所说的单元是指函数。
  • 面向对象程序,单元测试的单元一般是指类。但从实践来看,以类作为测试单位,复杂度高,可操作性较差,仍然主张以函数作为单元测试的测试单位,但可以用一个测试类来组织某个类的所有测试函数。
  • 简单实用高效才是硬道理。

###1.3 单元测试的时间 单元测试当然是越早越好,通常在编码阶段进行

###1.4 单元测试的人员 绝大部分情况下,由开发人员做单元测试的设计和执行。

###1.5 单元测试的内容 单元测试

####1.5.1 模块接口 这是对模块接口进行的测试,检查进出程序单元的数据流是否正确。模块接口测试必须在任何其它测试之前进行。
模块接口测试至少需要如下的测试项目:

  • 调用所测模块时的输入参数与模块的形式参数在个数、类型、顺序上是否一致;
  • 所测模块调用子模块时,它输入给子模块的参数与子模块中的形式参数在个数、类型、顺序上是否一致;
  • 是否会修改只是作为输入值的形式参数;
  • 调用标准函数的参数在个数、类型、顺序上是否正确;
  • 全局变量的定义在各模块中是否一致。

####1.5.2 局部数据结构 在模块工作过程中,必须测试模块内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生错误。
对于局部数据结构,应该在单元测试中注意发现以下几类错误:

  • 变量从来没有被使用,包括可能别的地方使用了外部变量或函数。
  • 变量没有初始化。
  • 错误的类型转换。
  • 数组越界。
  • 变量或函数名称拼写错误,包括使用了外部变量或者函数。

####1.5.3 边界条件测试 主要检查临界数据是否正确处理。

  • 普通合法数据是否正确处理;
  • 普通非法数据是否正确处理;
  • 边界内最接近边界的(合法/非法)数据是否正确处理。

####1.5.4 独立路径测试 在单元测试中,最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。
常见的错误有:

  • 死代码
  • 错误的计算优先级;
  • 精度错误,包括比较运算错误、赋值错误;
  • 表达式的不正确符号,包括>,>=,=,==,!=;
  • 循环变量的使用错误,包括错误赋值。

####1.5.5 出错处理 测试出错处理的重点是模块在工作中发生了错误,其中的出错处理设施是否有效。
检验程序中的出错处理可能面对的情况有:

  • 是否检查错误出现,包括资源使用前后、其它模块使用前后;
  • 出现错误是否进行处理,包括抛出错误、通知用户、进行记录。
  • 错误处理是否有效,包括在系统干预前处理、报告和记录的错误都应真实详细。

###1.6 相关概念

  • 驱动模块(Drive) 用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。
  • 桩模块(Stub) 用来模拟被测模块工作过程中所调用的模块。它们一般只进行很少的数据处理。
转载请注明出处 http://www.xiangguo.li/software_test/2014/08/06/software_test6

Categories: Tags:

相国 walter

一个热爱coding的青年

blog comments powered by Disqus