background image

软件工程中软件测试的基本探究及其必要性

    摘要:在软件开发过程中,人们已经会使用多种保证软件质量的方法来开发软件,但是
在工作中的错误是难免的,这样开发出来的产品或者系统或多或少的会隐藏着许多错误和
缺陷,所以软件测试是软件开发中必不可少的一项任重道远的环节。
  关键词:软件工程;软件开发过程;软件测试。
  软件事故是我们最不愿意看到的现象,一旦出现软件事故则其带来的损失是非常巨大
的,早期有美国的火箭爆炸,近年又有温州的动车追尾。所以由此可见软件测试在软件开发
过程中是非常重要的。
  一、认识软件测试
  软件工程中,软件测试就是在软件正事投入行业使用前,对软件的需求分许、系统设计
和程序源代码进行最后的复查检测,是确保软件质量的关键。是为了发现软件错误而执行程
序的过程。是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至可以根据
需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和
评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
  软件测试在软件生存期中有两个主要的阶段:一个是在编写出每一个模块之后就对其
进行测试,亦可称为单元测试或者模块测试。这一阶段主要是对某模块的程序段进行测试或
者对其体现的单一功能进行测试。第二个阶段是对软件系统进行的各种综合测试。
  二、软件测试的对象
  软件测试并不是简单的程序测试,测试程序能不能运行是不够的。软件测试应该贯穿于
软件定义与开发的整个期间。所以,软件的需求分析、系统设计、程序编码以及各阶段产生的
说明文档,如规格说明、概要设计等都应列入软件测试的对象。另外由于程序的各个开发阶
段是相互衔接的,前一阶段的工作如果出现的问题不及时解决的话很自然的会影响到下一
阶段的。为了把握好没一阶段的正确性,我们需要进行各种确认和验证的工作。
  确认包括需求规格说明的确认和程序的确认,而程序包括静态和动态的确认,静态的
确认一般经过人工的分析,动态的确认主要是通过动态分析和程序测试来检查程序的执行
情况。
  验证就是要想办法证明该软件在软件生存期各个阶段中的逻辑协调性、完备性和正确性。
例如测试用户的要求和程序运行的结果是否相符、测试用户的需求与系统分析员的报告是否
准确、测试需求说明书和设计说明书是否匹配、设计说明书和源程序是否吻合。
  三、软件测试的目的及应把握的原则
  在说此问题之前我们先来认识下基于不同的立场时存在的两种测试目的,一个是用户
角度,一个是软件开发者角度。从用户角度出发,用户总是希望通过软件的测试尽可能的发
现软件中的隐蔽错误和缺陷,以此作为是否接受该软件的度量。另外以软件开发者角度来测
试,他们则希望测试那些成为在软件产品中没有错误的过程,验证该软件已正确地实现了
用户的要求,增强用户对软件质量的认可。所以他们多会选择一些导致程序失效概率小的测
试模块,回避那些容易暴露程序错误的测试用例。也不会刻意去检查排除程序中可能存在的
副作用语句。可见这样的测试对于软件的质量来说是毫无意义的。因为在程序中会存在着许
多预料不到的问题,而这些问题往往要在特定的环境下才能体现出来。如果不把重心放在力
求找出这种错误的基础上,便会把这些错误遗留到运行阶段中。所以软件测试时要多站在用
户的角度思考,把目标确定为揭露程序中存在的错误。要力求以最少的时间和人力找出软件