了解到软件测试的研究可以追溯20世纪60年代,至今已有60多年的发展历史,但对于什么是软件测试,还一直未能达成共识。根据侧重点的不同,主要有以下三种观点:
IEEE在1983年将软件测试定义为“使用人工或自动化手段运行或测定某个系统的过程,其目的在于检测它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,该定义明确地提出了软件测试以检验是否满足需求为目标。
Myers则认为软件测试“是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。
从软件质量保证的角度看,软件测试是一种重要的测试质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。
上述三种观点实际上是从不同的角度理解测试,是将测试置于不同的环境下得出的结论。事实上,在公开出版的刊物中,有多种不同的关于软件测试的定义,根据这些定义可以认为软件测试是一个在可控的环境中执行软件的过程,目的就是为了验证软件是否按照预期运行。测试过程中的活动既包括“分析”软件,也包括“运行”软件。常常把与分析软件开发中的各种产品相关的测试活动称为静态测试(static testing)。静态测试包括代码审查、走查和桌面检查。相比之下,把与运行软件有关的测试活动叫做动态测试(dynamic testing)。因此,不能简单地认为软件测试就是程序测试,只有在程序编码结束后才能够进行的工作;而是一项贯穿于整个软件开发过程的工作。测试对象既包括源程序,也包括需求规格说明、概要设计说明、详细设计说明。因此,也有人认为软件测试(software testing)就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。测试包括寻找缺陷,但不包括跟踪漏洞及其修复。测试的重要性在于,它必须保证所开发的软件达到设计时的需求,免除由于软件自身的“缺陷”带来的“漏洞”,最大限度地降低软件开发的成本。
软件测试有两个基本职责:即验证和确认。Schulmeyer和Mackenziee(2000)对验证和确认所做的定义是:
验证(verification),保证开发过程中某一具体阶段的产品与该阶段和前一阶段的需求一致。
确认(validation),保证最终得到的产品满足系统需求。
有时,初学者常常会混淆软件测试和调试。其实二者是不同的,表现在以下几方面:
(1)调试是一个分析和定位软件bug的过程。可以认为它是一种支持测试,但不能完全代替测试的活动。
(2)调试的目的是为了使软件能够正确运行,而测试的目的是为了发现软件中存在的错误。
(3)调试的对象主要是源代码,而测试的对象则是软件开发过程中各个阶段所产生的所有产品。
如需了解更多测试技术信息请关注:https://www.duoceshi.cn/jswz/深圳多测师软件与技术服务有限公司
Copyright © 2016-2021 深圳多测师软件与技术服务有限公司 版权所有
本站部分文章源自于网络,如有侵犯您的版权,请联系删除