资源描述:
《software_reliability》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件测试与软件可靠性【摘要】:随着科学技术的飞速发展,软件的功能越来越强大,软件的复杂性也越来越高,软件应用的日益广泛及重要性的不断增强,人们对软件质量的要求也越来越高。可靠性作为衡量软件质量的重要特性,如何提高软件的可靠性已成为人们关注和研究的焦点。在实际的项目应用中,软件测试成为提高交付软件可靠性的最后一个武器,软件可靠性问题从来就是是软件测试中的重要难题之一。为了保证一个软件系统的质量,有必要针对软件的测试与可靠性评估方法进行专门地研究。【关键词】 软件测试,可靠性,软件质量保障前言随着科学技术的飞速发展以及高新技
2、术的广泛应用,使得现代工业产品中软件成分所占比例越来越高,规模越来越大。软件不但能执行过去由专门的硬件执行的功能,而且能执行一些专门硬件几乎无法执行的功能。软件已不再是硬件的附属物,而已成为与硬件相并列的独立的技术状态管理项目。然而,多年来由于受多种因素的影响和限制,软件的质量水平并没有引起人们的足够重视,尤其是软件的开发、设计阶段,没有经过严格的需求分析和评审;在软件的调试、验收阶段,缺乏科学的测试手段,并未对软件进行必要、充分的测试,再加上由于程序语言的复杂性以及被测程序的多样性,导致在软件运行中暴露出大量的问题。因
3、此,必须下大力气抓好软件产品测试工作,切实提高软件的质量和可靠性。现代工业产品无不依赖于计算机及其软件。但实际上往往将软件作为硬件的一个附属部分,而不是作为一个产品对待,软件没有指标,没有列入型号技术配套表,缺少与硬件相同的资源保证。许多软件的开发和生产仍处于“自设计、自编码、自测验”状态,软件质量低、风险大、保障难。例如:某型产品测出的故障800个,其中:软件故障600个,占75%之多;硬件故障127个,占16%;其他故障73个,占9%。可见软件问题的严重性,因此必须加强软件开发和生产的管理,建立和完善软件测试的手段和
4、方法,严格按照软件工程化管理的要求进行软件开发和管理,提高软件产品的质量和可靠性。一.软件测试1.1软件测试的定义软件测试(Softwaretesting)是软件生存期(Softwarelifecycle)中的一个重要阶段,是软件质量保证的关键步骤,是保证软件质量,提高软件可靠性的最主要活动之一。通俗地讲,软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码进行最终复审的活动软件测试的目的是为了检验软件系统是否满足需求。 从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为
5、了发现错误而执行程序的过程”。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。1.2软件测试的目的、原理和内容一个好的测试用例在于能发现迄今为止未发现的错误。因此,测试的目的是以最少的人力、物力和时间投入,尽可能多的找出软件中潜在的各种错误和缺陷以证明软件的功能和性能与需求相符合。具体可表述为:1.通过软件测试,检查软件模块是否与软件设计要求相一致,保证软件开发的正确性;2.通过软件测试,检查软件用
6、户界面是否友好,软件是否易用;3.通过软件测试,暴露软件开发过程中遗留在程序中的错误,以便开发人员予于排除,提高软件的可靠性;4.通过软件测试,检查所提供的文件与软件系统的一致性。5.通过软件测试收集可靠性评估数据。软件测试原则为:一是所有的测试都应追溯到用户需求,这是因为软件测试的目标在于揭示错误,而最严重的错误是那些无法满足用户需求的错误,二是应尽早制定测试计划,由于软件的复杂性和抽象性,使得开发的每个环节都可能发生错误,所以要树立把软件测试贯穿到软件开发的各个阶段的观念,坚持软件开发的阶段评审,以期尽早发现错误,提
7、高软件质量。三是应从“小规模”开始,逐步转向“大规模”,对重点程序模块要进行重点测试,以提高测试的投资效益。四是应该由独立的第三方进行测试。软件测试包括如下内容:软件单元测试:验证单元满足功能、性能和接口等要求;软件部件测试:验证组装构成和组装结果;软件配置项测试:检验软件模块之间的接口关系并构成符合要求的软件配置项;系统测试:软件配置项加入导系统上进行测试,检验软件是否满足规定要求。二.软件可靠性及其评估可靠性(reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力,它的概率度量称为可靠度。软件可
8、靠性(softwarereliability)是软件系统的固有特性之一,它表明了一个软件系统按照用户的要求和设计的目标,执行其功能的正确程度。软件可靠性与软件缺陷有关,也与系统输入和系统使用有关。理论上说,可靠的软件系统应该是正确、完整、一致和健壮的。但是实际上任何软件都不可能达到百分之百的正确,而且也无法精确度量。