一种软件SQL测试方法、装置、存储介质及系统制造方法及图纸

技术编号:28792365 阅读:18 留言:0更新日期:2021-06-09 11:30
本申请实施例公开了一种软件SQL测试方法、装置、存储介质及系统。本发明专利技术涉及软件开发技术领域。该方法包括:读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句;对所述待处理动态SQL语句进行扩展,得到扩展SQL语句,并将所述扩展SQL语句和所述待处理非动态SQL语句作为目标SQL语句;利用所述目标SQL语句,生成测试用例,并将所述测试用例作为输入对所述目标SQL语句进行测试。本技术方案,可以自动识别软件产品中的全部SQL语句,通过对SQL语句执行验证,可以发现有性能问题的SQL语句。能极大的方便SQL的测试,有效提高软件开发效率和软件质量。发效率和软件质量。发效率和软件质量。

【技术实现步骤摘要】
一种软件SQL测试方法、装置、存储介质及系统


[0001]本申请实施例涉及软件开发
,尤其涉及一种软件SQL测试方法、装置、存储介质及系统。

技术介绍

[0002]软件产品特别是应用于大规模的企业中的软件产品中,SQL(Structured Query Language,结构化查询语言)在全部代码中占据着相当重要的比重。SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0003]软件测试的过程包括利用自动化测试工具,对测试需求的分析,设计出自动化测试用例,从而搭建自动化测试的框架以及设计与编写自动化脚本。目前,对软件产品中的SQL测试都是伴随在功能测试及性能测试的过程中进行的,没有单独的SQL测试过程。功能测试是指从软件产品的界面、架构出发,按照需求编写出的测试用例,输入数据在预期结果和实际结果之间进行评测;性能测试是指验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。
[0004]功能测试及性能测试的覆盖范围有限,不能完全覆盖软件产品中的全部SQL语句。导致不能发现SQL语句的性能问题,致使软件开发效率低,软件质量低。

技术实现思路

[0005]本申请实施例提供一种软件SQL测试方法、装置、存储介质及系统,可以自动识别软件产品中的全部SQL语句,通过对SQL语句执行验证,可以发现有性能问题的SQL语句。能极大的方便SQL的测试,有效提高软件开发效率和软件质量。
[0006]第一方面,本申请实施例提供了一种软件SQL测试方法,该方法包括:
[0007]读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句;
[0008]对所述待处理动态SQL语句进行扩展,得到扩展SQL语句,并将所述扩展SQL语句和所述待处理非动态SQL语句作为目标SQL语句;
[0009]利用所述目标SQL语句,生成测试用例,并将所述测试用例作为输入对所述目标SQL语句进行测试。
[0010]第二方面,本申请实施例提供了一种软件SQL测试装置,该装置包括:
[0011]SQL语句获得模块,用于读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句;
[0012]目标SQL语句确定模块,用于对所述待处理动态SQL语句进行扩展,得到扩展SQL语句,并将所述扩展SQL语句和所述待处理非动态SQL语句作为目标SQL语句;
[0013]目标SQL语句测试模块,用于利用所述目标SQL语句,生成测试用例,并将所述测试用例作为输入对所述目标SQL语句进行测试。
[0014]第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的软件SQL测试方法。
[0015]第四方面,本申请实施例提供了一种系统,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的软件SQL测试方法。
[0016]本申请实施例所提供的技术方案,读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句;对待处理动态SQL语句进行扩展,得到扩展SQL语句,并将扩展SQL语句和待处理非动态SQL语句作为目标SQL语句;利用目标SQL语句,生成测试用例,并将测试用例作为输入对目标SQL语句进行测试。本技术方案,可以自动识别软件产品中的全部SQL语句,通过对SQL语句执行验证,可以发现有性能问题的SQL语句。能极大的方便SQL的测试,有效提高软件开发效率和软件质量。
附图说明
[0017]图1是本申请实施例一提供的软件SQL测试方法的流程图;
[0018]图2是本申请实施例二提供的软件SQL测试过程的示意图;
[0019]图3是本申请实施例三提供的软件SQL测试装置的结构示意图;
[0020]图4是本申请实施例五提供的一种系统的结构示意图。
具体实施方式
[0021]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
[0022]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0023]实施例一
[0024]图1是本申请实施例一提供的软件SQL测试方法的流程图,本实施例可适用于对软件产品中全部SQL语句进行测试的情况,该方法可以由本申请实施例所提供的软件SQL测试装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于用于SQL语句测试的智能终端等设备中。
[0025]如图1所示,所述软件SQL测试方法包括:
[0026]S110、读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句。
[0027]在本方案中,SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在软件产品中,SQL在全部代码中占据着相当重要的比重,对SQL语句进行测试可以有效提高软件开发效率和软件质量。
[0028]其中,非动态SQL语句可以是指主体结构已经明确,将该段SQL语句交给数据库管理系统去分析,数据库软件可以对这段SQL语句进行语法解析,生成数据库的可执行代码的SQL语句;动态SQL语句可以是指SQL语句没有明确给出,该SQL语句的值可能等于从文本框
中读取的一个SQL或者从键盘输入的SQL,但具体是什么,在编译时无法确定,只有等到程序运行起来,在执行的过程中才能确定的种SQL语句。例如,每一种数据库软件都有能够执行SQL语句的界面,那个界面接收的SQL就是动态SQL。
[0029]在本实施例中,由软件SQL测试系统中的SQL发现模块对软件产品中的代码进行扫描,获得待处理动态SQL语句和待处理非动态SQL语句。获得待处理动态SQL语句和待处理非动态SQL语句后,由SQL发现模块对待处理动态SQL语句和待处理非动态SQL语句进行记录,记录格式为[SQL语句,SQL所属文件名,SQL所在行数]。
[0030]在本技术方案中,可选的,读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句,包括:
[0031]读取软件产品中的源代码,对所述源代码进行解析,得到所述源代码中的待处理动态SQL语句和待处理非动态SQL语句。
[0032]在本实施例中,源代码是指未编译的按照一定的程序设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件SQL测试方法,其特征在于,包括:读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句;对所述待处理动态SQL语句进行扩展,得到扩展SQL语句,并将所述扩展SQL语句和所述待处理非动态SQL语句作为目标SQL语句;利用所述目标SQL语句,生成测试用例,并将所述测试用例作为输入对所述目标SQL语句进行测试。2.根据权利要求1所述的方法,其特征在于,对所述待处理动态SQL语句进行扩展,得到扩展SQL语句,包括:根据所述待处理动态SQL语句的动态条件对所述待处理动态SQL语句进行扩展,得到扩展SQL语句;其中,所述动态条件是指SQL语句中的判断标签。3.根据权利要求2所述的方法,其特征在于,在根据所述待处理动态SQL语句的动态条件对所述待处理动态SQL语句进行扩展,得到扩展SQL语句之后,所述方法还包括:若检测到所述扩展SQL语句被持久层拦截器改写,则将改写后的扩展SQL语句作为最终的扩展SQL语句。4.根据权利要求1所述的方法,其特征在于,将所述扩展SQL语句和所述待处理非动态SQL语句作为目标SQL语句,包括:若检测到所述待处理非动态SQL语句被持久层拦截器改写,则将改写后的待处理非动态SQL语句作为最终的目标非动态SQL语句;将所述扩展SQL语句和所述目标非动态SQL语句作为目标SQL语句。5.根据权利要求1所述的方法,其特征在于,读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句,包括:读取软件产品中的源代码,对所述源代码进行解析,得到所述源代码中的待处理动态SQL语句和待处理非动态SQL语句。6.根据权利要求1所述的方法,其特征在于,读取软件产品中的代码,获得待处理动态SQL语句和待处理非动态SQL语句,还包括:获取软件产品中持久层框架的目标接口;通过所述目标接口获取持久层框架的待处理动态SQL语句和待处理非动态SQL语句。7.根据权利要求1所述的方法,其特征在于,利用所述目标SQL语句,生成测试用例,包括:通过所述目标SQL语句和预设查询条件,得到待测试SQL语句;读取所述待测试SQL语句中的内容,获得待处理SQL使用表;根据所述待处理SQL使用表中的参数字段和参数字段取值,生成测试用例。8.根据权利要求7所述的方法,其特征在于,根据所述待处理SQL使用表中的参数字段和参数字段取值,生成测试用例,包括:利用预设的正交试验设计规则对所参数字段和参数字段取值进行处理,生成测试用例。9.根据权利要求7所述的方法,其特征在于,通过所述目标SQL语句和预设查询条件,得到待测试SQL语句,包括:通过所述目标SQL语句,得到获取SQL使用表、SQL执行条件以及SQL使用表的主键及全
部索引;根据所述获取SQL使用表、SQL执行条件以及SQL使用表的主键及全部...

【专利技术属性】
技术研发人员:刘翰宇肖月亮唐铄
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:

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

1