background image

计算机软件测试技术浅谈

 摘要:随着人们对软件质量越来越重视,使得作为保证软件质量重要手段之一的软件测
试也越来越引起人们的关注。本文简述了软件测试的定义等基本概念,指出了软件质量保证
与软件测试间的关系,简要概括了

3 种软件测试用例的生成技术,介绍了软件测试所使用

的相关技术。
  关键词:质量保证;测试用例;黑盒测试;白盒测试
\  一、软件测试的概念
  软件测试理论在

1975 年由 Good enough 首次提出,尽管当时对

“软件测试”的真正含义

还缺乏共识,但这一词条已经频繁出现。

1982 年,第一次软件测试技术大会在美国北卡莱

纳大学召开,随后

“质量”的号角开始吹响。

  人们对软件测试的定义不断演化,

IEEE 标准 610.12-1990,

“软件工程专门术语的 IEEE

标准词汇表

”将软件测试进行了这样的定义:

  在指定的条件下操作测试系统或组件,观察或记录结果,并对测试系统或组件的不同
方面做出评估的过程。
  (一)应用目标

/特性

  

1.可靠性测试:软件系统在规定的时间内及特定的环境条件下,完成规定功能的能力。

  

2.安全性测试:验证软件系统的安全服务和识别潜在安全性缺陷的过程。

  

3.适用性测试:在指定使用条件下,产品被理解、学习、使用和吸引用户的能力。

  

4.健壮性测试:指软件系统在异常输入或异常动作情况下的容错和恢复能力。

  

5.功能测试:根据规格说明书对产品的各功能进行验证,检查产品是否达到用户要求

的功能。
  

6.性能测试:验证软件系统是否达到用户提出的性能指标,同时发现系统中存在的性

能瓶颈,目的在于优化系统。
  (二)目的
  软件测试的目的在于发现错误。通俗的讲,从用户的角度出发,就是希望通过软件测试
暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品;从软件开发者的角度出发,则
希望软件测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的
要求,确立人们对软件质量的信心。
  二、软件质量保证与软件测试
  人们对计算机的依赖程度与日俱增,市面上软件的数量呈爆炸性的增长,像诸如空中
交通管制系统,火箭卫星飞行系统,地震监测系统等都是非常复杂的软件系统。保障软件的
质量,当下面对的问题就是软件系统越来越复杂,加之面向对象软件开发等方法的出现和
IDE 的使用,使得软件质量更加难以度量。
  软件质量保证涉及软件开发周期的每个阶段,保证软件质量的方法很多,毋庸置疑,
软件测试是其中非常有效和关键的方法。现在越来越多的公司开始重视软件测试这一块,有
些软件开发机构如微软据说其软件测试的人员甚至是软件开发人员的两倍。虽然人们也在用
形式化描述或是模型化方法来保障软件质量,但这些方法存在一定局限性,因此,软件测
试在今后较长时间内将是保证软件质量的重要手段。
  三、软件测试用例生成技术相关研究
  (一)基于路径覆盖的测试用例生成技术
  该技术属于白盒测试的范畴。方法主要有三种,分别是基于符号执行的、基于程序实际
执行的和基于目标路径的测试用例生成。
  基于符号执行是指以符号计算代替实际输入的测试数据值,由多个不等式组成,通过