软件测试第一章.ppt
- 文档编号:14734788
- 上传时间:2023-06-26
- 格式:PPT
- 页数:30
- 大小:411KB
软件测试第一章.ppt
《软件测试第一章.ppt》由会员分享,可在线阅读,更多相关《软件测试第一章.ppt(30页珍藏版)》请在冰点文库上搜索。
软件测试软件测试SoftwareTestingSoftwareTesting工工业业工工业业农农业业农农业业金金融融金金融融科科教教卫卫生生科科教教卫卫生生国国防防国国防防百百姓姓生生活活百百姓姓生生活活第一章绪论第一章绪论第一章绪论第一章绪论从计算机诞生至今,从计算机诞生至今,计算机无疑成为当代发展最为迅猛的科学技术。
计算机无疑成为当代发展最为迅猛的科学技术。
今天,计算机已渗透到人们生活的各个方面今天,计算机已渗透到人们生活的各个方面。
第一章绪论第一章绪论第一章绪论第一章绪论软软件件开开发发软软件件开开发发开开发发成成本本增增加加开开发发成成本本增增加加系系统统规规模模增增大大系系统统规规模模增增大大软软件件质质量量软软件件质质量量软软件件测测试试软软件件测测试试复复杂杂性性增增加加复复杂杂性性增增加加故障故障导致导致的经的经济损济损失增失增加加故障故障导致导致的经的经济损济损失增失增加加眼中的件是什的工作?
你软测试么样眼中的件是什的工作?
你软测试么样软件测试工程师(SoftwareTestingEngineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。
高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙手可热的高薪职位。
中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。
软件测试产品质量的保证软件测试控制成本的关键软件测试软件可靠性确认软件测试让企业具备国际竞争的实力第一章绪论第一章绪论第一章绪论第一章绪论本章重点计算机系统的软件可靠性问题软件测试与软件可靠性软件测试的发展历史、现状和展望1.1.1.1.计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题随着对计算机需求和依赖的与日俱增,随着对计算机需求和依赖的与日俱增,计算机系统的规模和复杂性急剧增加。
计算机系统的规模和复杂性急剧增加。
计算机软件的数量计算机软件的数量以惊人的速度急剧以惊人的速度急剧膨胀膨胀计算机软件的数量计算机软件的数量以惊人的速度急剧以惊人的速度急剧膨胀膨胀例如,例如,航天飞机机载系统有近航天飞机机载系统有近500,000行代码的软件,行代码的软件,地面控制和处理系统也有大约地面控制和处理系统也有大约350,000行的代码。
行的代码。
在美国电信业中,电信线路的正常运转需要数百个在美国电信业中,电信线路的正常运转需要数百个软件系统的支持,其代码总量超过一亿行。
软件系统的支持,其代码总量超过一亿行。
1.1.1.1.计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题据不完全统计,由于软件故障,据不完全统计,由于软件故障,全世界已有全世界已有40004000多人丢掉了生命。
多人丢掉了生命。
对复杂计算机系统需求的急剧增加,远远超过了对复杂计算机系统需求的急剧增加,远远超过了计算机软计算机软/硬件设计、实现、测试及维护的能力,结硬件设计、实现、测试及维护的能力,结果出现了许多可怕的计算机工程事故,其中大多数都果出现了许多可怕的计算机工程事故,其中大多数都是由于软件故障所致。
是由于软件故障所致。
1.1.1.1.计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题1990年年1月月15日日,通信中转系统软件发生故障,导致,通信中转系统软件发生故障,导致主干远程网大规模崩溃,使数以千计的电讯运营公司损主干远程网大规模崩溃,使数以千计的电讯运营公司损失惨重。
失惨重。
1983年年,美国科罗拉多河水泛滥,由于计算机对天,美国科罗拉多河水泛滥,由于计算机对天气形势预测有误,水库未能及时泄洪,以致造成严重的气形势预测有误,水库未能及时泄洪,以致造成严重的经济损失和人员伤亡。
经济损失和人员伤亡。
1979年年,新西兰航空公司的一架客机因计算机控制,新西兰航空公司的一架客机因计算机控制的自动飞行系统发生故障而撞在阿而卑斯山上,机上的自动飞行系统发生故障而撞在阿而卑斯山上,机上257名乘客全部遇难。
名乘客全部遇难。
1.1.1.1.计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题研究表明:
研究表明:
由于软件设计故障引起的系统失效由于软件设计故障引起的系统失效与由于硬件设计故障引起的失效比是与由于硬件设计故障引起的失效比是10:
1。
软件质量问题已成为人们共同关注的焦点。
软件质量问题已成为人们共同关注的焦点。
软件故障软件故障正逐渐成为导致计算机系统失效和停机的主要因素。
正逐渐成为导致计算机系统失效和停机的主要因素。
1.1.1.1.计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题软件开发商为了占有市场,把软件质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。
用户为了保证自己业务的顺利完成,当然也希望选用优质的软件。
1.1.1.1.计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题计算机系统的软件可靠性问题一些关键应用,如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御、核电站安全控制系统对软件质量对软件质量提出了更高的要求。
提出了更高的要求。
因此,许多科学家在展望许多科学家在展望21世纪计算机科学发展方向和策略时,世纪计算机科学发展方向和策略时,把软件质量放在优先于提高软件功能和性能的地位。
把软件质量放在优先于提高软件功能和性能的地位。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性人们对计算机依赖的程度越高,对其可靠性的要求就越高。
人们对计算机依赖的程度越高,对其可靠性的要求就越高。
正是由于软件可靠性的大幅度提高正是由于软件可靠性的大幅度提高才使得计算机广泛应用于社会的各个方面。
才使得计算机广泛应用于社会的各个方面。
从实验系统所获的统计数据表明,从实验系统所获的统计数据表明,运行软件的驻留故障密度,运行软件的驻留故障密度,财产关键软件为每千行代码财产关键软件为每千行代码1-101-10个故障,个故障,生命关键软件为每千行代码生命关键软件为每千行代码0.01-10.01-1个故障。
个故障。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性IEEE(InstituteofElectricalandElectronicsEngineers,电气与电,电气与电子工程师学会子工程师学会)定义定义软件可靠性软件可靠性为:
为:
系统在特定的环境下,在给定的时间内,无故障地运系统在特定的环境下,在给定的时间内,无故障地运行的概率。
行的概率。
用来评价软件按照用户的要求和设计目标,完成规定用来评价软件按照用户的要求和设计目标,完成规定功能的能力,涉及软件的性能、功能性、可用性、可功能的能力,涉及软件的性能、功能性、可用性、可服务性、可安装性、可维护性以及文挡等多方面特性服务性、可安装性、可维护性以及文挡等多方面特性.因此,软件可靠性是对软件因此,软件可靠性是对软件在设计、生产以及在它所预定环境中具有能力的在设计、生产以及在它所预定环境中具有能力的置信度的一个测度,是衡量软件质量的主要参数之一。
置信度的一个测度,是衡量软件质量的主要参数之一。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性关于软件可靠性方面的量度,主要有:
软件中初始故障个数。
软件经过测试后,通过查错、改错,在软件中剩余故障的个数。
平均无故障时间。
故障间隔的时间长度。
故障发生率。
经预测,下一次故障的发生时间等。
故障一般可分为:
故障一般可分为:
硬件故障硬件故障是由物理性能的恶化所造成;是由物理性能的恶化所造成;软件故障软件故障是由设计阶段的人为因素所造成;是由设计阶段的人为因素所造成;操作故障操作故障是指操作人员和维护人员的错误;是指操作人员和维护人员的错误;环境故障环境故障则包括电源、外界干扰、地震、火灾、则包括电源、外界干扰、地震、火灾、病毒等各种外界因素引起的故障。
病毒等各种外界因素引起的故障。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性对于软件来讲,不论采用什么样的技术和方法,对于软件来讲,不论采用什么样的技术和方法,软件中都会有故障存在。
软件中都会有故障存在。
采用新的语言、先进的开发方式、完善的开发过采用新的语言、先进的开发方式、完善的开发过程,程,可以减少故障的引入,但是不可能完全杜绝软可以减少故障的引入,但是不可能完全杜绝软件中的故障件中的故障,这些软件故障需要测试来发现,软件,这些软件故障需要测试来发现,软件中的故障密度也需要测试来估计。
中的故障密度也需要测试来估计。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试是对软件需求分析、设计规格说明和编码的最终复审。
是软件质量保证的关键步骤。
是为了发现故障故障而执行程序的过程。
软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现软件故障故障的过程。
其根本目的其根本目的是以尽可能少的时间和人力是以尽可能少的时间和人力发现并改正软件中潜在的发现并改正软件中潜在的各种故障及缺陷。
各种故障及缺陷。
其根本目的其根本目的是以尽可能少的时间和人力是以尽可能少的时间和人力发现并改正软件中潜在的发现并改正软件中潜在的各种故障及缺陷。
各种故障及缺陷。
实际上,测试工作一直对准软件中隐含的各种故障,实际上,测试工作一直对准软件中隐含的各种故障,所有的测试方法和手段都是以找出软件中隐含的故障为所有的测试方法和手段都是以找出软件中隐含的故障为目的。
目的。
软件中隐藏的故障数目,直接决定软件的可靠性。
软件中隐藏的故障数目,直接决定软件的可靠性。
如果不能将软件中隐含的故障及时排除,一旦暴露如果不能将软件中隐含的故障及时排除,一旦暴露出来就会给使用者和维护者带来不同程度的严重后果,出来就会给使用者和维护者带来不同程度的严重后果,势必软件的可靠性差。
势必软件的可靠性差。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性所以,所以,软件测试必须在软件投入生产运行之前进行,软件测试必须在软件投入生产运行之前进行,以尽可能多地发现软件中的故障,提高软件可靠性。
以尽可能多地发现软件中的故障,提高软件可靠性。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性随着人们对软件测试重要性认识的加深,随着人们对软件测试重要性认识的加深,软件测试在整个软件开发周期中所占的比例日益增大。
软件测试在整个软件开发周期中所占的比例日益增大。
目前,许多软件开发机构已将研制力量的目前,许多软件开发机构已将研制力量的40%以上以上花费在软件测试中。
花费在软件测试中。
特殊情况下,对于要求高可靠性的软件,特殊情况下,对于要求高可靠性的软件,例如飞行控制、核反应堆监控软件等,其软件测试费例如飞行控制、核反应堆监控软件等,其软件测试费用甚至高达软件开发其它阶段所用费用总和的用甚至高达软件开发其它阶段所用费用总和的35倍。
倍。
2.2.2.2.软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性软件测试与软件可靠性3.3.3.3.软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史早在50年代,英国著名的计算机科学家图灵就给出了程序测试的原始定义。
他认为,测试是程序正确性证明的一种极端实验形式。
早期测试主要针对机器语言和汇编语言,给出特定的测试用例,运行被测程序,将所得结果与预期结果进行比较,从而判断程序的正确性。
缺点:
测试方法和理论研究缓慢。
除去非常关键的程序系统外,一般程序的测试大都是不完备的。
3.3.3.3.软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史直到70年代以后,测试的意义才逐渐被人们认识,软件测试的研究才开始受到重视。
FPBrooks总结了开发IBMOS360操作系统中的经验,在著名的神秘的人月一书中阐明了软件测试在研制大系统中的重要意义。
1975年,Goodenough首次提出了软件测试理论,从而把软件测试这一实践性很强的学科提高到理论的高度。
WCHetzel整理出版了“ProgramTestMethods“一书,纵览了测试方法以至各种自动测试工具,这是软件测试的第一本著作。
EPMiller在测试管理和普及方面作了大量工作,他为把现代测试概念推向实践做出了重要贡献。
1982年,美国北卡来纳大学召开了首次软件测试技术会议,这次会议成为软件测试技术发展的一个重要的里程碑。
此后,测试理论、测试方法进一步完善,从而使软件测试这一实践性很强的学科成为有理论指导的学科。
3.3.3.3.软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史随着软件测试理的发展的,软件测试方法也不断发展。
J.CHuang提出了程序插装的概念WEHowden对路径测试进行了深入的分析LA.Clarke等人提出了符号测试方法R.A.Demillo提出了基于程序变异的测试方法LOsterweit等人首先引入了数据流测试方法LWhite等提出了一种新的测试策略域测试策略DeMillo91提出了一种基于故障的测试产生方法3.3.3.3.软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的现状近年来,尽管软件测试技术与实践有了很大的进展,但总的来说,仍然和软件开发实践的要求相距教远。
就目前软件工程发展的状况而言,软件测试仍然是较为薄弱的一个方面。
不仅测试理论,已有的测试方法也不能满足当前软件开发的实际需求。
1999年在美国LosAngeles召开的第21届国际软件工程会议,将软件测试作为一个技术专题展开,以改善软件开发过程,提高软件质量。
我国每两年召开一次的全国软件工程会议、全国容错计算会议都设有软件测试专题部分。
2001年首次召开的全国测试学术会议,将软件测试作为一个主要的议题,以推进我国软件测试工作的研究。
3.3.3.3.软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望软件测试的发展历史、现状和展望测试工具的相继问世静态分析工具静态分析工具是在不执行程序的情况下,分析软件的特性。
测试数据生成工具测试数据生成工具可以为被测程序自动生成测试数据,减轻人们在生成大量测试数据时付出的劳动,同时还可避免测试人员对一部分测试数据的偏见。
测试评估工具测试评估工具用来评估程序结构元素被覆盖的程度,从而确定测试运行的充分性。
集成化测试系统集成化测试系统将多种测试工具融为一体,是一种功能较强的测试工具。
小结小结小结小结研究表明:
由于软件设计故障引起的系统失效与由于硬件设计故障引起的失效比是10:
1。
软件故障正逐渐成为导致计算机系统失效和停机的主要因素。
不论采用什么样的技术和方法,软件中都会有故障存在。
只要用户有抱怨,就可以说,软件已出现了故障。
软件可靠性是对软件在设计、生产以及在它所预定环境中具有能力的置信度的一个测度,是衡量软件质量的主要参数之一。
软件测试是对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
软件测试必须在软件投入生产运行之前进行,以尽可能多地发现软件中的故障,提高软件可靠性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 第一章