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

发表于:2012-12-12 10:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈杰    来源:51Testing软件测试网采编

  摘要:软件开发过程中,人们已经会使用多种保证软件质量的方法来开发软件,但是在工作中的错误是难免的,这样开发出来的产品或者系统或多或少的会隐藏着许多错误和缺陷,所以软件测试是软件开发中必不可少的一项任重道远的环节。

  关键词:软件工程;软件开发;软件测试;

  软件事故是我们最不愿意看到的现象,一旦出现软件事故则其带来的损失是非常巨大的,早期有美国的火箭爆炸,近年又有温州的动车追尾。所以由此可见软件测试在软件开发过程中是非常重要的。

  一、认识软件测试

  软件工程中,软件测试就是在软件正事投入行业使用前,对软件的需求分许、系统设计和程序源代码进行最后的复查检测,是确保软件质量的关键。是为了发现软件错误而执行程序的过程。是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至可以根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

  软件测试在软件生存期中有两个主要的阶段:一个是在编写出每一个模块之后就对其进行测试,亦可称为单元测试或者模块测试。这一阶段主要是对某模块的程序段进行测试或者对其体现的单一功能进行测试。第二个阶段是对软件系统进行的各种综合测试。

  二、软件测试的对象

  软件测试并不是简单的程序测试,测试程序能不能运行是不够的。软件测试应该贯穿于软件定义与开发的整个期间。所以,软件的需求分析、系统设计、程序编码以及各阶段产生的说明文档,如规格说明、概要设计等都应列入软件测试的对象。另外由于程序的各个开发阶段是相互衔接的,前一阶段的工作如果出现的问题不及时解决的话很自然的会影响到下一阶段的。为了把握好没一阶段的正确性,我们需要进行各种确认和验证的工作。

  确认包括需求规格说明的确认和程序的确认,而程序包括静态和动态的确认,静态的确认一般经过人工的分析,动态的确认主要是通过动态分析和程序测试来检查程序的执行情况。

  验证就是要想办法证明该软件在软件生存期各个阶段中的逻辑协调性、完备性和正确性。例如测试用户的要求和程序运行的结果是否相符、测试用户的需求与系统分析员的报告是否准确、测试需求说明书和设计说明书是否匹配、设计说明书和源程序是否吻合。

  三、软件测试的目的及应把握的原则

  在说此问题之前我们先来认识下基于不同的立场时存在的两种测试目的,一个是用户角度,一个是软件开发者角度。从用户角度出发,用户总是希望通过软件的测试尽可能的发现软件中的隐蔽错误和缺陷,以此作为是否接受该软件的度量。另外以软件开发者角度来测试,他们则希望测试那些成为在软件产品中没有错误的过程,验证该软件已正确地实现了用户的要求,增强用户对软件质量的认可。所以他们多会选择一些导致程序失效概率小的测试模块,回避那些容易暴露程序错误的测试用例。也不会刻意去检查排除程序中可能存在的副作用语句。可见这样的测试对于软件的质量来说是毫无意义的。因为在程序中会存在着许多预料不到的问题,而这些问题往往要在特定的环境下才能体现出来。如果不把重心放在力求找出这种错误的基础上,便会把这些错误遗留到运行阶段中。所以软件测试时要多站在用户的角度思考,把目标确定为揭露程序中存在的错误。要力求以最少的时间和人力找出软件中隐藏的各种错误和缺陷。

  根据上述的软件测试目的在软件测试中我们要把握以下几个原则:

  1、把“尽早和不断的进行软件测试”牢记于心

  由于软件开发各个阶段工作的多样性,以及人员的配伍关系等因素,使得每个环节都有可能产生错误,所以要把软件测试贯穿到每一个软件开发的环节中去,端正态度认真的完成各个阶段的技术审核,这样才能尽早的发现和预防错误,把出现的错误掐死在萌芽阶段没从而提高软件质量。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号