一种基于场景描述的自动测试系统及其实现方法技术方案

技术编号:17441988 阅读:27 留言:0更新日期:2018-03-10 14:40
本发明专利技术公开了一种基于场景描述的自动测试系统,包括:规则库;对象属性抽取器;场景模型构建器;解析引擎;路径约束抽取器;核心控制器;约束求解器;求解器适配器;测试用例生成器;测试用例库;优化引擎。本发明专利技术根据特定的规则库抽取测试对象的属性添加到场景模型中,结合模型本身信息和从测试用例库中提取的启发式信息解析模型,自动生成测试路径,使用约束求解器生成对应的测试输入,整合测试路径和测试输入生成测试用例,并对测试用例进行优化,在保证测试充分性的同时,降低了手工测试的测试成本,提高了测试的效率。本发明专利技术还公开了一种基于场景描述的自动测试系统的实现方法。

【技术实现步骤摘要】
一种基于场景描述的自动测试系统及其实现方法
本专利技术属于自动测试系统及其实现方法,具体涉及一种基于场景描述的自动测试系统及其实现方法。
技术介绍
软件测试是计算机软件生命周期中的一个重要组成部分。统计标明,在软件开发过程中,软件测试的开销占总成本的30%到50%。这说明软件测试对软件开发的开销有很大的影响。随着现代软件产业的发展,软件变得更加复杂,规模更加庞大,导致软件中存在的缺陷数量增多,加重了软件测试的压力。手工测试的开销随着这一系列的变化成为了软件开发的一个重要问题,自动化测试技术开始受到关注。自动化测试应用在很多领域,例如测试自动化脚本技术、测试自动化框架和自动化测试用例生成。由于测试用例的重要性,以及测试数据自动构造实现上的可行性,使得自动化生成测试用例成为自动化测试技术中研究的最为广泛的技术之一。场景是待测试软件中用户的用例或事件的序列,辅助描述一个复杂的问题或系统。基于场景的测试是在场景基础上进行测试,适用于复杂交互式软件的测试,从业务工作流层面对软件进行全面性的测试。场景测试不需要关注系统的实现细节,不考虑软件的内部逻辑结构,而是关注测试的场景,考虑用户使用时出现的各种情况。测试的场景包含两个部分:测试数据和测试路径。场景建模的方法有很多种,可以通过使用不同的模型定义场景,典型的模型有:有限状态机、Petri网、流程图、UML模型等。研究表明,基于场景的测试是目前第三方测试中最为常用的测试方法之一。实现场景测试的自动化,有助于提高测试的效率。基于场景描述的自动化测试存在的三个挑战:1、模型的构建。目前已有的场景描述模型缺乏对系统的细节描述,同时多使用手工绘制,缺乏自动化特性,效率较低。2、测试路径的生成。测试路径是场景测试的重要组成部分,直接决定了测试用例的测试能力。目前的路径生成方法大多基于覆盖准则,没有充分利用已有测试用例的信息,造成测试用例的大量冗余。3、测试输入的生成。传统的自动化生成测试输入方法有:随机生成输入方法和基于启发式方法的测试输入生成方法。这两种方法的代码覆盖率较低、冗余的测试用例较多。实现基于场景描述的自动化测试,需要克服上述三个挑战,有助于减少测试人员的负担,降低测试的成本,提高测试的效率。在已公开的专利中,有两个专利涉及到模型测试用例的生成:一种基于扩展有限状态机可行路径分析的测试用例自动生成方法以及基于EFSM模型的路径测试数据生成方法。专利一种基于扩展有限状态机可行路径分析的测试用例自动生成方法,对扩展有限状态机进行分析,获取可行路径,并使用分散搜索ScatterSearch技术自动生成测试数据。专利基于EFSM模型的路径测试数据生成方法,对EFSM模型进行符号执行和数据流依赖分析,获得每条路径的约束条件,并使用遗传算法生成测试输入数据。这两个专利都未涉及模型的构建,不能保证模型的有效性,同时局限了使用模型的通用性;在路径搜索上只运用已有模型的信息,路径可能会存在一定的冗余性,并且未体现出测试路径的优先级别;对于测试数据生成,两个专利都采用了基于搜索的测试数据生成方法,需要耗费较多的时间,影响测试的效率。
技术实现思路
本专利技术提出了一种基于场景描述的自动测试系统和实现方法,根据特定的规则库抽取测试对象的属性添加到场景模型中,结合模型本身信息和从测试用例库中提取的启发式信息解析模型,自动生成测试路径,使用约束求解器生成对应的测试输入,整合测试路径和测试输入生成测试用例,并对测试用例进行优化,在保证测试充分性的同时,降低了手工测试的测试成本,提高了测试的效率。本专利技术还提出了一种基于场景描述的自动测试系统的实现方法,包括以下步骤:步骤一:对象属性抽取器获取待测试软件中的对象,根据规则库抽取相关的对象属性信息,并进行对象属性信息的清洗和存储;步骤二:场景模型构建器依据待测试软件的基础信息和所述对象属性抽取器抽取的对象属性信息构建场景模型;步骤三:解析引擎解析场景模型构建器构建的场景模型,获取模型的基本信息,结合优化引擎反馈的启发式信息,搜索获取场景模型中的测试路径;步骤四:根据解析引擎搜索得到的测试路径,路径约束抽取器抽取对应路径上的所有约束条件集合,判断是否需要增加额外的约束条件;若不需要,直接将抽取的约束条件提交到所述核心控制器;若需要,补充新的约束条件并将抽取的约束条件和补充的约束条件全部提交到所述核心控制器;步骤五:核心控制器将获得的约束条件集合提交到所述求解器适配器,调用多种约束求解器进行求解,求解器适配器将求解结果反馈给所述核心控制器,判断是否有解;若有解,所述核心控制器将测试路径和求解结果提交到测试用例生成器;若无解,判断测试是否结束;若测试未结束,所述核心控制器通知所述解析引擎重新选择新的测试路径,执行步骤三;若测试结束,终止测试;步骤六:所述测试用例生成器组合所述核心控制器提交的测试路径和测试输入,生成完整的测试用例并添加到所述测试用例库中;测试输入是所述求解器适配器(8)的求解结果;测试用例生成器通知所述核心控制器生成测试用例完毕;步骤七:所述核心控制器通知所述优化引擎评估和简化测试用例库,同时提取有效的测试信息作为启发式信息反馈给所述解析引擎;所述核心控制器判断测试是否结束;若测试未结束,所述核心控制器通知所述解析引擎重新选择新的测试路径,执行步骤三;若测试结束;终止测试。本专利技术的一种基于场景描述的自动测试系统的实现方法,在步骤一中,对象属性信息的获取方法包括了自动化抽取方法和人工抽取方法;自动化抽取方法可采用自动化测试工具获取待测试软件的组件、输入等有效属性;人工抽取方法可利用测试人员的测试经验以及软件规格说明书手动抽取有效的对象属性。本专利技术的一种基于场景描述的自动测试系统的实现方法,在步骤二中,待测试软件的基础信息是对软件附加的说明,包括软件规格说明书、用户需求规格说明书等信息,用于构建基础的场景模型;所述对象属性抽取器抽取的对象属性信息可用于优化和丰富基础场景模型,说明模型中元素的属性,提高可读性;使用抽象运算组合基础信息和所述对象属性抽取器抽取的对象属性信息,完善场景模型;场景模型包括UML模型、有限状态机、Petri网、流程图、状态图。本专利技术的一种基于场景描述的自动测试系统的实现方法,所述步骤三中,所述搜索获取场景模型中的测试路径方法是在广度优先搜索算法或者深度优先搜索算法的基础上,利用启发式信息,设定具体的评测指标,比如缺陷发现率,对已有的测试用例进行评估,动态调整测试路径的权重,优先搜索权重大的测试路径,生成路径集合。本专利技术的一种基于场景描述的自动测试系统的实现方法,所述步骤四中,路径的约束条件集合是实现该路径的条件,通过使用逻辑运算符连接所述路径约束抽取器抽取的条件表达式,组合成一个完整的路径约束条件集合。本专利技术的一种基于场景描述的自动测试系统的实现方法,所述步骤五中,所述求解器适配器提供了多个接口,用于连接各种不同的所述约束求解器,例如Z3、STP、Yices等。本专利技术的一种基于场景描述的自动测试系统的实现方法,在步骤七中,所述优化引擎评估和简化测试用例库的步骤如下:步骤A1:设计一套测试用例的评价标准用于评估测试用例,例如缺陷探测情况、用例执行稳定性、客户需求、测试开销等影响因子;步骤A2:依据场景测试的测试目标,本文档来自技高网
...
一种基于场景描述的自动测试系统及其实现方法

【技术保护点】
一种基于场景描述的自动测试系统的实现方法,其特征在于,包括以下步骤:步骤一:对象属性抽取器(2)获取待测试软件中的对象,根据规则库(1)抽取相关的对象属性信息,并进行对象属性信息的清洗和存储;步骤二:场景模型构建器(3)依据所述待测试软件的基础信息和所述对象属性抽取器(2)抽取的对象属性信息构建场景模型;步骤三:解析引擎(4)解析所述场景模型构建器(3)构建的场景模型,获取模型的基本信息,结合优化引擎(11)反馈的启发式信息,搜索获取场景模型中的测试路径;步骤四:根据所述解析引擎(4)搜索得到的测试路径,路径约束抽取器(5)抽取对应路径上的所有约束条件集合,判断是否需要增加额外的约束条件;若不需要,直接将抽取的约束条件提交到核心控制器(6);若需要,补充新的约束条件并将抽取的约束条件和补充的约束条件全部提交到所述核心控制器(6);步骤五:所述核心控制器(6)将获得的约束条件集合提交到求解器适配器(8),调用多种约束求解器(7)进行求解,所述求解器适配器(8)将求解结果反馈给所述核心控制器(6),判断是否有解;若有解,所述核心控制器(6)将测试路径和求解结果提交到测试用例生成器(9);若无解,判断测试是否结束;若测试未结束,所述核心控制器(6)通知所述解析引擎(4)重新选择新的测试路径,执行步骤三;若测试结束,终止测试;步骤六:所述测试用例生成器(9)组合所述核心控制器(6)提交的测试路径和测试输入,生成完整的测试用例并添加到测试用例库(10)中,测试输入是所述求解器适配器(8)的求解结果;所述测试用例生成器(9)通知所述核心控制器(6)生成测试用例完毕;步骤七:所述核心控制器(6)通知所述优化引擎(11)评估和简化测试用例库,同时提取有效的测试信息作为启发式信息反馈给所述解析引擎(4);所述核心控制器(6)判断测试是否结束;若测试未结束,所述核心控制器(6)通知所述解析引擎(4)重新选择新的测试路径,执行步骤三;若测试结束;终止测试。...

【技术特征摘要】
1.一种基于场景描述的自动测试系统的实现方法,其特征在于,包括以下步骤:步骤一:对象属性抽取器(2)获取待测试软件中的对象,根据规则库(1)抽取相关的对象属性信息,并进行对象属性信息的清洗和存储;步骤二:场景模型构建器(3)依据所述待测试软件的基础信息和所述对象属性抽取器(2)抽取的对象属性信息构建场景模型;步骤三:解析引擎(4)解析所述场景模型构建器(3)构建的场景模型,获取模型的基本信息,结合优化引擎(11)反馈的启发式信息,搜索获取场景模型中的测试路径;步骤四:根据所述解析引擎(4)搜索得到的测试路径,路径约束抽取器(5)抽取对应路径上的所有约束条件集合,判断是否需要增加额外的约束条件;若不需要,直接将抽取的约束条件提交到核心控制器(6);若需要,补充新的约束条件并将抽取的约束条件和补充的约束条件全部提交到所述核心控制器(6);步骤五:所述核心控制器(6)将获得的约束条件集合提交到求解器适配器(8),调用多种约束求解器(7)进行求解,所述求解器适配器(8)将求解结果反馈给所述核心控制器(6),判断是否有解;若有解,所述核心控制器(6)将测试路径和求解结果提交到测试用例生成器(9);若无解,判断测试是否结束;若测试未结束,所述核心控制器(6)通知所述解析引擎(4)重新选择新的测试路径,执行步骤三;若测试结束,终止测试;步骤六:所述测试用例生成器(9)组合所述核心控制器(6)提交的测试路径和测试输入,生成完整的测试用例并添加到测试用例库(10)中,测试输入是所述求解器适配器(8)的求解结果;所述测试用例生成器(9)通知所述核心控制器(6)生成测试用例完毕;步骤七:所述核心控制器(6)通知所述优化引擎(11)评估和简化测试用例库,同时提取有效的测试信息作为启发式信息反馈给所述解析引擎(4);所述核心控制器(6)判断测试是否结束;若测试未结束,所述核心控制器(6)通知所述解析引擎(4)重新选择新的测试路径,执行步骤三;若测试结束;终止测试。2.如权利要求1所述的基于场景描述的自动测试系统的实现方法,其特征在于,所述步骤一中,对象属性信息的获取方法包括了自动化抽取方法和人工抽取方法;自动化抽取方法可采用自动化测试工具获取待测试软件的组件、输入有效属性;人工抽取方法可利用测试人员的测试经验以及软件规格说明书手动抽取有效的对象属性。3.如权利要求1所述的基于场景描述的自动测试系统的实现方法,其特征在于,所述步骤二中,待测试软件的基础信息是对软件附加的说明,包括软件规格说明书、用户需求规格说明书信息,用于构建基础的场景模型;所述对象属性抽取器(2)抽取的对象属性信息用于优化和丰富基础场景模型,说明模型中元素的属性,提高可读性;使用抽象运算组合基础信息和所述对象属性抽取器(2)抽取的对象属性信息,完善场景模型;场景模型包括UML模型、有限状态机、Petri网、流程图、状态图。4.如权利要求1所述的基于场景描述的自动测试系统的实现方法,其特征在于,所述步骤三中,所述搜索获取场景模型中的测试路径方法是在广度优先搜索算法或者深度优先搜索算法的基础上,利用启发式信息,设定具体的评测指标对已有的测试用例进行评估,动态调整测试路径的权重,优先搜索权重大的测试路径,生成路径集合。5.如权利要求1所述的基于场景描述的自动测试系统的实现方法,其特征在于,所述步骤...

【专利技术属性】
技术研发人员:蔡立志陆佳文张扬刘振宇胡芸龚家瑜陈文捷
申请(专利权)人:上海计算机软件技术开发中心
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1