测试案例的生成方法、装置、设备、介质和程序产品制造方法及图纸

技术编号:28419467 阅读:22 留言:0更新日期:2021-05-11 18:26
本公开提供了一种测试案例的生成方法,包括:获得目标程序的语法树,该语法树用于描述目标程序中程序要素之间的逻辑关系,遍历语法树,提取程序要素中的目标程序要素,该目标程序要素包括逻辑判断表达式,以及响应于读取到逻辑判断表达式,构建目标逻辑分支树,以生成目标程序的测试案例,该目标逻辑分支树用于描述目标程序的逻辑分支之间的逻辑关系。本公开还提供了一种测试案例的生成装置,电子设备、计算机可读存储介质以及程序产品。本公开提供的测试案例的生成方法和装置例如可以应用于金融领域或其他领域。

【技术实现步骤摘要】
测试案例的生成方法、装置、设备、介质和程序产品
本公开涉及软件测试的
,特别是涉及一种测试案例的生成方法、装置、设备、介质和程序产品。
技术介绍
随着互联网行业的快速发展,信息化程度越来越高,程序代码的规模呈现增大的趋势,不仅体现在新增代码的数量增多,而且还体现在存量代码的数量也越来越多,使得程序代码的维护和测试都需要投入越来越多的人力成本和时间成本,因此软件测试技术正在向纵深发展,新的效率高的软件测试方法不断涌现,其中具有效率优势的自动化测试方法成为大势所趋,统计表明,现阶段在软件测试的所有开销中,约40%花在测试案例上,包括生成测试数据和检查测试结果。测试案例的生成是软件测试的基础,无论哪种测试方法,都涉及到这个问题。目前有很多种测试案例生成方法,如遗传算法、随机法、爬山法、探索法、解方程法等,但研究成果离实用还有很大距离。这也是目前制约软件测试技术发展的主要因素之一。目前在国际上所开发的先进软件测试工具中,一般都回避测试案例自动生成这个问题,或者至多能提供半自动生成测试案例的解决方案。
技术实现思路
有鉴于此,为了至少部分地克服相关技术存在的上述技术问题,提供一种测试案例的自动化生成的解决方案,提高测试案例的生成效率,加速软件测试的技术发展。本公开提供了一种测试案例的生成方法、装置、设备、介质和程序产品。为了实现上述目标,本公开的一个方面提供了一种测试案例的生成方法,该方法可以包括:获得目标程序的语法树,其中,上述语法树用于描述上述目标程序中程序要素之间的逻辑关系,遍历上述语法树,提取上述程序要素中的目标程序要素,其中,上述目标程序要素包括逻辑判断表达式,以及响应于读取到逻辑判断表达式,构建目标逻辑分支树,以生成上述目标程序的测试案例,其中,上述目标逻辑分支树用于描述上述目标程序的逻辑分支之间的逻辑关系。根据本公开的实施例,上述逻辑判断表达式包括第一逻辑判断表达式,上述响应于读取到逻辑判断表达式,构建目标逻辑分支树可以包括:响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式,其中,m为正整数,且m≥2,若可确定上述m条第一逻辑分支表达式,则检测是否存在初始逻辑分支树,其中,上述初始逻辑分支树配置有n个节点,每个节点配置有初始逻辑分支表达式,若存在上述初始逻辑分支树,则将上述m条第一逻辑分支表达式分别与每个节点配置的初始逻辑分支表达式进行逻辑和运算的运算结果,确定为与上述每个节点对应的m条目标逻辑分支表达式,以及将上述与上述每个节点对应的m条目标逻辑分支表达式配置为与上述每个节点对应的子节点,以构建上述目标逻辑分支树。根据本公开的实施例,当m=2时,上述响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式可以包括:响应于读取到第一逻辑判断表达式,检测是否存在第二逻辑判断表达式,其中,上述第二逻辑判断表达式是与上述第一逻辑判断表达式具有否定逻辑关系的表达式,以及若存在上述第二逻辑判断表达式,则可确定m条第一逻辑分支表达式,其中,上述m条第一逻辑分支表达式包括上述第一逻辑判断表达式和上述第二逻辑判断表达式。根据本公开的实施例,当m>2时,上述响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式可以包括:响应于读取到第一逻辑判断表达式,检测是否存在p个指定运算符,其中,上述p个指定运算符用于分割具有逻辑或关系的p+1条逻辑分支表达式,p为正整数,且p≥2,以及若存在上述p个指定运算符,则可确定m条第一逻辑分支表达式,其中,上述m条第一逻辑分支表达式包括上述p+1条逻辑分支表达式。根据本公开的实施例,上述方法还可以包括:若不可确定上述m条第一逻辑分支表达式,则获取上述初始逻辑分支树,将上述第一逻辑判断表达式与上述初始逻辑分支表达式进行逻辑和运算的运算结果,确定为与上述每个节点对应的第一目标逻辑分支表达式,将上述初始逻辑分支表达式确定为与上述每个节点对应的第二目标逻辑分支表达式,以及将上述第一目标逻辑分支表达式和上述第二目标逻辑分支表达式配置为与上述每个节点对应的子节点,以构建上述目标逻辑分支树。根据本公开的实施例,上述方法还可以包括:若不存在上述初始逻辑分支树,则生成根节点,以及将上述m条第一逻辑分支表达式配置为上述根节点的子节点,以构建上述目标逻辑分支树。为了实现上述目标,本公开的另一个方面提供了一种测试案例的生成装置,该装置可以包括:获得模块,用于获得目标程序的语法树,其中,上述语法树用于描述上述目标程序中程序要素之间的逻辑关系,提取模块,用于遍历上述语法树,提取上述程序要素中的目标程序要素,其中,上述目标程序要素包括逻辑判断表达式,以及构建模块,用于响应于读取到逻辑判断表达式,构建目标逻辑分支树,以生成上述目标程序的测试案例,其中,上述目标逻辑分支树用于描述上述目标程序的逻辑分支之间的逻辑关系。根据本公开的实施例,上述逻辑判断表达式包括第一逻辑判断表达式,上述构建模块可以包括:第一检测子模块,用于响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式,其中,m为正整数,且m≥2,第二检测子模块,用于若可确定上述m条第一逻辑分支表达式,则检测是否存在初始逻辑分支树,其中,上述初始逻辑分支树配置有n个节点,每个节点配置有初始逻辑分支表达式。第一确定子模块,用于若存在上述初始逻辑分支树,则将上述m条第一逻辑分支表达式分别与每个节点配置的初始逻辑分支表达式进行逻辑和运算的运算结果,确定为与上述每个节点对应的m条目标逻辑分支表达式,以及第一配置子模块,用于将上述与上述每个节点对应的m条目标逻辑分支表达式配置为与上述每个节点对应的子节点,以构建上述目标逻辑分支树。根据本公开的实施例,当m=2时,上述第一检测子模块可以包括:第一检测单元,用于响应于读取到第一逻辑判断表达式,检测是否存在第二逻辑判断表达式,其中,上述第二逻辑判断表达式是与上述第一逻辑判断表达式具有否定逻辑关系的表达式,以及第一确定单元,用于第一逻辑分支表达式若存在上述第二逻辑判断表达式,则可确定m条第一逻辑分支表达式,其中,上述m条第一逻辑分支表达式包括上述第一逻辑判断表达式和上述第二逻辑判断表达式。根据本公开的实施例,当m>2时,上述第一检测子模块可以包括:第二检测单元,用于响应于读取到第一逻辑判断表达式,检测是否存在p个指定运算符,其中,上述p个指定运算符用于分割具有逻辑或关系的p+1条逻辑分支表达式,p为正整数,且p≥2,以及第二确定单元,用于若存在上述p个指定运算符,则可确定m条第一逻辑分支表达式,其中,上述m条第一逻辑分支表达式包括上述p+1条逻辑分支表达式。根据本公开的实施例,上述构建模块还可以包括:获取子模块,用于若不可确定上述m条第一逻辑分支表达式,则获取上述初始逻辑分支树,第二确定子模块,用于将上述第一逻辑判断表达式与上述初始逻辑分支表达式进行逻辑和运算的运算结果,确定为与上述每个节点对应的第一目标逻辑分支表达式,第三确定子模块,用于将上述初始逻辑分支表达式确定为与上述每个节点对应的第二目标逻辑本文档来自技高网...

【技术保护点】
1.一种测试案例的生成方法,包括:/n获得目标程序的语法树,其中,所述语法树用于描述所述目标程序中程序要素之间的逻辑关系;/n遍历所述语法树,提取所述程序要素中的目标程序要素,其中,所述目标程序要素包括逻辑判断表达式;/n响应于读取到逻辑判断表达式,构建目标逻辑分支树,以生成所述目标程序的测试案例,其中,所述目标逻辑分支树用于描述所述目标程序的逻辑分支之间的逻辑关系。/n

【技术特征摘要】
1.一种测试案例的生成方法,包括:
获得目标程序的语法树,其中,所述语法树用于描述所述目标程序中程序要素之间的逻辑关系;
遍历所述语法树,提取所述程序要素中的目标程序要素,其中,所述目标程序要素包括逻辑判断表达式;
响应于读取到逻辑判断表达式,构建目标逻辑分支树,以生成所述目标程序的测试案例,其中,所述目标逻辑分支树用于描述所述目标程序的逻辑分支之间的逻辑关系。


2.根据权利要求1所述的方法,其中,所述逻辑判断表达式包括第一逻辑判断表达式,所述响应于读取到逻辑判断表达式,构建目标逻辑分支树包括:
响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式,其中,m为正整数,且m≥2;
若可确定所述m条第一逻辑分支表达式,则检测是否存在初始逻辑分支树,其中,所述初始逻辑分支树配置有n个节点,每个节点配置有初始逻辑分支表达式;
若存在所述初始逻辑分支树,则将所述m条第一逻辑分支表达式分别与每个节点配置的初始逻辑分支表达式进行逻辑和运算的运算结果,确定为与所述每个节点对应的m条目标逻辑分支表达式;
将所述与所述每个节点对应的m条目标逻辑分支表达式配置为与所述每个节点对应的子节点,以构建所述目标逻辑分支树。


3.根据权利要求2所述的方法,其中,当m=2时,所述响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式包括:
响应于读取到第一逻辑判断表达式,检测是否存在第二逻辑判断表达式,其中,所述第二逻辑判断表达式是与所述第一逻辑判断表达式具有否定逻辑关系的表达式;
若存在所述第二逻辑判断表达式,则可确定m条第一逻辑分支表达式,其中,所述m条第一逻辑分支表达式包括所述第一逻辑判断表达式和所述第二逻辑判断表达式。


4.根据权利要求2所述的方法,其中,当m>2时,所述响应于读取到第一逻辑判断表达式,检测是否可确定m条第一逻辑分支表达式包括:
响应于读取到第一逻辑判断表达式,检测是否存在p个指定运算符,其中,所述p个指定运算符用于分割具有逻辑或关系的p+1条逻辑分支表达...

【专利技术属性】
技术研发人员:张浩郭华雷兵黄贵敏
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1