- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件测试的起源与发展
关建字摘要:软件测试,软件,模型,测试人员,需求,过程,开发,验证,错误,方法
竭诚为您提供优质文档,本文已整理修正,内容完整
7
共 页,请先行预览,如有帮助感谢下载支持
*****高品质PDF ,可编辑可打印可自行转换*****
软件测试是伴随着软件的产生而产生的。早期的软件开发过程中, 那时软件规模都很小、复
杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于
“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试
的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。
直到 1957 年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。由于一直
存在着“为了让我们看到产品在工作,就得将测试工作往后推一点”的思想,潜意识里对测试的
目的就理解为“使自己确信产品能工作”。测试活动始终后于开发的活动,测试通常被做为软件
生命周期中最后一项活动而进行。当时也缺乏有效的测试方法,主要依靠“错误推测 Error
Guessing”来寻找软件中的缺陷。因此,大量软件交付后,仍存在很多问题,软件产品的质量
无法保证。
到了 20 世纪 70 年代,这个阶段开发的软件仍然不复杂,但人们已开始思考软件开发流程
的问题,尽管对“软件测试”的真正含义还缺乏共识,但这一词条已经频繁出现,一些软件测试
的探索者们建议在软件生命周期的开始阶段就根据需求制订测试计划,这时也涌现出一批软件测
试的宗师,Bill Hetzel 博士就是其中的领导者。 1972 年,软件测试领域的先驱 Bill Hetzel 博
士(代表论著《The Complete Guide to Software Testing 》),在美国的北卡罗来纳大学组
织了历史上第一次正式的关于软件测试的会议。在 1973 年,他首先给软件测试一个这样的定义:
“就是建立一种信心,认为程序能够按预期的设想运行。Establish confidence that a program
does what it is supposed to do. ”后来在 1983 年他又将定义修订为:“评价一个程序和系
统的特性或能力,并确定它是否达到预期的结果。软件测试就是以此为目的的任何行为。 Any
activities aimed at evaluating an attribute or capability of a program or system. ”在
他的定义中的“设想”和“预期的结果”其实就是我们现在所说的用户需求或功能设计。他还把
软件的质量定义为“符合要求”。他的思想的核心观点是:测试方法是试图验证软件是“工作
的”,所谓“工作的”就是指软件的功能是按照预先的设计执行的,以正向思维,针对软件系统
的所有功能点,逐个验证其正确性。软件测试业界把这种方法看作是的软件测试的第一类方法。
尽管如此,这一方法还是受到很多业界权威的质疑和挑战。代表人物是 Glenford J. Myers
(代表论著《The Art of Software Testing》)。他认为测试不应该着眼于验证软件是工作的,
相反应该首先认定软件是有错误的,然后用逆向思维去发现尽可能多的错误。他还从人的心理学
的角度论证,如果将 “验证软件是工作的”作为测试的目的,非常不利于测试人员发现软件的
错误。于是他于 1979 年提出了他对软件测试的定义: “测试是为发现错误而执行的一个程序或
者系统的过程。The process of executing a program or system with the intent of finding
errors.”这个定义,也被业界所认可,经常被引用。除此之外, Myers 还给出了与测试相关的
三个重要观点,那就是:
1、 测试是为了证明程序有错,而不是证明程序无错误;
2、 一个好的测试用例是在于它能发现至今未发现的错误;
3、 一个成功的测试是发现了至今未发现的错误的测试;
这就是软件测试的第二类方法,简单地说就是验证软件是“不工作的”,或者说是有错误的。
Myers 认为,一个成功的测试必须是发 Bug 的测试,不然就没有价值。这就如同一个病人 (假
定此人确有病),到医院做一项医疗检查,结果
文档评论(0)