软件测试方法的分析与研究

开发 测试
软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一组测试数据,并利用这些测试数据运行程序,以发现程序错误的过程。本文从两个方面介绍了软件测试,一起来看。

开发过程中一次性开发成功或者无错误发生的几率为零,因此在软件的开发过程中需要不断的完善,而这个不断完善修改的过程就是软件测试的过程。软件测试也代表了了设计、编码的最终复审。着重论述了目前软件工程中普遍存在的一些测试问题,并对其产生的原因进行了详细的分析。介绍了软件测试的本质,同时对目前流行的测试方法进行了研究,提出了不同类型的软件最佳的测试方案。

1、概述

信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰。用户为了保证自己业务的顺利完成,总是希望选用优质的软件。

质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,在一些关键应用,如民航订票系统、银行结算系统、证券交易系统等中使用质量有问题的软件,还可能造成灾难性的后果。

软件危机曾经是软件界甚至整个计算机界最热门的话题,为了解决这个危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的。因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于应该如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。

软件工程学出现后,软件开发被视为一项工程,以工程化的方法来进行规划和管理软件的开发。事实上,不论采用什么技术和什么方法,软件中出现错误总是难免的。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出。测试是软件开发的重要部分。

统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存时期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,仍至多次开发,其中必定还包含有许多测试工作。系统的问题越早发现,改正成本越低,破坏性越小,所以,在系统发布前要尽量多地把系统问题找出来,其手段就是有计划、有组织地进行充分的测试。

软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一组测试数据,并利用这些测试数据运行程序,以发现程序错误的过程。根据测试数据设计方法,软件测试可分为结构测试和功能测试。在结构测试过程中,测试者对程序的语句、分支和逻辑路径进行各种覆盖测试,可以在不同点检查程序的状态,以确定实际状态与预期状态是否一致。软件测试的目的是发现错误,而不是确认其正确性,而对已进行的测试过程的程度进行评估。

2、测试方法

2.1 软件测试实质

软件测试是一项逻辑性强、且极具条理的工作,也是具有风险性的行为。由于软件的输入量、输出结果、软件实现途径都很多,而且软件产品说明书没有客观的标准,导致从不同的角度看,软件缺陷的标准不同,因而无法对软件实施完全测试,这样,就无法通过软件测试显示隐藏的软件缺陷,只能尽量查找软件缺陷,找到的软件缺陷越多,说明软件本身的缺陷就越多,况且还有一些是未发现、不能断定的缺陷,这就是软件测试的局限性。

所有的软件测试都有2个关键的问题组成:建立能测试应用程序的环境,并在该环境中测试软件能力。测试员必须理解和重新生成软件所在的复杂软件环境,并运用其能力确保正常的测试。

2.2 软件测试手段

从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。

2.2.1 黑盒测试

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能情况下,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息并且保持外部信息(如:数据库或文件)的完整性。黑盒法着眼于程序外部结构,不考虑内部逻辑结构,只针对软件界面和软件功能进行测试,它主要用于软件验收测试。黑盒法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。测试情况实际上有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

2.2.2 白盒测试

白盒测试也称结构测试或逻辑驱动测试,它是在已知产品内部工作过程情况下,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能。白盒测试的主要方法有逻辑驱动、基路测试等,白盒法是穷举路径测试,主要用于软件验证。

【编辑推荐】

  1. 详谈软件测试中的动态测试
  2. “脚踩二枝”做软件测试复合型人才
  3. “魔兽迷”摇身软件测试高薪达人
  4. 嵌入式软件测试浅谈
责任编辑:于铁 来源: 51Testing采编
相关推荐

2009-07-14 15:53:21

光纤参数测试

2021-09-10 11:36:13

勒索软件攻击SSD

2020-12-02 13:28:56

勒索软件漏洞网络攻击

2009-06-18 13:18:32

软件测试需求分析

2022-08-24 17:04:19

软件测试数据集合测试效果

2011-05-30 17:21:58

软件测试

2017-06-06 11:29:23

Java异常研究与分析

2016-01-12 18:04:55

Java异常研究

2014-11-14 09:42:53

VoLTE

2010-05-27 11:44:37

2017-02-21 10:30:17

Android单元测试研究与实践

2011-04-18 11:30:12

排错调试软件测试

2012-02-20 10:12:04

2010-09-17 16:25:58

2020-08-10 09:14:50

软件测试工具技术

2020-08-11 07:45:38

软件测试

2009-02-24 20:55:19

软件系统构测试影响分析

2023-11-17 17:16:09

测试

2013-12-06 14:52:49

性能评价模型分析WEB系统

2011-03-02 09:44:45

点赞
收藏

51CTO技术栈公众号