预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

松勤软件测试-内部参考 什么是软件测试 软件测试的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评 估。 软件是由文档、数据以及程序组成的,软件测试应该是对软件形成过程的文档、数据以 及程序进行的测试,而不仅仅是对程序进行的测试。60%以上的软件错误并不是程序错误, 而是分析和设计错误,因此,做好软件需求和设计阶段的测试工作是非常重要的,因此测试 概念应该扩大化,提倡软件全生命周期测试的理念。 软件测试的历史 1.早期的软件测试含义比较狭窄,将测试等同于“调试”,目的是纠正软件中已经知道的故 障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入得也很晚,常常 是等到形成代码,产品已经基本完成时才进行测试 2.知道1957年,软件测试才开始与调试区别开来,成为一种发现软件缺陷的活动,测试仍 然是后于开发的活动。在潜意识里,我们的目的是使自己确信产品能工作 3.1975年JohnGoodEnough和SusanGerhart在IEEE上面发表了“测试数据选择的原理” 的文章,软件测试才被确定为一种研究方向 4.1979年,GlenfordMyers的《软件测试艺术》可以算是软件测试领域的第一本最重要的专 著,测试的定义是:“软件测试是为了发现错误而执行的一个程序或系统的过程“。 5.到20世纪80年代早期,软件测试定义发生了改变,测试不单纯是一个发信错误的过程, 而且包含软件质量评价的内容。软件开发人员和测试人员开始在一起探讨软件工程和测试问 题。制定了各种标准,包括IEEE标准,美国ANSI和ISO标准。1983年,BillHetzel在 《软件测试完全指南》中指出:“测试是以评价一个程序或系统属性为目标的任何一种活动, 测试是对软件质量的度量“。Myers和Hetzel的定义至今仍被引用。 6.20世纪90年代,测试工具盛行起来。人们普遍意识到工具不仅是有用的,而且要对今天 的软件系统进行充分的测试,工具是必不可少的。到2002年,Rick和Stefan在《系统的软 件测试》一书中对软件测试做了进一步定义:“测试是为了度量和提高被测软件的质量,对 测试软件进行工程设计、实施和维护的整个生命周期过程“。 7.近20年来,软件测试研究取得了很大的突破,测试专家总结了很好的测试模型,比如著 名的V模型、W模型,在测试过程改进方面提出了TMM(TestingMaturityModel)的概念, 在单元测试、自动化测试、负载压力测试以及测试管理等方面涌现了大量优秀的软件测试工 具。 8.虽然软件测试技术的发展很快,但是其发展任然落后于软件开发技术的发展速度,使得软 1联系QQ:12206370 松勤软件测试-内部参考 件测试在今天面临很大的挑战,主要体现在以下几个方面。 a.软件的作用越来越重要,由此产生的测试任务越来越繁重。 b.软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题。 c.面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步。 d.对于分布式系统整体性能还不能进行很好的测试。 e.对实时系统来说,缺乏有效的测试手段。 f.信息系统的安全性如何进行有效的测试与评估,成为世界性的难题。 软件测试现状 1.软件测试国外现状 a.软件测试在软件公司中占有重要的地位。“在微软,一个典型的开发项目组中测试工 程师要比编码工程师多得多,花费在测试上的时间要比花费在编码上的时间多得多。 b.软件测试理论研究蓬勃发展,引领软件测试理论研究的国际潮流。 c.软件测试市场繁荣。有一些专业公司开发软件测试标准与测试工具 2.国内现状 a.软件测试技术研究起步于“六五”期间,直到1990年,成立了国家级的中国软件评 测中心,测试服务才逐步发展起来。 b.软件产品化测试的技术研究还比较贫乏,从业人员较少,测试服务没有形成足够的规 模。 软件测试与软件项目的关系 3.软件测试是为软件项目服务的,在整个项目组中,要强调测试服务的概念,虽然软件测 试的目的是为了发现软件中存在的错误,但是,其根本目的是为了提高软件质量,降低 软件项目的风险。软件的质量风险体现在两个方面,一种是内部风险,一种是外部风险。 内部风险是在即将销售的时候发现有重大的错误,从而延迟发布日期,失去市场机会; 外部风险是用户发现了不能容忍的错误,引起赔偿、法律纠纷,以及用于客户支持的费 用甚至失去客户的风险。 4.软件测试只能证明软件存在错误,而不能证明软件没有错误。软件公司对软件项目的期 望是在预计的时间、合理的预算下,提交一个可以交付的产品,测试的目的就是把软件 的错误控制在一个可以进行产品交付/发布的程度上,可以交付/发布的产品并不是没有 错误的产品,因此软件测试不可能无休止地进