面向路径的测试数据自动生成方法研究

面向路径的测试数据自动生成方法研究

解圣霞[1]2007年在《基于基本路径测试的测试用例自动生成应用研究》文中进行了进一步梳理软件测试是软件开发过程中不可缺少的环节,其贯穿在软件开发过程的每一个阶段。软件测试是保证软件质量和可靠性的重要手段。在软件测试中,测试自动技术的研究尤为重要,可以提高测试各阶段工作的自动化程度,同时减少人工测试的负担。实现测试过程自动化的关键是自动生成测试用例。基本路径测试是白盒测试中一种很重要的方法。本课题从整个软件项目测试的相关技术研究出发,结合“南通家惠油脂管理系统”的工程实际,对基本路径测试的测试用例自动生成的应用展开研究,主要研究Delphi编程环境下软件系统的测试用例的自动生成,着重研究Delphi程序的程序图的自动生成。本文通过对国内外软件测试技术现状的分析,比较了一些面向路径的测试数据自动生成方法,提出了一种新的基于路径测试数据自动生成的技术,一种基于数据流的软件测试序列自动生成技术。此方法首先对待测试程序进行静态分析,然后根据程序的语句间关系生成程序图,最后基于数据流测试准则,根据程序图以及变量的定义和使用信息构造结构性测试序列集合。本文着重研究从源程序到程序图的自动生成,程序图将以带权邻接矩阵的方法存储到数据库中。

李飞宇[2]2013年在《基于内存建模的测试数据自动生成方法研究》文中研究说明软件测试是保证软件质量和提高软件可靠性的主要手段,其关键和核心问题之一是测试数据的生成。测试数据自动生成技术可以降低软件的开发成本,大大提高软件测试的效率,是当今软件测试自动化领域的一个研究重点。结构测试是一种重要的软件测试方法,其针对程序内部结构的语句覆盖、分支覆盖和条件覆盖等测试问题都可以归结为面向路径的测试数据生成问题。目前已经提出的面向路径的测试数据自动生成方法主要分叁类:基于符号执行的静态方法、基于程序实际执行的动态方法和基于动态符号执行的动静结合的方法。这些方法大部分针对数值型变量的测试数据自动生成。复杂结构体、字符串和数组是C语言中常用的数据类型,并且在实际程序中有广泛的应用。传统的符号执行方法很难模拟这些变量在程序执行过程中的操作语义,而动态方法又很难构造适合这些变量的适应值函数。为此,本文提出一种静态的基于内存建模的测试数据自动生成方法,该方法可以自动生成能执行被测路径的复杂结构体、字符串和数组测试数据。本文主要完成了以下工作:(1)创建了一种由四个抽象内存表构建的抽象内存模型:元变量抽象内存表PMTable、结构变量抽象内存表STMTable、字符串变量抽象内存表SRMTable和数组变量抽象内存表ARMTable。该抽象内存模型可以精准的记录复杂结构体、字符串和数组变量在程序执行过程中的状态。(2)设计了复杂结构体、字符串和数组变量在抽象内存模型中的操作规则:通过对抽象内存模型的操作可以模拟指向复杂结构体和字符串的指针操作;字符串常用的库函数操作可以准确的映射到对抽象内存模型的操作;通过对抽象内存模型的操作可以模拟动态下标对应的数组元素的操作。(3)提出了基于该抽象内存模型的复杂结构体、字符串和数组测试数据自动生成算法。利用此抽象内存模型辅助符号执行被测路径,把路径执行过程中复杂结构体、字符串和数组变量的语义操作映射到对抽象内存的操作,通过抽象内存来精准的记录路径的约束条件。并设计了一种分两步进行字符串和数组路径约束条件求解的方法,首先对字符串长度、字符串中受约束字符的位置、数组长度和数组中动态下标变量进行约束求解,之后再对字符串中确定位置的字符元素和数组中确定下标的元素进行求解,从而提高了求解效率并且解决了数组动态下标问题。(4)对所提算法进行实例分析,并且在自动单元测试系统UATS基础上对该方法进行了实验,实验结果证明了该方法的可行性。

陈路远[3]2007年在《基于蚂蚁算法的路径测试数据自动生成方法研究》文中研究说明随着信息化的不断深入,软件产品的应用日益广泛,规模越来越大,复杂程度越来越高,软件质量问题日益成为软件技术领域研究的重点和热点问题。软件测试是现阶段保障软件质量的重要手段。软件测试中如:语句覆盖、条件覆盖等都可以归结为面向路径测试数据的生成问题。自动求解该问题将有效地提高软件测试的效率和质量。本文主要研究的是路径测试数据的自动生成方法。路径测试已经被证明是一个NP问题,是对程序进行结构测试的重要方法。令人遗憾的是目前大部分的测试还采用的是人工测试的方法。事实上,测试工作有很大的重复性,极有可能使用计算机进行自动化测试。研究测试数据的自动生成,可以降低手工测试的高额成本,减轻测试人员所必须付出的大量劳动,同时提高测试过程的可信赖程度。路径测试是软件测试的基本问题,因此路径测试数据自动生成方法的研究,对实现软件测试过程自动化,有着十分重要的现实意义。本文首先介绍了路径测试数据的生成步骤。总结了现有的测试方法,并对现有的一些测试数据自动生成的方法如:随机法、静态法、动态法和试探法做了重点介绍。其中,并着重介绍了使用人工智能的试探法,分别分析了如:使用遗传算法、模拟退火算法以及模拟退火遗传遗传混合算法自动求解路径测试数据自动生成问题。蚂蚁算法作为最成功的集群算法之一,已成功解决了诸多NP问题,但在求解路径测试问题上并不多见,故本文选择了使用叁种二进制蚂蚁算法:BAA、BAS和BACS进行求解路径测试数据自动生成问题。并对解进行分析讨论。由于蚂蚁求解问题是建立在图的表示基础上的,在应用蚂蚁算法解决问题之前应首先将路径测试输入数据的解空间转化为可以被蚂蚁求解的搜索空间。本文选用的是使用二进制编码将测试的输入空间离散化来构成二进制蚂蚁的搜索空间。由于,二进制蚂蚁搜索空间的特殊性,蚂蚁很容易陷入某些边上是算法停滞,在求解过程中调整算法的一些参数,使算法得到探索与开发的平衡。另外,二进制蚂蚁是对个体蚂蚁的智能要求比较低,因此在二进制蚂蚁算没有启发式信息的概念,从而导致有时算法所产的效果很糟糕,在比较叁种蚂蚁算法的求解效果后,在这叁种蚂蚁算法求解效果最好的BAS中加入局部搜索来弥补没有启发式信息带来的不足。最后使用叁角形分类程序TRITYP和佣金COMMISSION问题作为例子,生成了该程序的测试数据,并对实验数据进行了分析。实验结果表明,加入局部搜索的自适应BAS有着良好的探索与开发的平衡,保证解空间的多样性和算法的求解效率,避免算法陷入局部最优,从而取得良好的求解效果。

张云龙[4]2014年在《基于演化算法的软件结构测试数据自动生成方法研究》文中进行了进一步梳理软件测试的目标是为了发现程序中潜在错误,其中的关键因素就是如何快速自动化的生成测试数据,传统的人工测试耗费大量人力物力,因此自动化测试技术越来越受到人们的重视。测试数据自动生成技术能够自动的根据被测程序的要求生成测试数据,提高了测试效率,降低了软件开发的成本。近年来,人们对测试数据自动生成技术的研究越来越广泛,在很多领域取得了一定的研究成果,并在功能测试、结构测试、性能测试和面向对象测试等领域取得了较好的应用。演化测试技术使用演化算法获取测试数据,与传统的测试技术相比具有很多优越性。目前针对演化测试数据自动生成技术的研究主要集中在面向路径覆盖方向,其关键问题在于如何构建一个合适的、具有较好导向性的适应值函数来评价测试数据的质量。本文介绍了几种演化测试优化方法,测重说明了其优点和能有效解决的问题,提出了一种改进的演化测试数据生成方法,可以生成更优的测试数据。论文主要在以下几个方面进行了研究:(1)对目前国内外结构测试中面向路径覆盖的测试数据生成方法进行了深入的研究,对各种结构测试数据自动生成方法进行了研究,总结了各方法的优点和缺点;(2)对演化算法进行了深入的研究和分析,如参数、复杂度和收敛性等,并在当前适应值函数研究的基础上提出了一种适应值函数构造方法;(3)构建了一个基于演化测试技术的测试环境,能够自动化的进行测试实验,获取测试数据,推进了演化测试技术的研究。

王鹏[5]2006年在《基于改进遗传算法的面向路径测试用例自动生成方法研究》文中研究表明目前计算机软件的规模越来越大,复杂度也不断提高,软件错误造成的后果也就越来越严重,软件的质量和可靠性已引起人们的高度重视。在现代软件工程中,软件开发的各个阶段,都应进行相应的严格的质量评审和测试。软件测试成为软件质量保障的关键环节。本文主要研究的是面向路径测试用例的自动生成方法。在软件测试中,面向路径测试用例生成问题描述为:给定一个程序P和P中的一条路径W,设P的输入空间为D,求(?)D,使得P以(?)为输入运行,所经过的路径为W。研究测试用例的自动生成,可以降低手工测试的高额成本,减轻测试人员所必须付出的大量劳动,同时又能提高测试过程的可信赖程度。因此面向路径测试用例自动生成方法的研究,对实现软件测试过程自动化,有着十分重要的现实意义。本文首先介绍了软件测试的基本理论和方法之后又介绍了面向路径测试用例的自动生成技术和面向功能测试用例的自动生成技术。其中,重点阐述了面向路径的测试用例的自动生成技术及一些现有的实现方法。随后,本文又介绍了标准遗传算法基本原理、实现步骤和存在的优缺点。针对标准遗传算法存在的容易产生早熟收敛、个体多样性差等问题,作者提出了改进的双种群自适应遗传算法(DPAGA),该算法引入了新的种群分类方法,并针对各个种群的不同的特点提出了相应的自适应进化策略,为了加快进化速度和保持种群的多样性,提出了相应种群的基因修复策略和基因同步策略,在种群的迁移策略上引入黄金分割率0.618来进行种群个体的迁移交换。随后,本文还分别介绍了两种针对面向路径测试用例自动生成系统的改进,分别是遗传算子采用多点交叉并均分交叉点的方法和采用串位变长度、追加测试用例的方法。最后,在解决了这些关键的技术之后,作者以一个简单的小程序作为例子,使用以DELPHI语言开发的测试用例自动生成系统生成了测试用例。实验结果表明,该工具软件比较实用和有效,能够完成指定路径的测试用例的自动生成。当然也存在一些问题需要改进,因此作者在结束语中针对这些问题指出了下一步进行研究的方向和工作重点。

詹泽梅[6]2008年在《基于人工免疫算法的测试用例自动生成方法研究》文中认为随着软件规模的不断扩大,软件发生错误的可能性也增大,如何保证软件的质量和可靠性成为人们非常重视的问题。软件测试是保证软件质量和可靠性的必要手段,软件测试研究领域的核心内容之一是测试用例生成方法。由于通过人工方式设计测试用例将会花费巨大的人力、物力,而且容易出错,导致软件测试成本高,因此,研究如何通过自动生成方法获取测试用例,以减轻测试人员的工作量,降低软件测试成本,是一个非常值得研究的问题。目前有多种自动生成测试用例的技术,利用计算智能技术进行有效测试用例生成是目前这一领域研究中的一个热点。人工免疫算法是计算智能技术中的一种,该方法具有较好的优化能力,已成功应用于许多优化计算问题中。本文将人工免疫算法应用到测试用例自动生成问题的解决中,利用人工免疫算法的搜索寻优能力,寻找多条路径的测试用例。本文的主要工作如下:(1)研究了测试用例生成技术和人工免疫算法理论研究了面向功能的测试用例生成技术和面向程序结构的测试用例生成技术,特别是面向程序结构的测试用例生成技术中的面向路径的测试用例生成技术。研究了生物免疫系统的机理、特点、功能和人工免疫算法的基本流程。介绍了程序插装理论。(2)基于人工免疫算法的测试用例生成方法研究研究了测试用例生成问题与免疫系统中有关概念的对应关系,在此基础上提出了一种基于人工免疫算法的测试用例生成方法,给出了测试用例自动生成的系统框架;研究了参数选取和编码策略;研究了亲和度算子、浓度算子、激励度算子等的设计方案,并详细描述了该算法。(3)实验结果分析在VC下实现了基于人工免疫算法的测试用例生成系统原型。以判断叁角形类型程序为例,在静态分析和程序插装的基础上,使用本文提出的算法生成了测试用例,然后多次运行程序并给出实验分析结果。

韩炫[7]2011年在《面向路径的软件测试数据生成方法的研究》文中进行了进一步梳理随着计算机科学技术的飞速发展,软件的功能越来越强大,人们对软件质量和可靠性的要求也越来越高。软件测试是软件开发过程中的不可缺少的部分,为软件质量和可靠性提供保障。随着软件复杂度的上升,软件测试的难度越来越大,需要消耗大量的人力、物力和时间。测试数据生成是软件测试的一个关键环节,自动化的测试数据生成方法可以有效的提高测试效率、降低软件开发成本。本文首先介绍了软件测试的基本概念和测试技术的分类,分别介绍了几种常用的基于规约的测试方法和基于程序的测试方法。对现有的各种面向路径的测试生成方法进行总结和分析,并详细描述了基于各种智能算法的测试数据生成方法的原理和流程,分析其优缺点。重点深入研究粒子群优化算法,分析粒子群算法的复杂度和收敛性。并在吸引排斥粒子群算法的基础上,引入新的种群多样性度量指标和排斥操作,提出了改进的吸引排斥粒子群算法(MARPSO),并通过基准测试函数验证其收敛性能。结合爬山算法高效的局部收敛能力和MARPSO算法的全局最优搜索能力,提出了引入爬山算法的MARPSO算法(HC-MARPSO),并将其应用于测试数据生成中。构造了该测试数据生成方法的模型框架,并以叁角形判别程序为例进行仿真实验,与基本粒子群算法和遗传算法做比较。结果表明基于HC-MARPSO算法的测试数据生成方法有较高的效率。

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

许秀梅[9]2007年在《基于退火免疫遗传算法的测试数据生成方法研究》文中进行了进一步梳理随着软件技术的发展和软件项目规模的不断扩大,软件测试的作用越来越重要。在软件测试中,测试数据的选择是进行测试的一个难题,测试数据合适与否直接关系到缺陷能否被预期测出。对于测试数据自动化生成方法,目前虽然有一些方法被提出并使用,但由于其局限性,在实际中还没有完善的解决方法,只能凭借工程经验判断。在此背景下,本文对比了几种遗传算法的优缺点,并对退火免疫遗传算法在测试数据自动生成方法中的应用进行了分析与研究。本文首先介绍了软件测试技术和数据生成方法。介绍了软件测试的概念、目的、原则、分类及其测试过程,并着重介绍了现有的各种测试数据的生成方法:随机数法、Korel法、试探法。最终确定使用遗传算法作为实现测试数据自动生成的核心算法。接着,本文对简单遗传算法、模拟退火遗传算法、免疫遗传算法各自的特点进行了分析和研究,针对简单遗传算法容易产生早熟收敛、个体多样性差等问题,采取了退火免疫遗传算法(AIGA)作为测试数据自动生成的核心算法。该算法使用期望繁殖率代替适应度来决定个体的繁殖机会,同时使用退火温度T对期望繁殖率进行调节。最后使用叁角形分类程序TRITYP作为例子,生成该程序的测试数据,并对实验数据进行了对比和分析。

王倩[10]2011年在《二叉树结构型测试数据生成方法研究》文中指出软件测试是软件工程学科的重要组成部分,在实际的软件开发过程中,软件测试所发挥的重要作用已得到软件开发人员的广泛认同。软件测试以发现软件中潜藏的缺陷和错误为目的,确保软件的可靠性和提高软件的质量。测试数据自动生成是软件测试中的一个重要环节,目前关于测试数据生成的研究主要集中于数值和字符串类型的数据,对于指针和动态数据结构类型的测试数据生成研究较少。而且,现有的解决动态数据结构类型输入数据的测试生成方法大多采用静态方法,这对于复杂动态数据结构的测试数据生成实现困难,并且测试生成效率较低。二叉树是一种广泛使用并且具有代表性的动态数据结构,为此,本课题针对二叉树结构,以路径覆盖为测试准则,提出了一种基于concolic的二叉树结构型测试数据自动生成方法,使用遗传搜索算法生成二叉树结构的形态,并利用约束求解确定其数据域的值。针对二叉树结构型测试数据的特点,设计了一种新的染色体编码方式,用以表示二叉树结构的形态,探讨了适用于二叉树结构的交叉操作和变异操作。同时,通过约束解决技术求解其数据域的值,实现面向路径的二叉树结构型测试数据自动生成方法。为验证本课题提出的二叉树结构型测试数据自动生成方法的可行性,选取二叉树操作程序进行大量实验。实验结果表明,基于遗传算法的二叉树形态测试生成方法是行之有效的,不仅能够实现以二叉树结构类型为输入的面向路径的测试数据自动生成,而且其测试生成效果明显优于随机生成方法。

参考文献:

[1]. 基于基本路径测试的测试用例自动生成应用研究[D]. 解圣霞. 大连海事大学. 2007

[2]. 基于内存建模的测试数据自动生成方法研究[D]. 李飞宇. 北京邮电大学. 2013

[3]. 基于蚂蚁算法的路径测试数据自动生成方法研究[D]. 陈路远. 河北工业大学. 2007

[4]. 基于演化算法的软件结构测试数据自动生成方法研究[D]. 张云龙. 河北工程大学. 2014

[5]. 基于改进遗传算法的面向路径测试用例自动生成方法研究[D]. 王鹏. 大连交通大学. 2006

[6]. 基于人工免疫算法的测试用例自动生成方法研究[D]. 詹泽梅. 华中师范大学. 2008

[7]. 面向路径的软件测试数据生成方法的研究[D]. 韩炫. 电子科技大学. 2011

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

[9]. 基于退火免疫遗传算法的测试数据生成方法研究[D]. 许秀梅. 北京交通大学. 2007

[10]. 二叉树结构型测试数据生成方法研究[D]. 王倩. 北京化工大学. 2011

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

面向路径的测试数据自动生成方法研究
下载Doc文档

猜你喜欢