测试用例获取方法、装置、系统、及介质制造方法及图纸

技术编号:28295307 阅读:15 留言:0更新日期:2021-04-30 16:19
本公开提供了一种测试用例获取方法、装置、系统及介质,属于信息安全技术领域。所述方法包括:获取N个第一测试用例,从N个所述第一测试用例拆解出M个基础元素,基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例,其中一个组内的所述第二测试用例具有相同的根元素;以及针对一组所述第二测试用例,在该组内的根案例测试有效的情况下,对该组内的其他所述第二测试用例进行测试,以筛选出有效的测试用例;其中,所述根案例是由该组所述第二测试用例的根元素组成的测试用例。

【技术实现步骤摘要】
测试用例获取方法、装置、系统、及介质
本公开属于信息安全
,更具体地,涉及一种测试用例获取方法、装置、系统、及介质。
技术介绍
随着软件产品快速迭代、快速交付需求的增加,自动化测试相较传统手工测试具有充分利用系统资源,大幅提高测试效率的优势愈专利技术显,成为众多软件服务提供者必采用的测试方法。而自动化测试工具的核心之一便是测试用例的生成与选择,如何在保证测试覆盖率的情况下,提高测试效率,成为各自动化测试工具密切关注的重点问题。
技术实现思路
有鉴于此,本公开实施例提供了一种基于遗传算法自动生成测试用例、且可以自动化优选测试用例的测试用例获取方法、装置、系统、及介质。本公开实施例的一个方面提供了一种测试用例获取方法。所述方法包括:获取N个第一测试用例,其中,N为大于等于1的整数;从N个所述第一测试用例拆解出M个基础元素,其中,M为大于等于N的整数;基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例,其中一个组内的所述第二测试用例具有相同的根元素;以及针对一组所述第二测试用例,在该组内的根案例测试有效的情况下,对该组内的其他所述第二测试用例进行测试,以筛选出有效的测试用例;其中,所述根案例是由该组所述第二测试用例的根元素组成的测试用例。根据本公开的实施例,所述方法还包括针对一组所述第二测试用例,在该组内的所述根案例测试失败的情况下,过滤掉该组所述第二测试用例。根据本公开的实施例,所述基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例包括:对M个所述基础元素进行编码,其中,将作为一组所述第二测试用例的根元素的基础元素编码为特定符号;基于对根元素以及其他M-1个所述基础元素的编码,应用遗传算法进行演化得到一组第三测试用例;以及基于对一个组内的所述第三测试用例的适应度评价,筛选出一组所述第二测试用例。根据本公开的实施例,所述对M个所述基础元素进行编码包括,采用符号编码法对M个所述基础元素进行编码。根据本公开的实施例,所述基于对一个组内的所述第三测试用例的适应度评价,筛选出一组所述第二测试用例包括:基于适应度函数F(S[A])=T(S[A])/MAX(similar(S[A],S[x])),得到每个所述第三测试用例的评价值;以及从一组所述第三测试用例中筛选出评价值大于或等于预定阈值的测试用例,以得到一组所述第二测试用例。其中,S[A]表示一个所述第三测试用例;S[x])表示S[A]以外的一个所述第三测试用例;T(S[A])表示S[A]在靶机测试中的成功和失败的综合评分;MAX(similar(S[A],S[x]))表示S[A]与同组内其他所述第三测试用例的相似度的最大值。根据本公开的实施例,所述方法还包括设置至少一个所述根案例,其中,至少一个所述根案例与至少一组所述第二测试用例一一对应。根据本公开的实施例,所述设置每组所述第二测试用例的根案例包括,在所述方法用于生成结构化查询语言SQL注入的测试用例时,至少设置第一字符组合作为一个所述根案例,其中,所述第一字符组合用于闭合其之前的正常查询语句,以使其后的非查询语句得以执行,所述第一字符组合包括一个或多个字符。根据本公开的实施例,所述设置至少一个所述根案例包括,在所述方法用于生成跨站脚本攻击的测试用例时,至少设置第二字符组合作为一个所述根案例,其中,所述第二字符组合用于标识恶意指令代码的起始位置,所述第二字符组合包括一个或多个字符。本公开实施例的另一方面,提供了一种测试用例获取装置。所述装置包括获取模块、拆解模块、案例生成模块以及案例优选模块。获取模块用于获取N个第一测试用例,其中,N为大于等于1的整数。拆解模块用于从N个所述第一测试用例拆解出M个基础元素,其中,M为大于等于N的整数。案例生成模块用于基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例,其中一个组内的所述第二测试用例具有相同的根元素。案例优选模块用于针对一组所述第二测试用例,在该组内的根案例测试有效的情况下,对该组内的其他所述第二测试用例进行测试,以筛选出有效的测试用例;其中,所述根案例是由该组所述第二测试用例的根元素组成的测试用例。根据本公开的实施例,所述案例优选模块还用于针对一组所述第二测试用例,在该组内的所述根案例测试失败的情况下,过滤掉该组所述第二测试用例。根据本公开的实施例,所述方法还包括根案例设置模块。所述根案例设置模块用于设置至少一个所述根案例,其中,至少一个所述根案例与至少一组所述第二测试用例一一对应。本公开实施例的另一方面提供了一种测试用例获取系统。所述测试用例获取系统包括一个或多个存储器、以及一个或多个处理器。所述存储器存储有可执行指令。所述处理器执行所述可执行指令以实现如上所述的方法。本公开实施例的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。上述一个或多个实施例具有如下优点或益效果:可以在基于遗传算法生成测试用例时按照根案例的不同分组生成不同组测试用例。从而在对被测应用进行测试时,可以通过实时观察被测应用对每一组测试用例中的根案例的响应情况,选择是否继续测试该组测试用例。在既保证测试效果的同时又能提高测试效率,减少无用的测试用例的发送,可以快速筛选出有效的测试用例。附图说明通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:图1示意性示出了根据本公开实施例的测试用例获取方法的流程图;图2示意性示出了根据本公开实施例的应用遗传算法得到至少一组第二测试用例的流程图;图3示意性示出了根据本公开实施例的测试用例获取装置的框图;图4示意性示出了应用根据本公开另一实施例的测试用例获取方法和装置的系统架构;图5示意性示出了图4所示的实施例中的测试用例准备子系统结构图;图6示意性示出了图4所示的实施例中的测试用例优选子系统结构图;图7示意性示出了图4所示的实施例中的测试用例准备子系统的工作流程图;图8示意性示出了图4所示的实施例中的测试用例优选子系统的工作流程图;以及图9示意性示出了适于实现根据本公开实施例的测试用例获取方法的计算机系统的方框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不本文档来自技高网...

【技术保护点】
1.一种测试用例获取方法,包括:/n获取N个第一测试用例,其中,N为大于等于1的整数;/n从N个所述第一测试用例拆解出M个基础元素,其中,M为大于等于N的整数;/n基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例,其中一个组内的所述第二测试用例具有相同的根元素;以及/n针对一组所述第二测试用例,在该组内的根案例测试有效的情况下,对该组内的其他所述第二测试用例进行测试,以筛选出有效的测试用例;其中,所述根案例是由该组所述第二测试用例的根元素组成的测试用例。/n

【技术特征摘要】
1.一种测试用例获取方法,包括:
获取N个第一测试用例,其中,N为大于等于1的整数;
从N个所述第一测试用例拆解出M个基础元素,其中,M为大于等于N的整数;
基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例,其中一个组内的所述第二测试用例具有相同的根元素;以及
针对一组所述第二测试用例,在该组内的根案例测试有效的情况下,对该组内的其他所述第二测试用例进行测试,以筛选出有效的测试用例;其中,所述根案例是由该组所述第二测试用例的根元素组成的测试用例。


2.根据权利要求1所述的方法,其中,所述方法还包括:
针对一组所述第二测试用例,在该组内的所述根案例测试失败的情况下,过滤掉该组所述第二测试用例。


3.根据权利要求1所述的方法,其中,所述基于M个所述基础元素,应用遗传算法得到至少一组第二测试用例包括:
对M个所述基础元素进行编码,其中,将作为一组所述第二测试用例的根元素的基础元素编码为特定符号;
基于对根元素以及其他M-1个所述基础元素的编码,应用遗传算法进行演化得到一组第三测试用例;以及
基于对一个组内的所述第三测试用例的适应度评价,筛选出一组所述第二测试用例。


4.根据权利要求3所述的方法,其中,所述对M个所述基础元素进行编码包括:
采用符号编码法对M个所述基础元素进行编码。


5.根据权利要求3所述的方法,其中,所述基于对一个组内的所述第三测试用例的适应度评价,筛选出一组所述第二测试用例包括:
基于适应度函数F(S[A])=T(S[A])/MAX(similar(S[A],S[x])),得到每个所述第三测试用例的评价值;以及
从一组所述第三测试用例中筛选出评价值大于或等于预定阈值的测试用例,以得到一组所述第二测试用例;
其中:
S[A]表示一个所述第三测试用例;
S[x])表示S[A]以外的一个所述第三测试用例;
T(S[A])表示S[A]在靶机测试中的成功和失败的综合评分;<...

【专利技术属性】
技术研发人员:旷亚和吕博良叶红姜城
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1