软件测试方法综述_第1页
软件测试方法综述_第2页
软件测试方法综述_第3页
软件测试方法综述_第4页
软件测试方法综述_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试方法综述4/9软件测试方法综述摘要:软件测试是一个涉及开发周期各阶段的活动,不同阶段的测试目标各异。软件测试研究面临一系列的挑战。本文介绍了已有的方法、技术和模型,并指出软件测试需要深入研究的关键技术。最后,总结并提出今后的发展方向。关键字:软件测试测试模型测试方法研究方向TheSummaryofSoftwareTestingMethodsAbstract:Softwaretestingisamatteroftheactivitieswhichinvolveinallstagesofsoftwaredevelopment,differentgoalsatdifferentstagesoftesting.TheresearchofSoftwaretestingisfacingaseriesofchallenges.Itdescribedtheexistingmethods、techniquesandmodels,andpointedoutsomekeytechnologythatrequiresin-depthstudy。Itisproposedthefuturedirectionofdevelopment.Keyword:SoftwaretestingTestmodelTestMethodsResearchdirection引言软件测试在软件生存周期中占有重要的地位,是提高软件质量的有效途径之一。通过排除软件测试中发现的错误和缺陷,可以有效实现软件的可靠性增长。据统计,在欧美的软件项目中,软件测试的工作量要占到总工作量的40%,软件测试的费用要占到项目总经费的30%,特殊情况下,对性命攸关可靠性要求很高的软件,其测试费用甚至高达所有其他软件工程阶段费用总和3-5。在微软,开发人员和测试人员的比例为1:1.5,在BORLAND公司,测试人员与开发人的比例大概是1:1。比尔.盖茨曾经说过,“人们都说我们是世界上最大的软件开发公司,其实我们更是世界上最大的软件测试公司”。

软件测试并不单纯等同于程序测试。它应该贯穿整个软件定义与开发整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序.都应该是软件测试(评审)的对象。在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来。软件测试基本概念软件测试的定义:使用人工或自动的手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清与其结果与实际结果之间的差别。软件测试为了发现并指出软件系统缺陷即bug。软件中的Bug指的是软件中(包括程序和文档)不符合用户需求的问题。我们测试一个软件的第一件事情,通常是搭建用来云慈宁宫软件的测试环境,简单的说,软件测试环境就是软件运行的平台,即软件、硬件和网络的集合,如下式所示:测试环境=软件+硬件+网络搭建测试环境有如下几个要点。真实,尽量模拟用户的真实使用环境干净,测试环境测试环境中尽量不要安装其他与北侧软件无关的软件无毒,测试环境没有中毒独立,测试环境和开发环境独立测试用例,英文为TestCase,缩写TC,值得是在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。简单用一个等式表示:测试用例=输入+输出+测试环境在传统的瀑布型软件开发过程中,仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,对软件测试过程没有进一步的描述。V模型针对瀑布模型对软件测试过程进行了补充。v模型最早由已故的PaulRook在80年代后期提出,V模型被包含在英国国家计算中心文献中发布,旨在改进软件开发的效率和效果。V模型在欧洲尤其是英国被接受,并被认为是瀑布模型的替代品,V模型最早提出测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程,这是它最大的积极意义所在。验收测试设计验收测试用户需求验收测试设计验收测试用户需求 系统与测试设计规格定义系统测试 系统与测试设计规格定义系统测试集成测试设计概要设计集成测试 集成测试设计概要设计集成测试单元测试设计单元测试设计详细设计单元测试详细设计单元测试编编码Fig.1V-模型Fig.1因此,V模型主要向我们传递了如下信息:需求、功能、设计和编码的开发活动随时间而进行,而相应的测试活动,即针对需求、功能、设计和编码的测试,其开展的次序则正好相反。换而言之,代码最后被开发,而相应的单元测试首先被执行;需求最早被开发,可相应的验收测试到最后才进行。V模型揭示了软件测试活动分层和分阶段的本质特性。V-模型的哟点就是详细表示了测试的各个阶段以及参考依据:单元测试参考的是详细设计集成测试参考的是概要设计系统测试参考的是需求规格说明书验收测试参考的是用户需求V-模型的缺点是没有说明在项目的前期测试需要做哪些工作(编写测试技术啊、测试用例等),而且和瀑布模型一样,流程也是单向的,不可逆的。V-模型容易让人形成测试是开发之后的一个阶段,测试的对象就是程序”之类的误解。2)W-模型软件开发过程各阶段都可能产生错误。据国外对一些大型软件系统的统计,需求分析与设计阶段产生的错误占64%,编码错误占36%。软件错误具有传递性,即需求分析产生的错误如果没有发现,会依次传递到设计和编码。软件错误的发现和解决具有放大性。据估计,在分析设计阶段产生的错误,如果在编码结束后的测试过程才被发现,其代价约为在分析设计阶段发现和解决错误的代价的10倍。如果该错误在产品交付使用后才发现和解决,则其代价将超过100倍。因此,测试工作越早进行,发现和解决错误的代价越小,风险越小。根据这个观点,,SystemeEvolutif公司在V-模型的基础上,提出了W-模型,如图Fig.2所示。验收测试需求测试安装需求验收测试需求测试安装需求规格测试规格系统测试构件系统规格测试规格系统测试构件系统集成测试设计测试构建软件设计集成测试设计测试构建软件设计编码单元测试编码单元测试Fig.2W-模型按照W-模型,软件开发过程中各个阶段的可交付产品(中间的或者最终的产品)都要进行测试,尽可能使各阶段产生的错误在该阶段得到发现和解决。W-模型在V-模型的基础上增加需求测试、规格测试和设计测试,目的是确保需求的完整性、一致性、准确性、可实现性和可测试性等,以及设计对需求的可追踪性、正确性、规范性和可测试性等。测试与开发是同步进行的,软件需求规格说明、软件概要设计说明以及软件详细设计说明等是被测试的对象。3)SpillnerW-模型AndreasSpillner在Evolutif基本模型的基础上,增加了测试--查错--更改--再测试循环,并将启动测试活动、测试计划和准备活动在模型上明确表示出来,如图Fig.3所示。验收测试计划和准备启动测试活动需求评审动需求查错与更改验收测试验收测试计划和准备启动测试活动需求评审动需求查错与更改验收测试系统测试计划和准备规格评审规格查错与更改系统测试系统测试计划和准备规格评审规格查错与更改系统测试集成测试计划和准备集成测试计划和准备集成测试概要设计设计概要设计评审查错与更改集成测试概要设计设计概要设计评审查错与更改单元测试计划和准备单元测试计划和准备查错与更改详细设计评审详细设计单元测试查错与更改详细设计评审详细设计单元测试评评审Fig.3根据该模型,在软件项目开始时,应该启动软件测试活动,该活动包括以下几个方面的内容:(1)确定测试策略:进行风险分析,确定关键特性和测试强度,估算测试费用等;(2)编制测试计划;(3)组建测试组,并对测试人员进行必要的培训;(4)建立监控与报告机制;(5)准备必要的硬件和软件资源。在开发过程的各个阶段,需要进行需求评审、规格评审、概要设计评审和详细设计评审,并完成相对应的验收测试、系统测试、集成测试和单元测试的计划和准备工作。测试计划和准备工作主要包括根据关键特性确定测试的优先级,进行测试用例设计等方面。当单元测试、集成测试、系统测试或者验收测试中发现错误时,测试进入了测试、查错、更改、再测试循环。在该循环中,通过测试发现错误,然后对发现的错误进行原因分析并定位,再对有关程序和文档进行更改。一旦发生更改,将会进入再测试(递归测试),以验证错误是否得到排除以及是否引入新的错误。W-模型使我们树立了一种新的观点,即软件测试并不等于程序测试,不应仅限于程序测试的狭小范围内,而应贯穿于软件定义与设计开发的整个过程。因此,需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。软件测试的研究方向方向一:通用测试理论长久以来测试研究的一个梦想是:构建可靠且全面的理论来支持和丰富测试技术。基于“通用”测试理论即一致且严格的框架,测试人员可以了解已有测试技术的相对优势和局限性,在给定条件下,选出最合适的一种或几种技术。软件测试理论开创性工作要追溯到上世纪七十年代晚期首次提出可靠的或理想的测试套件的概念。这些工作告诉我们:测试永远不够精确。通用测试理论需要关注几个关键技术,如明确测试假设,测试效率,组合测试和测试实验。方向二:基于测试的建模基于模型测试是利用软件设计时定义的模型驱动测试过程,特别是自动生成测试用例。使用符号语言如UML或Z进行建模。从测试人员的角度出发,理想情况应是将顺序颠倒过来:不是利用模型进行测试,而是构造模型有效地测试软件,将当前“基于模型的测试”改为“基于测试的建模”。方向三:100%自动测试随着软件数量和复杂性的增加,自动化成为一种保证软件质量的方法。大部分现有测试研究针对提高自动化程度,通过研究先进的技术来产生测试输入,或自动化测试过程。100%自动测试是一个强大的集成测试环境,作为软件的一部分被完善和配置,可以自动地产生或恢复所需的桩代码(驱动、桩程序和模拟器)生成最合适的测试用例,执行并最终发布测试报告。方向四:测试效率最大化软件测试研究的最终目标是应用测试方法、工具和过程开发高质量的软件。测试效率最大化面临的最大障碍是现代系统不断增加的复杂性。这种复杂性不仅影响了系统本身,也影响系统配置环境。可测试性是比系统怎样建模更广泛的一个概念,它还涉及到实现特征,测试技术本身以及其支持环境。方向五:新范型和新环境下的软件测试面向服务的体系架构(SOA,Service-OrientedArchitecture)已成为基于Web的分布式系统(如电子商务、电子政务等)的主要发展趋势。SOA提出了一种松散耦合的、基于标准的、面向服务的体系架构,以有效解决分布式、异构环境下,应用系统的集成问题。结束语随着软件应用范围的不断扩大和人们对软件质量要求的不断提高,软件测试越来越受到重视。软件测试是一门技术,是一个从实践到理论再由理论到实践循环往复的过程,是一门集编程方法、模型设计、统计方法、预测等多领域的实践性很强的综合学科。不同系统、不同环境、不同对象所关心的侧重点不同,采用的测试方法自然随着具体系统而设定。参考文献:[1]赵斌编著《软件测试技术经典教程》科学出版社2007年5月[2]赵秀梅现代应用软件测试方法综述晋东南师范专科学校学报[期刊论文]2004,21(2)[3]黄柏素.梅宏软件工程--实践者的研究方法[4]景涛.白成刚.胡庆培.蔡开元构件软件的测试问题综述[期刊论文]-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论