一种面向网络应用系统的测试用例选择与扩充方法

xiaoxiao2020-10-23  17

一种面向网络应用系统的测试用例选择与扩充方法
【技术领域】
[0001]本发明涉及网络应用技术领域,具体涉及一种面向网络应用系统的测试用例选择与扩充方法。
【背景技术】
[0002]随着网络应用系统的不断发展,国内外存在着大量的针对于提升其功能性、稳定性、可靠性等方面性能的测试技术的研宄。有通过录制/回放技术自动生成测试脚本技术,以及模型驱动测试技术。其中模型驱动测试技术逐渐成为研宄的主要方面,包括:采用BPEL规范描述业务流程模型,通过扩展U2TP规范和TTCN-3语言定义的测试用例元模型,为了支持两个模型的转换,基于U2TP活动图定义了描述业务交互和控制逻辑的业务流程元模型。采用Eclipse平台开发业务流程测试建模平台,支持测试人员对业务流程和测试用例的可视化建模,实现业务流程模型到测试用例模型的自动转换,实现了测试脚本的自动化生成。
[0003]除了基于UTP外,使用UML的扩展能力扩展UML也能生成测试用例。C.Crichton,A.Cavarra和J.Davie就是采用这种方式。他们创建了两种扩展,一个是通过扩展类图、对象图和状态图来描述被测系统的测试属性。另一个扩展是由对象图和状态图的用来描述测试目标。
[0004]F.Bouquet等人提出基于模型的测试方法,该方法基于UML图,如类图、对象图和状态图,和OCL表达式自动生成测试用例。
[0005]以上模型驱动测试方法中的一个主要特点是基于系统模型,通过定义测试设计建模语言,进行测试系统设计,并通过一定的测试准则,生成测试用例。这些方法当中普通的存在的主要问题有:生成的测试用例具有发散性,对于被测试系统的故障发现缺乏针对性,测试用例集的空间爆炸问题产生的测试用例冗余,测试数据不充分等问题。

【发明内容】

[0006]鉴于上述的分析,本发明旨在提供一种面向网络应用系统的测试用例选择与扩充方法,用以解决现有技术中生成的测试用例具有发散性,测试用例集存在冗余,对于被测试系统的故障发现缺乏针对性,以及测试数据不充分等问题。
[0007]本发明的目的主要是通过以下技术方案实现的:
[0008]一种面向网络应用系统的测试用例选择与扩充方法,该方法包括如下步骤:
[0009]步骤1、从数据库中读取被测网络应用系统的测试用例集数据;
[0010]步骤2、将步骤I中的测试用例集数据发送到解析服务器中进行解析,生成测试系统模型,并传输到显示装置以图形化的形式呈现;其中,测试系统模型包括:测试行为模型、测试数据模型和测试配置模型;
[0011]步骤3、将步骤2中解析生成的测试系统模型中的测试行为模型发送到去冗余服务器中进行去冗余化处理;
[0012]步骤4、将步骤2中解析生成的测试系统模型中的测试数据模型发送到训练服务器中,先进行测试数据获取,然后利用机器学习方法对测试数据进行训练,从而生成新的测试数据;
[0013]步骤5、将步骤3中得到的去冗余化后的测试行为模型以及步骤4中得到的新的测试数据,结合步骤2的测试系统模型的测试配置模型,一起发送到新测试用例集生成服务器中,进而采用TTCN-3测试标准生成具有更高故障探测效能的新测试用例集。
[0014]进一步的,步骤I中所述的所述测试用例集为测试脚本。
[0015]进一步的,步骤2中所述的解析过程主要通过如下三个步骤来实现:
[0016](I)提取数据:通过静态或动态的分析获得源文件的元数据;
[0017](2)构建模型:将提取的元数据进行分类和存储,使用预定义的模型对元数据进行重组,实现模型的构建;
[0018](3)展现信息:在获取构建的模型后,通过元模型技术对模型信息进行抽象化处理,并以图形化形式展现。
[0019]进一步的,步骤3具体为:依据解析出的测试系统测试行为模型,采用相似度计算公式,分别比对测试行为之间的相似度;采用遗传搜索算法,对整个测试行为模型进行优化搜索,从而得出能够达到测试目标的最小测试行为模型集合。
[0020]进一步的,所述相似度的计算公式如下:
[0021]SimilarityFunct1n(i, j) = nit/avg(|i|,|j|)
[0022]其中,nit表示两个测试行为之间的相同的操作数,avg(|i|, |j|)表示两个测试用例的平均操作数长度。
[0023]进一步的,步骤4中所述的利用机器学习方法对测试数据进行训练具体为:在得到测试数据之后,通过模拟测试人员的测试思维,对原始测试数据进行训练、学习和调整,从而生成新的测试数据。
[0024]进一步的,步骤5具体为:通过建立测试系统模型以及TTCN-3测试系统模型之间的映射,实现测试系统模型向TTCN-3抽象测试用例的转换,进而生成TTCN-3可执行测试用例脚本,通过TTCN-3测试执行平台,实现对网络应用系统的自动化测试。
[0025]本发明有益效果如下:
[0026]本发明提供了一种面向网络应用系统的测试用例选择与扩充方法,通过对测试用例集进行解析、去冗余化处理、利用机器学习方法对测试数据进行训练、以及采用TTCN-3测试标准生成具有更高故障探测效能的新测试用例集等技术手段,解决了如下技术问题:
[0027]1、解决了测试用例存在着大量冗余的问题;
[0028]2、解决回归测试当中的测试用例复用的问题;
[0029]3、解决测试用例中测试行为与测试数据紧耦合的问题;
[0030]4、解决测试用例对于提升网络应用系统性能能力不足的问题。
[0031]本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0032]附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表不相同的部件。
[0033]图1为本发明的方法流程图;
[0034]图2为本发明的测试数据模型示意图;
[0035]图3为本发明的测试配置模型示意图;
[0036]图4为本发明的测试行为模型示意图;
[0037]图5为本发明的测试数据模型解析流程图;
[0038]图6为本发明的测试数据自学习生成优化流程图。
【具体实施方式】
[0039]下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
[0040]一种面向网络应用系统的测试用例选择与扩充方法,该方法包括如下步骤:
[0041]步骤1、从数据库中读取被测网络应用系统的测试用例集。
[0042]其中,所述测试用例集为测试脚本。测试脚本包含系统操作执行序列、操作参数以及系统配置信息等。
[0043]步骤2、将步骤I中的测试用例集发送到解析服务器中进行解析,生成测试系统模型,并以图形化的形式呈现;其中,测试系统模型包括:测试行为模型、测试数据模型和测试配置模型。
[0044]依照测试相关理论和网络应用系统测试特征,建立测试系统模型,用于从输入的测试用例集中获取测试关键信息,并对测试系统进行建模。
[0045](一 )测试数据模型
[0046]测试数据模型定义了一组概念用以描述测试数据,主要包括数据池(DataPool)、数据划分(DataPartit1n)、数据实例(DataInstance)等各种复杂的数据结构定义。
[0047]在测试数据模型中,引入了 UML的基本数据类型(SimpleType),还包括了枚举类型(Enum)和记录类型(Record),以及有序集合(RecordOf)和无序集合(SetOf)。记录类型的一个域(field)对应一个数据类型,通过关联类(Attribute)可以设置忽略这一域(omit)以及可选的(opt1nal)两个属性。数据类型(DataType)的实例是数据实例(DataInstance),定义了一个记录类型或简单数据类型或者集合的实例。数据池(DataPool)包含多个数据实例,在数据池上有数据模板的等价类划分(DataPartit1n)。具体参见图2。
[0048]( 二)测试配置模型
[0049]测试配置模型用于描述在测试中测试组件与被测系统的结构和配置。测试配置模型是对测试系统静态组成结构的描述。测试配置模型主要包括:测试组件(TestComponent)、测试接口(TestInterface)、测试系统之间的连接(TestInterfaceConnect1n)、被测系统(SUT)。增加了测试接口类型(TestInterfaceType)定义测试接口输入和输出允许的数据类型,一个测试接口类型可以被多个测试接口引用。在测试组件中可以定义计时器(Timer),计时器可以在测试场景(TestScenar1)被引用。具体参见图3。
[0050](三)测试行为模型
[0051]测试行为模型用于描述在测试用例中的各种行为。测试行为模型定义包括计时器动作(Start Timer Act1n 与 Stop Timer Act1n)、消息激励(StimuliAct1n)、消息响应(ResponseEvaluateAct1n)及测试结果类别(Verdict)等,还包括循环动作(WhileAct1n和ForAct1n)以及条件动作(IfAct1n和ForAct1n)以及分支动作(AltAct1n),这些元素从动作块(Act1nBlock)继承,动作块从抽象的动作(Act1n)继承。测试用例(TestCase)继承自测试场景(TestScenar1)。其中消息激励和消息响应中定义了需要的输入数据和预期响应数据类型和名称信息。具体参见图4。
[0052]通过测试系统模型,对测试用例进行逐个字段解析,从测试用例中提取出测试模型,分别 存储为测试数据模型,测试行为模型以及测试配置模型。
[0053]所述解析过程可分为三个部分,第一部分是识别出相关构件,第二部分对构件之间的依赖关系进行分析,第三部分是建立系统同一层级或更高层级的抽象表达形式。主要通过如下三个步骤来实现:
[0054](I)提取数据:此时的数据是未经处理的,通过静态或动态的分析获得源文件的元数据;其中所述元数据包含于系统操作执行序列、操作参数以及系统配置信息等数据中。
[0055](2)构建模型:将提取的元数据进行分类和存储,使用预定义的模型将元数据进行重组,实现模型的构建;
[0056](3)展现信息:在获取构建的模型后,通过元模型技术对模型信息进行抽象化处理,并以图形化形式展现。元模型是为了描述模型而定义的一种“抽象语言”,是对模型的进一步抽象。元模型技术是通过对事物的基本构成元素,以及元素间的关系进行定义,并规定其标示以达到对事物进行建模的一种技术。
[0057]步骤3、将步骤2中解析生成的测试系统模型中的测试行为模型发送到去冗余服务器中进行去冗余化处理。
[0058]进一步的,依据解析出的测试系统测试行为模型,采用相似度计算公式,分别比对测试行为之间的相似度;采用遗传搜索算法,对整个测试行为模型进行优化搜索,从而得出能够达到测试目标的最小测试行为模型集合。
[0059]所述相似度的计算公式如下:
[0060]SimilarityFunct1n(i, j) = nit/avg(|i|,|j|)
[0061]其中,nit表示两个测试行为之间的相同的操作数,avg(|i|, |j|)表示两个测试用例的平均操作数长度。
[0062]通过步骤3,去除了测试用例集当中的冗余测试用例,减少了因冗余测试而产生的测试开销,大大节约了测试成本。
[0063]步骤4、将步骤2中解析生成的测试系统模型中的测试数据模型发送到训练服务器中进行测试数据获取,并利用机器学习方法对测试数据进行训练,从而生成新的测试数据。
[0064]通过解析测试数据模型文件,得到数据类型定义信息,从而在数据存储之前建立对应类型的数据表。如图5所示,测试数据模型解析的具体的步骤如下:
[0065]首先,判断选定的测试系统模型是否为测试数据模型,如果不是,则结束解析过程。
[0066]其次,如果是,则锁定获取domain模型文件,并循环获取和判断每个测试数据类型的定义:(I)如果类型定义为基本数据类型,则不保存其相关信息,因为建立的数据表中已经预先定义了所有的基本数据类型;(2)如果类型定义为复杂数据类型,则根据其定义的数据结构和该类型包含的基本数据类型,建立服务数据对象模型,保存该数据类型定义信息。如此循环保存每个定义的复杂数据类型,直到所有的数据类型都以服务数据对象模型的形式保存,以供在数据库中建立数据表。
[0067]在解析测试数据模型并得到数据类型的定义信息之后,将测试数据按照数据类型定义建成数据表,并存储在数据库中。在数据库中建立的每个数据表都对应测试数据模型中定义的某个数据类型。为了以统一的方式处理各类数据,本发明基于服务对象的数据中介服务(Data Mediator Service)连接和操作数据库SDO数据中介服务提供对数据源的访问。数据中介服务通过从后端数据源读取数据而创建数据图,还可以基于对数据图所做的更改而更新数据源。数据中介服务能够以各种形式和大小出现,而且还可以包括对XML数据源进行读写的XML中介、对基于JDBC的数据源进行读写的关系中介、根据应用定义的实体模型,甚至是接受XML查询并读写各种XML和非XML数据源的中介。数据中介服务支持断开的数据图架构。
[0068]数据访问服务(Data Access Service,DAS)用于从一个数据存储器中加载一个数据图,或将一个数据图保存到一个数据存储器中。如一个XML DAS的功能是从XML文件加载一个数据图或将其保存到XML文件中,一个JDBC DAS则是从关系数据库中加载或保存数据图。
[0069]所述的训练步骤具体为:在得到测试数据之后,通过模拟测试人员的测试思维,对原始测试数据进行训练、学习和调整,从而生成新的测试数据。如图6所示。该训练步骤包括两个方面,分别对应于人工测试的两类行为:
[0070]一、满足给定覆盖规则的测试数据生成算法,对应人工测试按照既定规则的测试数据设计行为。
[0071]二、依据测试反馈对测试覆盖规则的学习和调整,从而产生出新的测试用例,对应于人工测试根据测试效果对测试数据生成规则的调整行为。
[0072]通过步骤4,实现了测试数据的自动化生成,减少了测试数据生成成本,且通过高水平的数据训练和学习方法,生成了故障探测水平更高的数据测试,提高了测试效率。
[0073]步骤5、将步骤3得到的去冗余化后的测试行为模型以及步骤4中得到的新的测试数据,结合步骤2的测试系统模型的测试配置模型,一并发送到新测试用例集生成服务器中,进而采用TTCN-3测试标准生成具有更高故障探测效能的新测试用例集。
[0074]通过建立测试系统模型以及TTCN-3测试系统模型之间的映射,实现测试系统模型向TTCN-3抽象测试用例的转换,进而生成TTCN-3可执行测试用例脚本,通过TTCN-3测试执行平台,实现对网络应用系统的自动化测试。
[0075]通过步骤5,实现了对测试用例集的扩充,生成了可执行的测试用例集,实现了测试的自动化,达到了节约测试成本的目的。
[0076]综上所述,本发明实施例提供了一种面向网络应用系统的测试用例选择与扩充方法,通过对测试用例集进行解析、去冗余化处理、利用机器学习方法对测试数据进行训练等步骤,最后采用TTCN-3测试标准生成具有更高故障探测效能的新测试用例集。本发明的方法解决了测试用例存在着大量冗余的问题、回归测试当中的测试用例复用的问题、测试用例中测试行为与测试数据紧耦合的问题以及测试用例对于提升网络应用系统性能能力不足的问题。
[0077]本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0078]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种面向网络应用系统的测试用例选择与扩充方法,其特征在于,该方法包括如下步骤: 步骤1、从数据库中读取被测网络应用系统的测试用例集数据; 步骤2、将步骤I中的测试用例集数据发送到解析服务器中进行解析,生成测试系统模型,并传输到显示装置以图形化的形式呈现;其中,测试系统模型包括:测试行为模型、测试数据模型和测试配置模型; 步骤3、将步骤2中解析生成的测试系统模型中的测试行为模型发送到去冗余服务器中进行去冗余化处理; 步骤4、将步骤2中解析生成的测试系统模型中的测试数据模型发送到训练服务器中,先进行测试数据获取,然后利用机器学习方法对测试数据进行训练,从而生成新的测试数据; 步骤5、将步骤3中得到的去冗余化后的测试行为模型以及步骤4中得到的新的测试数据,结合步骤2的测试系统模型的测试配置模型,一起发送到新测试用例集生成服务器中,进而采用TTCN-3测试标准生成具有更高故障探测效能的新测试用例集。2.如权利要求1所述的方法,其特征在于,步骤I中所述的所述测试用例集为测试脚本。3.如权利要求1所述的方法,其特征在于,步骤2中所述的解析过程主要通过如下三个步骤来实现: (1)提取数据:通过静态或动态的分析获得源文件的元数据; (2)构建模型:将提取的元数据进行分类和存储,使用预定义的模型对元数据进行重组,实现模型的构建; (3)展现信息:在获取构建的模型后,通过元模型技术对模型信息进行抽象化处理,并以图形化形式展现。4.如权利要求1所述的方法,其特征在于,步骤3具体为:依据解析出的测试系统测试行为模型,采用相似度计算公式,分别比对测试行为之间的相似度;采用遗传搜索算法,对整个测试行为模型进行优化搜索,从而得出能够达到测试目标的最小测试行为模型集合。5.如权利要求4所述的方法,其特征在于,所述相似度的计算公式如下:SimilarityFunct1n(i, j) = nit/avg(|i|,|j|) 其中,nit表示两个测试行为之间的相同的操作数,avg(|i|, |j I)表示两个测试用例的平均操作数长度。6.如权利要求1-5中任一项所述的方法,其特征在于,步骤4中所述的利用机器学习方法对测试数据进行训练具体为:在得到测试数据之后,通过模拟测试人员的测试思维,对原始测试数据进行训练、学习和调整,从而生成新的测试数据。7.如权利要求1-6中任一项所述的方法,其特征在于,步骤5具体为:通过建立测试系统模型以及TTCN-3测试系统模型之间的映射,实现测试系统模型向TTCN-3抽象测试用例的转换,进而生成TTCN-3可执行测试用例脚本,通过TTCN-3测试执行平台,实现对网络应用系统的自动化测试。
【专利摘要】本发明涉及一种面向网络应用系统的测试用例选择与扩充方法,通过对测试用例集进行解析、去冗余化处理、利用机器学习方法对测试数据进行训练等步骤,最后采用TTCN-3测试标准生成具有更高故障探测效能的新测试用例集。本发明的方法解决了测试用例存在着大量冗余的问题、回归测试当中的测试用例复用的问题、测试用例中测试行为与测试数据紧耦合的问题以及测试用例对于提升网络应用系统性能能力不足的问题。
【IPC分类】G06F17/30, G06F11/36
【公开号】CN104899141
【申请号】CN201510303134
【发明人】吴际, 袁斯骏, 杨海燕, 刘超
【申请人】北京航空航天大学
【公开日】2015年9月9日
【申请日】2015年6月5日

最新回复(0)