CN104636257A - 基于sql覆盖的数据库应用软件自动化测试方法 - Google Patents
基于sql覆盖的数据库应用软件自动化测试方法 Download PDFInfo
- Publication number
- CN104636257A CN104636257A CN201510111313.9A CN201510111313A CN104636257A CN 104636257 A CN104636257 A CN 104636257A CN 201510111313 A CN201510111313 A CN 201510111313A CN 104636257 A CN104636257 A CN 104636257A
- Authority
- CN
- China
- Prior art keywords
- source code
- database
- database access
- sql
- testing method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 83
- 238000004458 analytical method Methods 0.000 claims abstract description 53
- 230000003068 static effect Effects 0.000 claims abstract description 22
- 238000005516 engineering process Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 57
- 230000003542 behavioural effect Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000010998 test method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 238000002156 mixing Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种基于SQL覆盖的数据库应用软件自动化测试方法,包括:建立数据库访问的语法规则表;采用词法分析和语法分析技术,依赖可自定义的语法规则对源代码进行静态分析,并获取与数据库访问相关的代码信息;采用ASM技术对源代码进行动态分析,分别对其中的多个类进行遍历,获取每个类中与数据库访问相关的信息;对静态分析结果和动态分析结果进行融合以生成数据库访问行为特征模型,并据此构造数据库访问行为特征库;捕获源代码执行时的数据库访问动态执行特征,并将其与数据库访问行为特征库进行匹配计算,获得基于SQL的测试覆盖数据。本发明的方法能够提高SQL覆盖测试的充分性和有效性,并在实现SQL覆盖测试的同时,不影响被测软件的执行特性。
Description
技术领域
本发明涉及数据库及软件测试技术领域,特别涉及一种基于SQL覆盖的数据库应用软件自动化测试方法。
背景技术
数据库应用软件是基于数据库管理系统运行的应用软件,这种软件通过在程序代码中嵌入SQL语言的数据操纵语句,对数据库中的数据进行增加、修改、删除和查询,实现必要的业务处理逻辑,完成用户预期功能。
现代生活中,信息量日益增大,信息分布日益广泛,信息利用需求日益增加和复杂,导致数据库应用软件的数量和复杂程度也随之增加,成为重要的软件测试对象。
覆盖测试方法是软件测试技术的重要组成部分。测试人员通过测试覆盖率,了解测试充分性。当测试覆盖率低,而测试要求高时,需补充测试用例,对软件进行进一步的测试,提升测试充分性。以往的覆盖测试只关注程序语言的测试覆盖情况,目前也有不少商业化软件测试工具支持语句覆盖、分支覆盖、MC\DC等多种覆盖测试方法,但这些覆盖测试方法均忽视了广泛使用的数据库应用软件的固有特点。
在数据库应用软件中,SQL语句完成的功能是整体应用业务处理逻辑的重要组成部分。对各种数据库应用软件进行系统测试时,往往应用黑盒测试方法,测试用例对嵌入在程序语言中的SQL语句的覆盖情况不得而知。如果在测试设计中没有充分考虑数据库应用软件的特点,只针对业务处理逻辑设计测试数据和测试方法,而未对复杂的SQL语句进行充分的测试设计,这样的软件测试将遗漏重要测试内容,致使针对软件与数据库的交互行为测试不充分,隐藏了软件错误。目前已有一些针对数据库管理系统的测试工具和标准,但缺乏针对数据库应用软件特点的软件测试自动化手段。
发明内容
本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
为此,本发明的目的在于提出一种基于SQL覆盖的数据库应用软件自动化测试方法,该方法能够提高SQL覆盖测试的充分性和有效性,并且在实现SQL覆盖测试的同时,不影响被测软件的执行特性。
为了实现上述目的,本发明的实施例提出了一种基于SQL覆盖的数据库应用软件自动化测试方法,包括以下步骤:S1:建立数据库访问的语法规则表,其中,所述语法规则表包括数据库操作函数的特征信息和编码;S2:采用词法分析和语法分析技术,依赖可自定义的语法规则对源代码进行静态分析,包括:根据所述语法规则表从被测软件源代码中获取与数据库访问相关的代码信息,所述代码信息包括源代码所在的类、源代码所在的行和对应的编码;S3:采用ASM技术对所述源代码进行动态分析,包括:分别对所述被测软件源代码中的多个类进行遍历,以获取每个类中与数据库访问相关的信息;S4:对静态分析结果和动态分析结果进行融合以生成数据库访问行为特征模型,并根据所述数据库访问行为特征模型构造数据库访问行为特征库;S5:捕获所述源代码执行时的数据库访问动态执行特征,并将所述数据库访问动态执行特征与数据库访问行为特征库进行匹配计算,获得基于SQL的测试覆盖数据;以及S6:展示所述基于SQL的测试覆盖数据。
根据本发明实施例的基于SQL覆盖的数据库应用软件自动化测试方法,可自动截获被测软件的数据库访问执行信息,全面分析多种SQL覆盖测试信息和数据库模式,准确获取和展示基于SQL的测试覆盖数据,为数据库应用软件测试的SQL覆盖程度的度量,给出直观的量化结果。该方法可使测试人员在测试数据库应用软件的过程中,根据SQL语句覆盖测试信息,准确了解被测软件与数据库管理系统交互行为的测试充分程度,有的放矢地补充测试用例,提高测试充分性和有效性。另外,与其他覆盖测试方法实现不同,本发明的方法无需在被测软件源代码中插桩,便可以获得SOL语句的覆盖信息,具有代码膨胀率为零的特点,使得在实现SQL覆盖测试的同时,不影响被测软件的执行特性。
另外,根据本发明上述实施例的基于SQL覆盖的数据库应用软件自动化测试方法还可以具有如下附加的技术特征:
在一些示例中,所述步骤S2进一步包括:加载数据库访问特征的语法规则并通过语法规则形成规则正则表达式;加载被测软件源代码,并使用所述规则正则表达式定位、匹配以及识别符合数据库访问规则的源代码;对所述符合数据库访问规则的源代码中的数据库访问信息进行分类存储。
在一些示例中,所述步骤S3进一步包括:加载所述被测软件源代码中的多个类;解析所述多个类,获取类中包含的源代码信息;对类中的全局变量、方法、注释进行分析,获取并存储与数据库访问相关的信息。
在一些示例中,所述步骤S4进一步包括:加载所述源代码静态分析结果及动态分析结果;循环对所述源代码静态分析结果及动态分析结果进行对比,确认所述静态分析结果是否为数据库访问方法,并获取符合条件的方法的源代码所在行;分析符合条件的方法的源代码所在的行,生成被测软件的数据库访问行为特征模型。
在一些示例中,所述步骤S5进一步包括:截取数据库访问请求并获取请求信息;分析所述请求信息的类型,并添加数据库访问源代码所在行和数据库访问响应时间,生成完整的执行特征日志数据;将所述执行特征日志数据与所述数据库访问行为特征模型进行匹配计算,获得基于SQL的测试覆盖数据。
在一些示例中,所述数据库访问行为特征模型具有多维属性,包括关键词、源代码引用层次定义、文件以及行列号精确描述、词法表达式定义。
在一些示例中,所述执行特征日志数据包括操作标识、操作类型、返回值、操作时间。
在一些示例中,所述基于SQL的测试覆盖数据包括SQL语句覆盖、表覆盖、字段覆盖、触发器覆盖、包覆盖、存储过程覆盖、序列覆盖、函数覆盖。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的基于SQL覆盖的数据库应用软件自动化测试方法的流程图;
图2是根据本发明一个实施例的对源代码进行静态分析的处理时序图;
图3是根据本发明一个实施例的对源代码进行动态分析的处理时序图;
图4是根据本发明一个实施例的生成数据库访问行为特征模型的处理时序图;
图5是根据本发明一个实施例的获得基于SQL的测试覆盖数据的处理时序图;
图6是根据本发明一个实施例的展示基于SQL的测试覆盖数据的处理时序图;以及
图7是根据本发明另一个实施例的基于SQL覆盖的数据库应用软件自动化测试方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元素或具有相同或类似功能的元素。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
以下结合附图描述根据本发明实施例的基于SQL覆盖的数据库应用软件自动化测试方法。
图1是根据本发明一个实施例的基于SQL覆盖的数据库应用软件自动化测试方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101:建立数据库访问的语法规则表,其中,语法规则表包括数据库操作函数的特征信息和编码。
其中,在具体示例中,数据库操作函数例如包括Connect、CreateStatement、ExecuteQuery、PreparStatement、ResultSet等J2EE中数据库访问的语法规则元素,通过特征定义,形成数据库访问的语法规则。语法规则表通过结构化的XML数据格式描述,定义了数据库访问函数的特征信息,支持JDBC规范。
作为具体示例,语法规则示意如下所示:
<rules name="JDBC"type="core">
<item id="J0038"feature="getConnection"desc=""/>
<item id="J0039"feature="createStatement"desc=""/>
<item id="J0040"feature="executeQuery"desc=""/>
<item id="J0041"feature="executeUpdate"desc=""/>
<item id="J0042"feature="prepareStatement"desc=""/>
<item id="J0043"feature="commit"desc=""/>
<item id="J0044"feature="rollback"desc=""/>
<item id="J0001"feature="BatchUpdateException"desc=""/>
<item id="J0002"feature="CallableStatement"desc=""/>
<item id="J0003"feature="ClientInfoStatus"desc=""/>
<item id="J0014"feature="ResultSetMetaData"desc=""/>
<item id="J0015"feature="RowId"desc=""/>
<item id="J0016"feature="RowIdLifetime"desc=""/>
<item id="J0017"feature="SQLClientInfoException"desc=""/>
<item id="J0018"feature="SQLData"desc=""/>
<item id="J0019"feature="SQLDataException"desc=""/>
<item id="J0020"feature="SQLException"desc=""/>
<item id="J0021"feature="SQLFeatureNotSupportedException"desc=""/>
<item id="J0022"feature="SQLInput"desc=""/>
<item id="J0023"feature="SQLIntegrityConstraintViolationException"desc=""/>
<item id="J0024"feature="SQLInvalidAuthorizationSpecException"desc=""/>
<item id="J0025"feature="SQLNonTransientConnectionException"desc=""/>
<item id="J0026"feature="SQLNonTransientException"desc=""/>
<item id="J0027"feature="SQLOutput"desc=""/>
<item id="J0028"feature="SQLPermission"desc=""/>
<item id="J0029"feature="SQLRecoverableException"desc=""/>
<item id="J0030"feature="SQLSyntaxErrorException"desc=""/>
<item id="J0031"feature="SQLTimeoutException"desc=""/>
<item id="J0032"feature="SQLTransactionRollbackException"desc=""/>
<item id="J0033"feature="SQLTransientConnectionException"desc=""/>
……
</rules>
步骤S102:采用词法分析和语法分析技术,依赖可自定义的语法规则对源代码进行静态分析,包括:根据语法规则表从被测软件源代码中获取与数据库访问相关的代码信息,代码信息包括源代码所在的类、源代码所在的行和对应的编码。
具体地说,该步骤即采用词法分析和语法分析技术,依赖可自定义的语法规则对被测软件源代码进行匹配计算,获取源代码中与数据库访问相关的信息,这些信息例如包括源代码所在的类、源代码所在的行及语法规则特征编码,按照语言自然文件进行记录并汇总,实现对被测软件所有源代码的静态分析。
然后,通过分析,获得源代码中数据库访问语义出现的路径信息,并存储该语义信息。在本发明的一个实施例中,步骤S102的处理时序如图2所示,具体包括以下步骤:
步骤1021:加载数据库访问特征的语法规则并通过语法规则形成规则正则表达式。
步骤1022:加载被测软件源代码,并使用语法规则形成的规则正则表达式定位、匹配以及识别符合数据库访问规则的源代码。
步骤1023:对符合数据库访问规则的源代码中的数据库访问信息进行分类存储。
步骤S103:采用ASM技术对源代码进行动态分析,包括:分别对被测软件源代码中的多个类进行遍历,以获取每个类中与数据库访问相关的信息。
在具体示例中,在步骤S103中,源代码动态分析采用ASM技术实现被测软件源代码类的遍历,获取类中的操作方法,并与代码静态分析获得的结果进行比对,确认是否为数据库操作函数。
作为具体地示例,例如提供ClassReader类,该类可以直接由字节数组或由class文件间接地获得字节码数据,正确地分析字节码,构建出抽象树在内存中表示字节码。代码动态分析调用accept方法,该方法接收一个实现了ClassVisitor接口的对象实例作为参数,然后依次调用ClassVisitor接口的各个方法,包括变量、方法、方法体、类注解。具体地,步骤S103的处理时序如图3所示,在本发明的一个实施例中,步骤S103具体包括以下步骤:
步骤S1031:加载所述被测软件源代码中的多个类。例如通过ClassReader方法加载class文件。
步骤S1032:解析多个类,获取类中包含的源代码信息。例如通过classAdapter类解析class文件,获取class文件中包含的源代码信息。
步骤S1033:对类中的全局变量、方法、注释进行分析,获取并存储与数据库访问相关的信息。例如通过visitField、visitMethod、visitAnnotation方法完成class文件中全局变量、方法、注释的分析,并获取与数据库访问相关的信息,然后存储获取到的上述信息。
作为具体地示例,步骤S103实现过程中的关键代码如下所示:
步骤S104:对静态分析结果和动态分析结果进行融合以生成数据库访问行为特征模型,并根据数据库访问行为特征模型构造数据库访问行为特征库。
具体地说,代码静态分析运用广义的语法描述规则对被测软件源代码进行扫描,通过词法和语法分析获得数据库访问特征信息。代码静态分析获取的特征信息主要包括关键词、代码位置、语法点文件位置等。代码动态分析通过分析被测软件的可执行代码,获得准确的调用栈信息以及词法元素信息。此后,基于数据库应用软件的语法和执行特征,应用特征融合算法,使用静态精确匹配和动态模糊识别算法,对代码动态和静态扫描分析信息进行融合计算,使用调用栈关系结构,对调用代码的层次进行遍历、发现、识别、合并等融合计算、形成数据库应用软件的数据库访问行为特征模型。
其中,通过特征融合算法获得的数据库访问行为特征模型具有多维属性,例如包括关键词、源代码引用层次定义、文件以及行列号精确描述、词法表达式定义等,具备在被测软件动态执行过程中判断其中数据库访问行为的能力。
作为具体地示例,例如通过执行算法rt_Stack_Syntax_compare(object Syntax[],objectSyntax[]),将代码静态扫描分析获得的结果syntanList与代码动态扫描分析获得的结果objectSyntax[]进行比对,并将获得的比对结果保存至结果数据集中。例如,步骤S104的处理时序如图4所示,在本发明的一个实施例中,步骤S104具体包括以下步骤:
步骤S1041:加载源代码静态分析结果及动态分析结果。具体地,例如通过loadSyntanList方法加载源代码静态分析结果及动态分析结果。
步骤S1042:循环对源代码静态分析结果及动态分析结果进行对比,确认静态分析结果是否为数据库访问方法,并获取符合条件的方法的源代码所在行。
步骤S1043:分析符合条件的方法的源代码所在的行,以生成被测软件的数据库访问行为特征模型。
步骤S105:捕获源代码执行时的数据库访问动态执行特征,并将数据库访问动态执行特征与数据库访问行为特征库进行匹配计算,获得基于SQL的测试覆盖数据。
作为具体示例,在该步骤中,例如利用JAVA语言反射技术构造测试代理。在被测软件执行过程中,测试代理基于数据库访问行为特征模型,通过特定手段生成定制的执行特征日志数据,其中,执行特征日志数据例如包括操作标识、操作类型、返回值、操作时间等信息。在被测软件执行过程中,测试代理可感知数据库应用软件访问数据库的行为,自动捕获、识别被测软件实际访问数据库的轨迹。
测试代理覆盖了JDBC所有功能调用,支持JDBC2.0及以上版本的调用规范。对于后续版本的JDBC规范,通过简单改造也可支持,可以广泛用于所有以JDBC规范开发的数据库应用软件的SQL覆盖测试。
在具体示例中,例如,该步骤通过提供JdbcProxy类分别处理被测软件对数据库的每个访问请求(request)及其响应(response),提供MethodTracer工具类,将request/response产生的结果文件整合形成记录文件,并保存于指定目录下。本步骤S105的处理时序例如图5所示。在本发明的一个实施例中,步骤S105具体包括以下步骤:
步骤S1051:截取数据库访问请求并获取请求信息。例如通过jdbcPro类截取数据库访问请求并获取请求信息。
步骤S1052:分析请求信息的类型,并添加数据库访问源代码所在行和数据库访问响应时间,生成完整的执行特征日志数据。
步骤S1053:将执行特征日志数据与数据库访问行为特征模型进行匹配计算,获得基于SQL的测试覆盖数据。
作为具体地示例,该步骤S105的关键代码如下所示:
其中,测试代理代用过程的代码如下所示:importjava.sql.Statement;
进一步地,测试代理分析输出结果示意如下表1所示:
表1
步骤S106:展示基于SQL的测试覆盖数据。
具体地,在该步骤中,例如以清晰明了的图表等多种方式展现基于SQL的测试覆盖数据。更为具体地,基于SQL的测试覆盖数据例如包括SQL语句覆盖、表覆盖、字段覆盖、触发器覆盖、包覆盖、存储过程覆盖、序列覆盖、函数覆盖等多种信息。该步骤S106的处理时序例如图6所示。
结合图7,本发明实施例的基于SQL覆盖的数据库应用软件自动化测试方法的原理及主要流程可概述如下:首先,将数据库访问语句特征信息通过语义定义生成语义规则,通过对被测软件源代码进行词法和语法分析,获得语义树,再按照语义规则,定位获得源代码中数据库访问点等相关关联信息,对这些信息进行整理保存,形成被测软件源代码静态分析结果。此后,使用ASM技术动态分析被测软件的可执行代码,获得该被测软件数据库访问的准确的词法集合,形成被测软件实际使用的语义规则。在此基础上,应用特征融合算法计算代码静态分析和动态分析结果,生成被测软件的数据库访问行为模型。
然后,在运行被测软件时,测试代理截获并分析数据库用户模式信息,获得数据库静态结构中的表、字段、触发器、过程等数据库对象定义,将获得的执行特征日志信息与数据库访问行为特征模型进行匹配计算,生成数据库访问覆盖数据,并以多种形式将覆盖信息可视化展示。
综上,根据本发明实施例的基于SQL覆盖的数据库应用软件自动化测试方法,可自动截获被测软件的数据库访问执行信息,全面分析多种SQL覆盖测试信息和数据库模式,准确获取和展示基于SQL的测试覆盖数据,为数据库应用软件测试的SQL覆盖程度的度量,给出直观的量化结果。该方法可使测试人员在测试数据库应用软件的过程中,根据SQL语句覆盖测试信息,准确了解被测软件与数据库管理系统交互行为的测试充分程度,有的放矢地补充测试用例,提高测试充分性和有效性。另外,与其他覆盖测试方法实现不同,本发明的方法无需在被测软件源代码中插桩,便可以获得SOL语句的覆盖信息,具有代码膨胀率为零的特点,使得在实现SQL覆盖测试的同时,不影响被测软件的执行特性。
Claims (8)
1.一种基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,包括以下步骤:
S1:建立数据库访问的语法规则表,其中,所述语法规则表包括数据库操作函数的特征信息和编码;
S2:采用词法分析和语法分析技术,依赖可自定义的语法规则对源代码进行静态分析,包括:根据所述语法规则表从被测软件源代码中获取与数据库访问相关的代码信息,所述代码信息包括源代码所在的类、源代码所在的行和对应的编码;
S3:采用ASM技术对所述源代码进行动态分析,包括:分别对所述被测软件源代码中的多个类进行遍历,以获取每个类中与数据库访问相关的信息;
S4:对静态分析结果和动态分析结果进行融合以生成数据库访问行为特征模型,并根据所述数据库访问行为特征模型构造数据库访问行为特征库;
S5:捕获所述源代码执行时的数据库访问动态执行特征,并将所述数据库访问动态执行特征与数据库访问行为特征库进行匹配计算,获得基于SQL的测试覆盖数据;以及
S6:展示所述基于SQL的测试覆盖数据。
2.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述步骤S2进一步包括:
加载数据库访问特征的语法规则并通过语法规则形成规则正则表达式;
加载被测软件源代码,并使用所述规则正则表达式定位、匹配以及识别符合数据库访问规则的源代码;
对所述符合数据库访问规则的源代码中的数据库访问信息进行分类存储。
3.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述步骤S3进一步包括:
加载所述被测软件源代码中的多个类;
解析所述多个类,获取类中包含的源代码信息;
对类中的全局变量、方法、注释进行分析,获取并存储与数据库访问相关的信息。
4.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述步骤S4进一步包括:
加载所述源代码静态分析结果及动态分析结果;
循环对所述源代码静态分析结果及动态分析结果进行对比,确认所述静态分析结果是否为数据库访问方法,并获取符合条件的方法的源代码所在行;
分析符合条件的方法的源代码所在的行,以生成被测软件的数据库访问行为特征模型。
5.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述步骤S5进一步包括:
截取数据库访问请求并获取请求信息;
分析所述请求信息的类型,并添加数据库访问源代码所在行和数据库访问响应时间,生成完整的执行特征日志数据;
将所述执行特征日志数据与所述数据库访问行为特征模型进行匹配计算,获得基于SQL的测试覆盖数据。
6.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述数据库访问行为特征模型具有多维属性,包括关键词、源代码引用层次定义、文件以及行列号精确描述、词法表达式定义。
7.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述执行特征日志数据包括操作标识、操作类型、返回值、操作时间。
8.根据权利要求1所述的基于SQL覆盖的数据库应用软件自动化测试方法,其特征在于,所述基于SQL的测试覆盖数据包括SQL语句覆盖、表覆盖、字段覆盖、触发器覆盖、包覆盖、存储过程覆盖、序列覆盖、函数覆盖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510111313.9A CN104636257B (zh) | 2015-03-13 | 2015-03-13 | 基于sql覆盖的数据库应用软件自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510111313.9A CN104636257B (zh) | 2015-03-13 | 2015-03-13 | 基于sql覆盖的数据库应用软件自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636257A true CN104636257A (zh) | 2015-05-20 |
CN104636257B CN104636257B (zh) | 2017-10-27 |
Family
ID=53215041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510111313.9A Active CN104636257B (zh) | 2015-03-13 | 2015-03-13 | 基于sql覆盖的数据库应用软件自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636257B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930267A (zh) * | 2016-04-15 | 2016-09-07 | 中国工商银行股份有限公司 | 一种基于数据库字典的存储过程静态检测方法及系统 |
CN107229568A (zh) * | 2017-06-09 | 2017-10-03 | 华东师范大学 | 带过去时态的线性时态逻辑性质的有界运行时验证方法 |
CN107480060A (zh) * | 2017-08-03 | 2017-12-15 | 中国航空工业集团公司西安飞机设计研究所 | 一种数据覆盖自动化测试方法 |
CN107832209A (zh) * | 2017-10-26 | 2018-03-23 | 北京邮电大学 | 一种基于混合检测结果的Android应用行为分析方法 |
CN108595721A (zh) * | 2018-08-01 | 2018-09-28 | 四川长虹电器股份有限公司 | 一种sql优化系统及自动化sql优化方法 |
CN109284278A (zh) * | 2018-08-13 | 2019-01-29 | 中国平安人寿保险股份有限公司 | 基于数据分析技术的计算逻辑迁移方法及终端设备 |
CN109460349A (zh) * | 2018-09-19 | 2019-03-12 | 武汉达梦数据库有限公司 | 一种基于日志的测试用例生成方法和装置 |
CN109992502A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团四川有限公司 | 应用软件性能自动检测分析方法、装置、设备及介质 |
CN110347573A (zh) * | 2018-04-03 | 2019-10-18 | 北京京东尚科信息技术有限公司 | 应用程序分析方法、装置、电子设备及计算机可读介质 |
CN110532165A (zh) * | 2019-07-05 | 2019-12-03 | 中国平安财产保险股份有限公司 | 应用程序安装包特性检测方法、装置、设备及存储介质 |
CN110597844A (zh) * | 2019-08-14 | 2019-12-20 | 中国平安财产保险股份有限公司 | 异构数据库数据统一访问方法及相关设备 |
CN110889113A (zh) * | 2019-10-30 | 2020-03-17 | 泰康保险集团股份有限公司 | 一种日志分析方法、服务器、电子设备及存储介质 |
CN111208990A (zh) * | 2019-12-27 | 2020-05-29 | 苏州数设科技有限公司 | 一种对象分析方法与装置 |
CN111736846A (zh) * | 2020-06-15 | 2020-10-02 | 南京航空航天大学 | 一种面向动态分析的源代码插桩改进方法 |
US10795903B2 (en) | 2016-10-04 | 2020-10-06 | Datavard Gmbh | Method and system for determining data usage behavior in a database system |
CN113220782A (zh) * | 2021-04-30 | 2021-08-06 | 土巴兔集团股份有限公司 | 多元测试数据源生成方法、装置、设备及介质 |
CN115129600A (zh) * | 2022-07-04 | 2022-09-30 | 浙江大学 | 基于差分模糊测试的数据库管理系统测试方法和测试系统 |
CN117687902A (zh) * | 2023-11-20 | 2024-03-12 | 北京计算机技术及应用研究所 | 一种面向模糊测试的种子挖掘方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664173A (en) * | 1995-11-27 | 1997-09-02 | Microsoft Corporation | Method and apparatus for generating database queries from a meta-query pattern |
CN101271421A (zh) * | 2007-03-22 | 2008-09-24 | 北京邮电大学 | 一种软件故障测试系统及方法 |
CN101436128A (zh) * | 2007-11-16 | 2009-05-20 | 北京邮电大学 | 软件测试用例自动生成方法及系统 |
CN102043720A (zh) * | 2011-01-18 | 2011-05-04 | 北京世纪高通科技有限公司 | 利用sql语句自动生成测试数据的方法和装置 |
CN102360336A (zh) * | 2011-10-20 | 2012-02-22 | 上海达梦数据库有限公司 | 一种基于语法规则的自动化测试系统及方法 |
EP2513793A1 (en) * | 2009-12-15 | 2012-10-24 | Seeker Security Ltd. | Method and system of runtime analysis |
CN103729361A (zh) * | 2012-10-12 | 2014-04-16 | 百度在线网络技术(北京)有限公司 | 一种数据库性能测试方法及装置 |
-
2015
- 2015-03-13 CN CN201510111313.9A patent/CN104636257B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664173A (en) * | 1995-11-27 | 1997-09-02 | Microsoft Corporation | Method and apparatus for generating database queries from a meta-query pattern |
CN101271421A (zh) * | 2007-03-22 | 2008-09-24 | 北京邮电大学 | 一种软件故障测试系统及方法 |
CN101436128A (zh) * | 2007-11-16 | 2009-05-20 | 北京邮电大学 | 软件测试用例自动生成方法及系统 |
EP2513793A1 (en) * | 2009-12-15 | 2012-10-24 | Seeker Security Ltd. | Method and system of runtime analysis |
CN102043720A (zh) * | 2011-01-18 | 2011-05-04 | 北京世纪高通科技有限公司 | 利用sql语句自动生成测试数据的方法和装置 |
CN102360336A (zh) * | 2011-10-20 | 2012-02-22 | 上海达梦数据库有限公司 | 一种基于语法规则的自动化测试系统及方法 |
CN103729361A (zh) * | 2012-10-12 | 2014-04-16 | 百度在线网络技术(北京)有限公司 | 一种数据库性能测试方法及装置 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930267B (zh) * | 2016-04-15 | 2019-03-12 | 中国工商银行股份有限公司 | 一种基于数据库字典的存储过程静态检测方法及系统 |
CN105930267A (zh) * | 2016-04-15 | 2016-09-07 | 中国工商银行股份有限公司 | 一种基于数据库字典的存储过程静态检测方法及系统 |
US10795903B2 (en) | 2016-10-04 | 2020-10-06 | Datavard Gmbh | Method and system for determining data usage behavior in a database system |
CN107229568A (zh) * | 2017-06-09 | 2017-10-03 | 华东师范大学 | 带过去时态的线性时态逻辑性质的有界运行时验证方法 |
CN107480060A (zh) * | 2017-08-03 | 2017-12-15 | 中国航空工业集团公司西安飞机设计研究所 | 一种数据覆盖自动化测试方法 |
CN107832209A (zh) * | 2017-10-26 | 2018-03-23 | 北京邮电大学 | 一种基于混合检测结果的Android应用行为分析方法 |
CN109992502A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团四川有限公司 | 应用软件性能自动检测分析方法、装置、设备及介质 |
CN110347573A (zh) * | 2018-04-03 | 2019-10-18 | 北京京东尚科信息技术有限公司 | 应用程序分析方法、装置、电子设备及计算机可读介质 |
CN110347573B (zh) * | 2018-04-03 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 应用程序分析方法、装置、电子设备及计算机可读介质 |
CN108595721A (zh) * | 2018-08-01 | 2018-09-28 | 四川长虹电器股份有限公司 | 一种sql优化系统及自动化sql优化方法 |
CN109284278A (zh) * | 2018-08-13 | 2019-01-29 | 中国平安人寿保险股份有限公司 | 基于数据分析技术的计算逻辑迁移方法及终端设备 |
CN109284278B (zh) * | 2018-08-13 | 2023-10-31 | 中国平安人寿保险股份有限公司 | 基于数据分析技术的计算逻辑迁移方法及终端设备 |
CN109460349A (zh) * | 2018-09-19 | 2019-03-12 | 武汉达梦数据库有限公司 | 一种基于日志的测试用例生成方法和装置 |
CN110532165A (zh) * | 2019-07-05 | 2019-12-03 | 中国平安财产保险股份有限公司 | 应用程序安装包特性检测方法、装置、设备及存储介质 |
CN110532165B (zh) * | 2019-07-05 | 2024-06-28 | 中国平安财产保险股份有限公司 | 应用程序安装包特性检测方法、装置、设备及存储介质 |
CN110597844B (zh) * | 2019-08-14 | 2023-07-21 | 中国平安财产保险股份有限公司 | 异构数据库数据统一访问方法及相关设备 |
CN110597844A (zh) * | 2019-08-14 | 2019-12-20 | 中国平安财产保险股份有限公司 | 异构数据库数据统一访问方法及相关设备 |
CN110889113A (zh) * | 2019-10-30 | 2020-03-17 | 泰康保险集团股份有限公司 | 一种日志分析方法、服务器、电子设备及存储介质 |
CN111208990B (zh) * | 2019-12-27 | 2024-05-24 | 苏州数设科技有限公司 | 一种对象分析方法与装置 |
CN111208990A (zh) * | 2019-12-27 | 2020-05-29 | 苏州数设科技有限公司 | 一种对象分析方法与装置 |
CN111736846B (zh) * | 2020-06-15 | 2021-06-22 | 南京航空航天大学 | 一种面向动态分析的源代码插桩改进方法 |
CN111736846A (zh) * | 2020-06-15 | 2020-10-02 | 南京航空航天大学 | 一种面向动态分析的源代码插桩改进方法 |
CN113220782A (zh) * | 2021-04-30 | 2021-08-06 | 土巴兔集团股份有限公司 | 多元测试数据源生成方法、装置、设备及介质 |
CN113220782B (zh) * | 2021-04-30 | 2024-07-02 | 土巴兔集团股份有限公司 | 多元测试数据源生成方法、装置、设备及介质 |
CN115129600A (zh) * | 2022-07-04 | 2022-09-30 | 浙江大学 | 基于差分模糊测试的数据库管理系统测试方法和测试系统 |
CN117687902A (zh) * | 2023-11-20 | 2024-03-12 | 北京计算机技术及应用研究所 | 一种面向模糊测试的种子挖掘方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104636257B (zh) | 2017-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636257A (zh) | 基于sql覆盖的数据库应用软件自动化测试方法 | |
Prete et al. | Template-based reconstruction of complex refactorings | |
US8489649B2 (en) | Extensible RDF databases | |
US7926026B2 (en) | Graphical analysis to detect process object anomalies | |
Bockermann et al. | The streams framework | |
US11397575B2 (en) | Microservices graph generation | |
US20070027849A1 (en) | Integrating query-related operators in a programming language | |
EP3732587B1 (en) | Systems and methods for context-independent database search paths | |
GB2460532A (en) | Metadata driven data capture for a temporal data warehouse | |
CN103262076A (zh) | 分析数据处理 | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
Carme et al. | A model-driven heuristic approach for detecting multidimensional facts in relational data sources | |
US11269880B2 (en) | Retroreflective clustered join graph generation for relational database queries | |
Cleve et al. | Dynamic program analysis for database reverse engineering | |
US20220222253A1 (en) | Sql statement generator | |
US20080133455A1 (en) | Method of processing data | |
US11354313B2 (en) | Transforming a user-defined table function to a derived table in a database management system | |
US20230141190A1 (en) | Late Materialization of Queried Data in Database Cache | |
US11847115B2 (en) | Join pattern agnostic aggregate computation in database query operations | |
CN108829578A (zh) | 一种cdr关联回填准确性自动化测试方法及系统 | |
Cvetković et al. | A comparative study of the features and performance of orm tools in a. net environment | |
Schink | sql-schema-comparer: Support of multi-language refactoring with relational databases | |
Ahmed et al. | Dynamic approach for data scrubbing process | |
US11593366B2 (en) | Techniques for pushing joins into union all views | |
Wang et al. | Effective large scale ontology mapping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210428 Address after: 100141 C03, Dacheng Road, Beijing, Fengtai District, 13 Patentee after: Hu Jingyu Patentee after: BEIJING WEITAI SHIXIN TECHNOLOGY Co.,Ltd. Address before: 100141 C03, Dacheng Road, Beijing, Fengtai District, 13 Patentee before: Hu Jingyu |