您好,欢迎访问三七文档
软件测试综述摘要:本文论述了软件测试的相关概念,测试技术与测试模型。包括软件的静态测试,动态测试,白盒测试技术、黑盒测试技术,V测试模型,W测试模型,X测试模型等。关键词:软件测试、黑盒测试、白盒测试、测试模型1软件测试概念软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程[1]。测试的目的是以较少的用例、时间和人力找出软件设计开发全周期中各个阶段的错误以及软件中潜在的各种错误和缺陷,以便分析错误的性质与位置而加以纠正,以确保系统的质量。找错的活动称测试,纠错的活动称调试[2]。广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。如设计评审、系统测试。狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价[3]。2软件测试技术如图l所示,现有的软件测试技术通常分为静态测试和动态测试[4]。静态测试是不执行程序代码而寻找程序代码中可能存在的缺陷或评估程序代码的过程。静态测试包括主要由人工进行的代码审查、代码走查、桌面检查以及主要由软件工具自动进行的静态分析。如果广义地理解,静态测试还包括软件需求分析和设计阶段的技术评审[5]图1软件测试技术的分类2.1静态测试技术静态测试是不执行程序代码而寻找文档、程序代码中可能存在的错误的过程。静态测试可以手工进行,也可以借助软件工具自动进行。它不必动态地执行程序,可以由人工进行,实施不需特别条件,在发现了错误的同时也就定位了错误。静态测试主要包括由人工进行的软件需求评审。软件设计评审,代码走查以及主要由软件工具自动进行的工具辅助静态分析。它适用于计算机软件单元、计算机软件部件、计算机软件配置项的源代码。关于静态测试的具体方法在文献[7]中有详细论述。2.2动态测试技术动态测试是在抽样测试数据上执行程序并分析输出以发现错误的过程。根据测试理论.如果抽样测试数据满足一定要求,通过测试可以发现程序中大多数错误,并且可以评估程序的质量(正确性,可靠性等)。它必须实际运行被测试程序,必须生成测试数据来运行程序,分析测试结果工作量大,动态测试中涉及多方面工作。人员多、设备多、数据多,要求有较好的管理和工作规程。因此动态测试包括三部分核心内容:生成测试数据,执行程序与验证程序的输出结果。动态测试适合单元测试、集成测试、系统测试。关于动态测试中的测试数据生成主要有两种技术:黑盒测试和白盒测试[8]。白盒测试是基于源代码的测试,和其它软件测试方法相比,自盒测试技术更容易发现软件故障。常用的软件测试方法有:覆盖测试技术、域测试技术、符号测试技术、插装测试技术和变异测试技术等。域测试技术和符号测试技术这几年的研究并不是很多,主要原因是其难以对其实施自动化。插装测试一般融合在覆盖测试之中,作者所研究的软件单故障模型就是变异测试的一种。黑盒测试是从软件的外部对软件实施测试,也常形容为闭着眼睛的测试。常用的黑盒测试有等价类划分法,因果图法、正交实验法、边值分析法、判定表驱动法、功能测试,状态测试等。近些年来,一些新的黑盒测试方法或上述方法的改进方法相继被提出,例如,失败状态测试,凭经验进行测试等等。对黑盒测试而言,测试用例生成的计算复杂性和故障的检错能力仍是评价方法好坏的重要标准。黑盒测试中,测试用例的生成一般都是靠人工来完成的,许多方法对大型软件的测试是力不从心的,它需要花费太多的人工劳动。黑盒测试在发现故障的能力上目前也缺乏实验数据的支持[9]。3软件测试模型软件模型是对软件行为和软件结构的抽象描述。软件行为可以用系统输入序列、活动、条件、输出逻辑或者数据流进行描述,软件结构则使用组件图、部署图等进行描述。针对测试任务,通过对软件功能和结构进行抽象并用易于理解的方式进行描述,获得的模型就是对被测试软件系统精确的描述,可以用于软件测试。一般对软件不同行为要用不同模型进行。例如,控制流图、数据流图和程序依赖图表达了程序和代码结构间的行为关系,决策表和状态机则可以描述软件外部行为。基于模型的软件测试可以根据软件行为模型和结构模型生成测试用例。当前软件规模庞大也使基于程序的测试十分困难,而基于模型的软件测试方法不仅可以有效地提高测试效率,提高测试例生成的自动化程度,进行测试失效辨识也有利于评价测试结果[10]。3.1V测试模型V测试模型结构如图2所示。图2V模型结构图V模型[11]是目前软件测试模型中较广泛使用的模型。如图2所示,左边下降的是开发过程各阶段,与此对应的是右边测试过程的各个阶段。测试先从单元测试开始,然后是集成测试、系统测试和验收测试。例如:单元测试检查代码是否符合原先的详细设计;系统测试检查集成后的产品是否符合需求说明书的要求。V模型的优点是非常明确的标明了测试过程中存在的不同阶段,并且清楚地描述了这些测试阶段和开发过程各阶段的对应关系。3.2W测试模型W测试模型结构如图3所示.图3W测试模型结构图W模型是对V模型的改进,针对“测试是开发之后的一个阶段”等问题,W模型强调需求、功能和设计同样要测试,W模型由两个V模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行且相对独立的关系。3.3X测试模型X4测试模型结构如图3所示.图4X测试模型结构图X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生[12]。3结束语测试作为软件开发的一个必要的组成部分,需要良好的组织和管理。件测试技术的研究方向是软件测试的自动化。各种测试方法将能直接评估软件的可靠性,软件测试性分析与设计方法将更加实用化。通过合适的模型检测,能有效的提高软件测试的效率。多个监测模型的综合应用,相互补充,达到软件测试的最好效果。模型检测技术与软件测试技术集成得越紧密软件测试的效率会更高。参考文献[1]GlendfordJmayers.TheArtofSoftwareTesting[M].Jhonwiley&Sons,Inc.NewYork,1979.[2]吴晓周.软件测试综述[J].软件导刊,2009,5(8):5-6.[3]王荣.嵌入式软件测试方法[J].航空兵器,2003,5(1):12-14.[4]单锦辉,姜英,孙萍.软件测试研究进展[J].北京大学学报,2005,41(1):134-145.[5]KingS,HammondJ,ChapmanR,etai.IsProofMoreCost-EffectiveThanTesting?IEEETransactionsonSoftwareEngineering,2000,26(8):675-686[6]WongV.andLeungV.Locationmanagementfornextgenerationpersonalcommunication[7]networks[J].IEEENetwork,2000,14(10):18–24.[7]朱鸿,金凌紫.软件质量保障与测试[M].北京:科学出版社.[8]陈开颜,王希武,孙会瑶,李惠君,赵强.软件质量与软件测试[J].河北省科学院学报2004,25(2):18-21.[9]李东,宫云战.软件测试方法综述[J].装甲兵工程学院学报,2003,17(2):9-13[10]颜炯,王戟,陈火旺.基于模型的软件测试综述[J].计算机科学,2004,31(2):184-187[11]WilliamELewis.SoftwareTestingandConlinuousQualifyimyrovement[M].FloridaCRCPress,2000:41-45.[12]孟庆鑫,张龙.软件测试模型的探讨[J].计算机与网络,2014(5):66-69
本文标题:软件测试综述
链接地址:https://www.777doc.com/doc-7321574 .html