[发明专利]数据库文本的检查方法及装置、电子设备在审
申请号: | 202211641686.3 | 申请日: | 2022-12-20 |
公开(公告)号: | CN116069627A | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 马鸣 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F40/205;G06F40/253 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 黄海英 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 文本 检查 方法 装置 电子设备 | ||
本发明公开了一种数据库文本的检查方法及装置、电子设备,涉及金融科技领域其中,该方法包括:对目标数据库文本进行解析,得到在各个代码位置的属性特征参数,其中,所述目标数据库文本中记录有表征目标应用程序的业务运行逻辑的源代码;整合所有所述属性特征参数,得到属性特征集合;基于所述属性特征集合以及所述目标数据库文本,生成测试案例;基于所述测试案例,对所述目标数据库文本进行业务逻辑检查。本发明解决了相关技术中对SQL内的逻辑分支进行测试时,依赖于测试案例编写人员手工对测试输入集进行构造,难以保证被测代码的分支覆盖率的技术问题。
技术领域
本发明涉及金融科技领域或其他相关技术领域,具体而言,涉及一种数据库文本的检查方法及装置、电子设备。
背景技术
传统的基于客户端/服务器(简称C/S)架构的应用程序,其业务逻辑一般使用SQL(Structured Query Language,结构化查询语言)语言在数据库内进行描述,随着系统规模的不断增大,系统显现出诸多弊端:含有业务逻辑的数据库层无法水平扩展、执行成本较高且易出现性能瓶颈。
相关技术中,为解决传统客户端/服务器架构的应用程序存在的弊端,将SQL作为业务逻辑层上移到了应用服务器,数据库轻量化,只存数据,基本不含业务逻辑,在此系统架构下,应用服务器层对于SQL的支持程度成为了衡量系统是否可以满足业务发展需求的关键指标,因此对于SQL的测试十分重要。现有技术中对SQL进行测试方式一般是基于EBT测试方法,基于EBT的测试方法,对于含有分支、判断及循环的被测SQL对象,主要依靠手工指定参数组合的方式实现代码分支覆盖,这种方式在SQL分支逻辑复杂度上升后所能提供的代码覆盖程度完全依赖于测试案例编写人员对于测试输入集的构造方法,难以保证被测代码的分支覆盖率,以应用层开源SQL框架MyBatis为例,该框架的特点是可以使用其内置的SQL、DSL将有限的判断、分支、循环等逻辑集成在SQL语句内,提供了一定程度的业务灵活性;但另一方面,由于判断、分支等结构的引入,导致了SQL语句文本难以使用基于语法树的静态代码检查工具对其进行检查,无法在测试中尽早发现问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据库文本的检查方法及装置、电子设备,以至少解决相关技术中对SQL内的逻辑分支进行测试时,依赖于测试案例编写人员手工对测试输入集进行构造,难以保证被测代码的分支覆盖率的技术问题。
根据本发明实施例的一个方面,提供了一种数据库文本的检查方法,包括:对目标数据库文本进行解析,得到在各个代码位置的属性特征参数,其中,所述目标数据库文本中记录有表征目标应用程序的业务运行逻辑的源代码;整合所有所述属性特征参数,得到属性特征集合;基于所述属性特征集合以及所述目标数据库文本,生成测试案例;基于所述测试案例,对所述目标数据库文本进行业务逻辑检查。
可选地,对目标数据库文本进行解析,得到在各个代码位置的属性特征参数的步骤,包括:基于预先指定的文本提取规则,提取所述源代码中的文本信息,得到所述目标数据库文本;对所述目标数据库文本进行语法解析,得到关联所述目标数据库文本的语法树结构,其中,所述语法树结构包含一个根节点和至少一个叶节点,所述根节点与所述至少一个叶节点之间形成层级关系;遍历所述语法树结构,提取关联业务运行逻辑的动态表达式;对所有所述动态表达式进行上下文分析,得到在各个所述代码位置的属性特征参数。
可选地,基于预先指定的文本提取规则,提取所述源代码中的文本信息,得到所述目标数据库文本的步骤,包括:获取存储所述源代码的源文件的文件类型;提取与所述文件类型对应的所述文本提取规则;采用所述文本提取规则提取所述源文件中关联指定查询语言的文本信息,得到所述目标数据库文本。
可选地,遍历所述语法树结构,提取关联业务运行逻辑的动态表达式的步骤,包括:由所述根节点作为起始位置,遍历所述语法树结构,得到遍历结果;提取所述遍历结果中关联所述语法树结构在每个所述叶节点的属性表达式,得到所述动态表达式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211641686.3/2.html,转载请声明来源钻瓜专利网。