面向对象软件测试及其方法研究

面向对象软件测试及其方法研究

何伟[1]2013年在《基于方法消息路径的面向对象软件自动化集成测试方法研究》文中指出软件控制论旨在探讨软件工程与控制科学的交叉应用。以软件控制论为指导,可以将控制理论应用于软件工程领域,以软件过程作为被控对象,通过分析和优化软件过程中的反馈机理,达到改进软件过程、提高软件质量的目的。集成测试是指将多个软件模块按照软件规格说明的要求组装为一个完整系统时进行的测试,重点检查各模块间的交互是否正确。面向对象软件开发技术的迅速发展提高了软件的可重用性和可维护性,但也给软件的集成测试带来了新的挑战。方法消息路径是由消息连接起来的方法执行序列,可以很好地体现面向对象软件中模块之间通过消息传递机制实现方法调用的交互过程。因此,深入研究基于方法消息路径的面向对象软件集成测试方法对于提高面向对象软件的质量具有重要的理论和应用价值。本文从软件控制论角度着手,将面向对象软件的集成测试过程视为被控对象,探讨如何针对方法消息路径利用优化技术实现面向对象软件的自动化集成测试。研究重点围绕方法消息路径的自动生成、方法消息路径生成中搜索空间的约简、基于方法消息路径的集成测试用例自动生成以及集成测试用例自动再生成等关键技术展开,以提高面向对象软件集成测试的有效性。主要研究内容及成果归纳如下:1、结合现有程序分析技术探讨了一种基于调用图的方法消息路径自动生成方法,并针对类层次分析和安德森指向分析这两种典型调用图构建算法就方法消息路径的生成效率进行比较,结果表明采用安德森指向分析较类层次分析算法可以更有效地实现方法消息路径自动生成,为后续基于方法消息路径的集成测试用例自动生成研究奠定了技术基础。2、对于复杂的面向对象软件,利用程序分析技术生成方法消息路径时,搜索空间会急剧膨胀,导致方法消息路径生成效率下降。为此,本文设计并实现了两种搜索空间约简策略,通过约简面向对象软件外部类库代码对应的调用图节点以及约简异常处理代码对应的控制流图节点,以减小方法消息路径生成的搜索空间。实验结果表明这两种搜索空间约简策略是确实可行的。3、考虑到面向对象软件的多继承类系和非公有方法给集成测试用例自动生成带来的巨大挑战,本文提出一种演化算法与强化学习机制相结合的测试用例自动生成方法。通过强化学习机制执行同构替换操作并计算相应操作的累计效益,指导演化算法搜索满足测试覆盖目标的集成测试用例。实验结果表明采用该方法能够有效地为面向对象软件生成集成测试用例。4、对于已有测试用例库的面向对象软件,为利用现有测试用例提供的大量方法调用信息,指导测试用例的自动生成,提高测试生成的有效性和可读性。本文提出了一种基于序列模式挖掘技术的测试用例自动再生成策略。该策略通过挖掘测试用例库获取常用的方法调用子序列——序列模式,并以所得序列模式为基础构建新的集成测试用例。实验结果表明采用该策略能够生成有效且可读性良好的集成测试用例。5、监视控制与数据采集系统广泛应用于航空航天、化工冶炼、核能发电、武器装备等关键领域。将本文提出的基于方法消息路径的面向对象软件自动化集成测试方法应用于openSCADA监视控制与数据采集软件的集成测试中,结果表明采用该方法能够有效地生成其方法消息路径;以方法消息路径为测试覆盖目标,能够有效地生成集成测试用例,实现openSCADA监视控制与数据采集软件的集成测试。

苏荟[2]2005年在《基于UML的面向对象软件簇级测试方法研究》文中认为随着面向对象软件开发方法的广泛应用,针对于此的测试方法也得到了越来越多的重视。面向对象软件的特征,如封装性、继承性、多态和动态绑定等,这些特征的引入增加了测试的复杂性。使得针对于此的测试与传统的软件测试有很大的不同。特别是针对类级和簇级的测试,给测试带来了很大的困难。 统一建模语言UML具有定义良好、易于表达、功能强大的特点,不仅支持面向对象的分析和设计。而且支持从需求分析开始的软件开发的全过程。UML的目标是以面向对象的方式来描述任何类型的系统。它提供了非常丰富的图例模型,为将其引入到软件测试中提供了可能。 本文讨论了面向对象软件的特点及其对测试的影响,同时分析研究了面向对象软件簇级测试的方法。本文研究设计了一个基于UML顺序图的簇级测试的模型,该模型主要针对C++语言。它以UML顺序图为OO软件测试的重要依据,通过对UML文档的信息提取;同时,对源代码插装,以提取程序运行时类间实际的交互信息。在此基础上,编译、运行插桩后的代码,分析测试结果,生成测试报告。

张术梅[3]2006年在《基于UML的软件测试用例自动生成技术的研究》文中指出软件测试是软件开发中极为重要的过程,通常,测试在整个软件开发过程中所占的比例约为40%,因此测试技术的发展对于缩短测试周期、降低维护成本、提高软件质量有重要意义。软件测试在软件开发过程中有着越来越重要的地位。它贯穿于软件定义与开发的整个期间即整个软件开发过程。而测试用例的生成设计又是软件测试过程中的难点和重点所在,而它的主要依据应该来自于软件需求和软件设计。统一建模语言(UML)是一种通用的图形化语言,在面向对象系统的分析和设计中,它已经成为事实上的工业标准。随着UML在软件界的应用日益广泛,基于UML的软件测试也日益引起人们的重视。现今,软件测试界对基于UML的软件测试研究主要集中在UML状态图和活动图,并提出了一些相应的分析方法。目前虽然面向对象的程序设计方法在全世界范围内得到广泛应用,但是相对而言对面向对象软件测试方面的研究却是非常滞后的。另一方面,目前基于UML模型的测试用例自动生成技术的研究主要集中在类的层次,而且大多数是以State Diagram为基础进行分析的。类级测试的一个重要方面就是对类状态的测试。基于状态的测试主要考察类的实例在其生命周期各个状态下的情况。这类方法的优势是可以充分借鉴成熟的有限状态自动机理论。类的基于状态的测试是目前面向对象软件测试技术研究的热点问题之一。这方面研究的基本方法之一就是利用传统的基于扩展有限状态机的状态测试方法,其核心问题是测试用例自动生成方法的研究。本文的研究主要针对叁点,一是关于状态的研究,二是关于模型的研究,叁是测试用例的创建及其对应用程序进行的测试的过程的研究。在总结类的基于状态测试的理论基础上,结合UML的状态图和类图模型,研究和探讨了状态识别(预测)方法,其中引入了状态不变量对状态进行预测;将UML模型转变成代码,使模型和代码保持一致性;测试用例的创建及其对应用程序进行的测试的过程。

魏少涵[4]2009年在《面向对象软件测试方法分析与研究》文中认为软件测试是伴随着软件的出现而产生的。早期的软件测试通常由程序员自行完成,也就是“程序调试”。随着软件开发技术的发展,用面向对象方法开发软件逐渐成为主流。然而面向对象开发方法在给软件开发工作带来便利的同时,也在软件测试方面提出了严峻的挑战。本文首先介绍软件测试的起源与发展,分析了现阶段软件测试在国内外研究的情况,然后讨论了传统的软件测试方法、技术、过程和目前比较流行的软件测试工具及其在面向对象软件测试领域中的应用。在此基础上,我们指出了面向对象软件测试由于继承、封装、多态等特性导致不能完全简单沿用传统的软件测试方法和技术,阐述了发展面向对象软件测试方法的意义。论文总结了面向对象软件测试的测试模型、测试方法、测试过程,讨论了面向对象开发模型。根据开发模型,可将软件测试分为面向对象分析的测试、面向对象设计的测试,以及面向对象编程的测试。测试方法包括正交试验设计、前置条件测试方法、基于类的一些测试方法、交互测试等。测试过程包括方法测试、类的测试、类簇的测试和系统测试。结合前叁章所述方法,论文从一个软件实例即论坛注册系统的规格说明出发,详细分析了论坛注册系统的每个栏位的限定条件,采用等价类划分、边界值分析、正交试验设计等黑盒测试方法,设计了相关的测试用例,通过执行这些实例,测试该系统的功能是否符合需求。

朱玉业[5]2006年在《基于UML的面向对象的软件测试技术研究与应用》文中研究表明软件测试是软件开发工程中极其重要的一环,是保证软件质量、提高软件可靠性的关键。本文从传统软件测试技术出发,从软件工程的角度对面向对象的基本概念进行分析,讨论了面向对象软件的特点对软件测试的影响及面向对象软件测试的内容。从UML模型的特点入手,分析统一建模语言(UML)对面向对象软件测试的支持。 本文研究了基于UML的面向对象的软件测试的方法,提出了一种基于协作图的协作集成测试模式,并给出了一种基于UML协作图的面向对象的集成测试用例的生成方法,该方法采用基于线程执行的方法识别协作图中的场景路径,用控制流和数据流方法遍历场景路径获取交互中的参数变量和方法调用序列,使用范畴—划分方法找到场景路径上的变量、方法、输入、输出、环境条件的合理组合,并以此作为覆盖该场景路径的测试用例。 本文把上述方法应用于本单位自主开发的校园自助银行(SHB)项目的测试中,实例验证了上述方法的可行性,并从实际应用的角度出发对本文研究并验证的方法提出了有待进一步讨论和改进的方法。

赵瑞莲[6]2001年在《软件测试方法研究》文中研究指明软件测试作为保证软件质量,提高软件可靠性的重要手段,在软件开发中起着不可替代的作用,其关键与核心是测试数据生成。本文较全面系统地阐述了软件测试领域的主要研究方向和迄今为止有代表性的研究成果,提出了一种基于规范和基于程序域分析的软件测试方法。从软件规范说明和程序实现两方面,对软件测试数据的生成方法进行了系统的研究和具体的实现。实验表明:基于本文所提方法产生的测试用例,可以有效地提高测试效率。 本文创新性的工作主要有以下几方面: 1).提出了一种基于数据流分析的程序运行域自动确定方法,并开发了一个C程序运行域自动确定系统ADSOD。程序运行域的确定对于测试数据的选取,尤其对边界值分析,有着直接的指导作用,是本文研究工作的基础和重要的组成部分。其关键是如何实现特殊情形下输入变量的取值分析。该系统的实现为后续功能域和运行域的重合验证奠定了基础。 2).提出了一种基于规范和基于程序域分析的软件测试方法。分析了边界测试数据的选取原则,证明了功能域和运行域重合的充分必要条件,并探讨了基于功能域和运行域重合验证的测试数据生成方法。 3).提出了一种深度优先搜索、向后回溯的程序路径确定方法,可以构造出程序的所有主要路径。程序路径确定是一件非常困难的事情。该方法的实现为基于路径的测试数据自动生成提供了可能。 4).提出了一种基于谓词切片的字符串测试数据自动生成方法。针对字符串谓词,讨论了选定路径上给定谓词的谓词切片的动态生成算法,以及基于谓词切片的字符串谓词边界ON-OFF测试点的自动生成方法,并定义了字符串间的距离。实验表明:基于该方法生成的测试数据,可有效地检测由于谓词边界偏移而导致的域差错。

张霞[7]2008年在《面向对象软件类测试用例自动生成研究及应用》文中指出面向对象软件测试是面向对象软件开发过程中极其重要的一环,是保证软件质量、提高软件可靠性的关键。随着面向对象软件开发技术的快速发展,面向对象的特征使得传统的软件测试技术已不能满足需要,因而面向对象软件测试技术的研究与应用已成为当务之急。面向对象的软件测试分为四级:方法级测试、类级测试、类簇级测试和系统级测试。其中,类级测试是测试面向对象软件的关键。而测试用例的选择又是进行测试的一个难题,测试用例合适与否直接关系到错误能否被预期测出。对于测试用例自动化生成方法,目前虽然有一些方法被提出并使用,但由于其局限性,在实际中还没有完善的解决方法,只能凭借工程经验判断。论文在对测试用例自动生成技术文献综述的基础上,提出了一种面向对象类测试用例自动生成的方法,并以此方法成功的开发了类测试用例自动生成系统。本文具体分析了测试用例自动生成方法、类测试用例设计方法和类级测试策略,讨论了类测试用例的组成部分:测试序列和测试数据,提出了基于UML状态图的测试序列生成方法和基于遗传算法的测试数据自动生成方法。本文阐述了将具有并发结构的UML状态图展平为无并发结构的扩展有限状态机的方法,构造了基于扩展有限状态机的满足状态转移覆盖的测试序列,探讨了针对指定测试序列利用遗传算法作为核心搜索策略的测试数据生成的基本实现思路,提出了遗传算法与测试问题的唯一接口——适应度函数的构造方法,并使用适应度缩放法改进了遗传算法,不仅解决了算法的“早熟”问题,而且加快了算法的收敛速度,提高了搜索效率。本文以遗传算法为核心算法,设计和实现了基于指定测试序列的类测试数据自动生成系统,并用一个自动咖啡出售机程序验证了该系统,通过实验证明了该系统的优越性。

李军义[8]2007年在《软件测试用例自动生成技术研究》文中认为软件测试的工作量很大,据统计,测试时间会占到总开发时间的40%,一些可靠性要求非常高的软件,测试时间甚至占到开发周期的60%。由于测试的许多过程是重复性的,因此一些软件测试工作可以应用自动化方法来实现。近年来,虽然软件测试自动化技术与方法有了很大的发展,但还远没有成熟,现有的测试用例自动生成技术还无法满足当前软件测试的实际需要。为此,本文研究软件测试用例自动生成技术,对于解决目前测试现状有着重要的理论意义和实用价值。本文首先综述了目前国内外在软件测试用例自动生成技术方面所做的工作,并基于已有的一些研究成果,对软件测试用例自动生成技术进行了深入研究。主要包括以下五个方面的研究内容:基于EDPN模型的测试用例自动生成研究、基于扩展EDPN模型的测试用例自动生成研究、基于程序执行和回溯策略的路径分析与测试研究、基于选择性冗余的路径分析与测试研究、基于组合匹配的测试数据自动生成研究。论文主要工作如下:1.基于EDPN模型的测试用例自动生成研究:基于面向对象软件测试的层次划分、测试方法,给出了EDPN模型的定义,设计了基于EDPN模型的类测试模型,讨论了从UML图到EDPN图的转换,提出了基于EDPN有标记的唯一输入输出(UIO)测试用例的生成方法,并设计了相应的算法,讨论了上述算法自动生成测试用例的覆盖率问题,结果表明所有的状态转移都至少被覆盖一次,因此算法能保证测试是充分的。2.基于扩展EDPN模型的测试用例自动生成研究:在分析了面向对象系统中类之间相互关系的基础上,提出了一种基于带权EDPN迭代的面向对象系统的分割算法,以迭代的方法将面向对象系统分割成不同粒度而功能独立的测试子系统。另外,针对交互测试,提出了基于组合EDPN模型的交互测试方法,并将该模型运用于OATS方法中,扩展了OATS方法。给出了一种基于扩展OATS方法的测试用例自动生成算法,解决了组合冲突问题、测试用例过多而产生的测试用例爆炸的问题以及OATS方法不易扩展的问题等。最后针对类的层次测试,提出了一种基于事件消息驱动的Petri网的协同路径生成算法,分析表明算法符合OSC测试标准。3.基于程序执行和回溯策略的路径分析与测试研究:提出了基节点、控制节点、定义节点、定义相关控制节点集的概念,并给出了定义相关控制节点集的求解算法,在有机结合分支函数线性逼近和程序DUC表达方式的基础上,提出了一种基于倒置二叉树的测试数据自动生成算法。基于自动构造的倒置二叉树,新算法能快速找出程序中所有从源节点到基节点的可行路径,同时能为每条可行路径自动生成适合的测试数据。4.基于选择性冗余的路径分析与测试研究:基于选择性冗余思想,提出了一种测试数据自动生成算法。算法首先利用分支函数线性逼近和极小化方法,在找出程序中所有可行路径的同时对部分可行路径自动生成适合的初始测试数据集;当利用分支函数线性逼近和极小化方法无法得到正确的测试数据时,则针对未被初始测试数据集覆盖的谓词和子路径,基于选择性冗余思想,进行测试数据的增补。分析表明算法减少了测试数据的数量,提高了测试性能。5.基于组合匹配的测试数据自动生成研究:在已有成对测试的测试生成策略的基础上,提出了一种新的初始测试数据自动生成算法,然后基于匹配组合的思想,提出了一种成对测试数据自动生成算法。实验结果表明:从生成的测试集的大小及测试生成的时间消耗两方面评价,新算法要优于已有的相关算法。

顾莹莹[9]2005年在《基于OSD模型的面向对象软件类测试方法研究》文中指出面向对象软件测试是面向对象软件开发中非常重要的一个环节,是保证软件质量、提高软件可靠性的关键。面向对象技术中的封装、继承、多态等机制给整个软件开发周期的分析、设计、实现都带来了巨大的好处,但同时也对软件测试人员提出了新的问题和挑战。到目前为止,国内外的众多研究人员尚未形成一套较为成熟与完善的测试理论与方法。类是面向对象程序语言的基本组成单位,所以类测试是整个面向对象软件测试的关键所在。本论文主要研究一种利用OSD 模型的基于状态的类测试方法。论文首先提出了新的类测试层次划分策略,引入并修改了BBD 块分支图模型和OSD 对象状态图模型,并利用这两种模型进行类测试。论文利用BBD 模型分析类成员方法,结合该模型的特点采用基本路径测试和状态变量组合测试分别进行结构测试和功能测试;利用OSD 模型描述对象和对象状态间的转移,结合程序实例详细研究了OSD 模型的构造方法,并利用OSD 模型生成合理的测试消息序列树,以便于生成测试用例。最后,论文针对传统状态测试方法在发现错误机制上存在的不足,提出了利用OSD 模型与系统分析时设计的状态图模型进行比较的思想来发现传统状态测试难以发现的错误。论文将类测试分为方法测试和状态测试两部分,并将BBD 模型和OSD 模型相结合用于这两部分的测试,给出了一个较为完整的类测试过程,有相当的理论和实用价值。

左咏露[10]2003年在《面向对象软件测试及其方法研究》文中研究表明随着计算机技术的不断发展,软件的规模和复杂度都有了很大的提高。软件失效已成为系统瘫痪的主要原因。因此,提高软件质量及可靠性已成为当前软件工程领域的重要任务。 软件测试是保障软件质量的重要途径。面向对象软件技术的迅速发展使得面向对象软件测试工具的研制与开发已成当务之急。因此,本文将面向对象软件的测试特点及方法作为研究对象,主要论述了面向对象软件测试的基本特点、面向对象机制对测试的影响、面向对象软件测试的层次划分以及类间的测试次序等。通过大量文献资料的阅读总结了八种有代表性的面向对象软件测试方法,并对它们的优劣进行了评价。 在上述基础上,本文选择了基于状态的类测试用例生成作为研究的重点。类的测试用例可分为两部分,测试序列和测试数据。本文采用基于状态机模型的测试方法生成测试序列,通过构造一个实验性的系统对其软件实现进行了研究;对于测试数据的生成,由于目前尚无真正有效的方法,本文在传统软件测试的基础上提出了叁种可行的方案,并对它们的优缺点进行了比较与评价。 本文研究的主要目的是为以后的面向对象软件测试工具开发打下基础。

参考文献:

[1]. 基于方法消息路径的面向对象软件自动化集成测试方法研究[D]. 何伟. 北京化工大学. 2013

[2]. 基于UML的面向对象软件簇级测试方法研究[D]. 苏荟. 西安理工大学. 2005

[3]. 基于UML的软件测试用例自动生成技术的研究[D]. 张术梅. 大连交通大学. 2006

[4]. 面向对象软件测试方法分析与研究[D]. 魏少涵. 厦门大学. 2009

[5]. 基于UML的面向对象的软件测试技术研究与应用[D]. 朱玉业. 山东科技大学. 2006

[6]. 软件测试方法研究[D]. 赵瑞莲. 中国科学院研究生院(计算技术研究所). 2001

[7]. 面向对象软件类测试用例自动生成研究及应用[D]. 张霞. 太原理工大学. 2008

[8]. 软件测试用例自动生成技术研究[D]. 李军义. 湖南大学. 2007

[9]. 基于OSD模型的面向对象软件类测试方法研究[D]. 顾莹莹. 上海师范大学. 2005

[10]. 面向对象软件测试及其方法研究[D]. 左咏露. 西安理工大学. 2003

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

面向对象软件测试及其方法研究
下载Doc文档

猜你喜欢