CN109614315B - 一种数据同步测试用例的自动生成方法及系统 - Google Patents

一种数据同步测试用例的自动生成方法及系统 Download PDF

Info

Publication number
CN109614315B
CN109614315B CN201811312235.9A CN201811312235A CN109614315B CN 109614315 B CN109614315 B CN 109614315B CN 201811312235 A CN201811312235 A CN 201811312235A CN 109614315 B CN109614315 B CN 109614315B
Authority
CN
China
Prior art keywords
data
test
sql
statement
test case
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.)
Active
Application number
CN201811312235.9A
Other languages
English (en)
Other versions
CN109614315A (zh
Inventor
冯源
余院兰
宋天扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Dream Database Co Ltd
Original Assignee
Wuhan Dream Database Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Dream Database Co Ltd filed Critical Wuhan Dream Database Co Ltd
Priority to CN201811312235.9A priority Critical patent/CN109614315B/zh
Publication of CN109614315A publication Critical patent/CN109614315A/zh
Application granted granted Critical
Publication of CN109614315B publication Critical patent/CN109614315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种数据同步测试用例的自动生成方法,包括以下步骤:步骤S1、解析用户输入的建表命令,并在源端数据库创建测试用数据表;步骤S2、解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;步骤S3、将所述SQL测试语句装填到测试用例的执行流程字段,将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段。本发明提供方法生成的测试用例可以完整覆盖用户的实际操作,且通用性高。

Description

一种数据同步测试用例的自动生成方法及系统
技术领域
本发明涉及数据同步测试技术领域,具体涉及一种数据同步测试用例的自动生成方法及系统。
背景技术
在传统关系型数据库数据同步软件测试过程中,由于需要测试源端数据库的各类DDL和DML语句操作是否能正常同步至目的端,因此需要人工编写大量的DDL和DML的SQL测试语句,并将SQL语句作为测试用例在源端执行。人工生成SQL测试语句的方法效率低下,劳动强度大,而且容易出现测试用例集覆盖不完全的情况。尽管有方法能够实现SQL测试用例的自动化生成,但无法覆盖到各类场景下实际用户的操作,即不能很好的模拟实际的用户操作。用户在源端会进行各种各样的操作,比如:用户可能会创建多张表,有的表有主键,有的表有索引,有的表包含10个字段,有的表包含8个字段,每个字段又有可能是不同的数据类型,如int,char,clob等,在这种情况下,现有自动生成测试用例的方法很难覆盖到所有实际场景。另外,在数据同步系统中,源端可能是各种不同类型的数据库,如db2、mysql、postgresql、oracle等,不同类型数据库在某些sql语句的语法上存在一定的差异,单独为每类数据库编写相应的sql测试用例费时费力。
发明内容
本发明的目的在于克服上述技术不足,提供一种数据同步测试用例的自动生成方法,解决现有技术中测试用例无法覆盖用户实际操作以及测试用例通用性的不足的技术问题。
为达到上述技术目的,本发明的技术方案提供一种数据同步测试用例的自动生成方法,包括以下步骤:
步骤S1、解析用户输入的建表命令,并在源端数据库创建测试用数据表;
步骤S2、解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;
步骤S3、将所述SQL测试语句装填到测试用例的执行流程字段,将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段。
本发明还提供一种数据同步测试用例的自动生成系统,包括输入数据解析单元、执行流程装填单元以及期望结果装填单元;
所述输入数据解析单元用于解析用户输入的建表命令,并在源端数据库创建测试用数据表;
所述输入数据解析单元还用于解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;
所述执行流程装填单元用于将所述SQL测试语句装填到测试用例的执行流程字段;
所述期望结果装填单元用于将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段。
与现有技术相比,本发明的有益效果包括:本发明解析用户的操作命令,并根据解析结果生成相应的SQL测试语句,然后根据SQL测试语句自动生成测试用例。由于SQL测试语句时根据用户的操作命令生成的,因此,可以较为完整的覆盖用户的实际操作,提高测试的完整性,有效减少测试人员的工作量。同时,SQL测试语句时根据用户的操作命令生成,使得测试用例适用于源端数据库,不需要测试人员针对源端数据库的类型单独编写不具备通用性的SQL语句的测试用例,提高了测试用例的通用性。
附图说明
图1是本发明提供的数据同步测试用例的自动生成方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1:
如图1所示,本发明的实施例1提供了一种数据同步测试用例的自动生成方法,以下简称自动生成方法,包括以下步骤:
步骤S1、解析用户输入的建表命令,并在源端数据库创建测试用数据表;
步骤S2、解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;
步骤S3、将所述SQL测试语句装填到测试用例的执行流程字段,将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段。
本发明提供的数据同步测试用例的自动生成方法,根据用户输入生成测试用例,在整个流程中,用户首先输入的一定是创建数据表的建表命令,根据建表命令创建测试用数据表,这样在数据库中就已保存与该表结构相关的基础数据,为后续测试用例的生成做准备。然后根据用户输入的操作命令,生成相应的SQL测试语句,使得SQL测试语句完整覆盖用户的实际操作。最后将SQL测试语句装填到测试用例的执行流程字段,测试时执行SQL测试语句即可;将SQL测试语句的执行结果数据装填到测试用例的期望结果字段,用于执行完SQL测试语句后对执行结果的验证。
本发明提供的自动生成方法基于用户输入解析,根据解析结果生成相应的SQL测试语句,因此可以很好的覆盖用户的实际操作以及实际应用场景,提高测试用例的完整性;同时,生成的测试用例适用于不同类型的数据库,对于一些不具备通用性的SQL语句,不再需要测试人员针对源端数据库的类型单独编写相应的测试用例,提高了测试用例的通用性,减少了测试人员的工作量。
优选的,所述步骤S1具体为:
根据用户输入的建表命令解析出数据表信息,根据所述数据表信息生成SQL建表语句,在源端数据库执行所述SQL建表语句创建所述测试用数据表。
数据表信息包括:数据库类型,数据表名称,数据表中字段的数量以及各字段对应的数据类型。首先从建表命令中解析出上述信息,从而可以生成相应的SQL建表语句。SQL建表语句创建后要首先执行该SQL建表语句,确保在数据库中成功的创建该表,,为后续测试用例的生成做准备。
优选的,所述操作命令为DML命令时,所述步骤S2具体为:
根据用户输入的DML命令解析出DML关键词以及受影响数据条目,访问源端数据库,获取所述测试用数据表中与受影响数据条目对应的字段类型,并根据字段类型随机生成多个数据值,结合所述DML关键词以及数据值生成相应的所述SQL测试语句。
由于DML命令与DDL命令的关键信息存在一定差异,因此,生成测试用例的方法也存在一定差异。步骤S1中创建了测试用数据表后,后续用户会针对上述已创建的测试用数据表输入相应的DML命令,DML命令主要包括以下几种:
1.插入单行或者多行数据
2.更新某列或者多列数据
3.删除单行或者多行数据
这些DML命令的关键信息包括DML关键词以及受影响的数据条目。当接收到用户输入的DML命令时,首先解析出DML关键词和受影响的数据条目,然后通过相应接口,例如odbc接口,访问源端数据库,获取测试用数据表对应的字段信息,进而根据字段信息以及解析出的DML关键词和受影响的数据条目从数据源中生成相应的SQL测试语句。这里介绍一下数据源,数据源负责各类型字段数据的产生,如int型,varchar型等。根据各数据库支持的字段类型,可以分为1.数值类型,2.字符类型,3.时间日期类型,4其他类型,其他类型主要用于某些数据库所支持的特殊类型。数据源中针对上述各类数据类型分别使用相应的现有的随机数据生成方法生成具体的数据值。这里,针对各类型字段,生成的数据值中可以为边界值,中间值和空值。
优选的,所述操作命令为DDL命令时,所述步骤S2具体为:
根据用户输入的DDL命令解析出DDL关键词,访问源端数据库,获取所述测试用数据表的表结构,结合所述DDL关键词以及表结构生成相应的所述SQL测试语句。
对于DDL命令,例如创建索引命令、创建约束命令等,需要先从DDL命令中解析出DDL关键词,然后访源端问数据库获取表结构,进而根据关键词和表结构生成相应的SQL语句。
优选的,所述自动生成方法还包括:
记录所述测试用例生成过程的日志,处理所述测试用例生成过程中的异常。
记录日志有利于数据紧急恢复等,对测试用例生成过程中的异常进行及时处理,保证测试用例的顺利生成。
实施例2:
本发明的实施例2提供了一种数据同步测试用例的自动生成系统,包括输入数据解析单元、执行流程装填单元以及期望结果装填单元;
所述输入数据解析单元用于解析用户输入的建表命令,并在源端数据库创建测试用数据表;
所述输入数据解析单元还用于解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;
所述执行流程装填单元用于将所述SQL测试语句装填到测试用例的执行流程字段;
所述期望结果装填单元用于将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段。
本发明提供的数据同步测试用例的自动生成系统,基于上述数据同步测试用例的自动生成方法,因此,上述数据同步测试用例的自动生成方法具备的技术效果,数据同步测试用例的自动生成系统同样具备,在此不再赘述。
优选的,所述输入数据解析单元还用于根据用户输入的建表命令解析出数据表信息,根据所述数据表信息生成SQL建表语句,在源端数据库执行所述SQL建表语句创建所述测试用数据表。
优选的,数据同步测试用例的自动生成系统还包括日志记录单元以及异常处理单元;
所述日志记录单元用于记录所述测试用例生成过程的日志;
所述异常处理单元用于处理所述测试用例生成过程中的异常。
实施例3:
本发明的实施例3提供了一种计算机存储介质,其上存储有计算机程序,所述计算机存储介质被处理器执行时,实现以上任一实施例所述数据同步测试用例的自动生成方法。
本发明提供的计算机存储介质,用于实现上述数据同步测试用例的自动生成方法,因此,上述数据同步测试用例的自动生成方法具备的技术效果,计算机存储介质同样具备,在此不再赘述。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。

Claims (7)

1.一种数据同步测试用例的自动生成方法,其特征在于,包括以下步骤:
步骤S1、解析用户输入的建表命令,并在源端数据库创建测试用数据表;
步骤S2、解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;
步骤S3、将所述SQL测试语句装填到测试用例的执行流程字段,将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段;
所述操作命令为DML命令时,所述步骤S2具体为:
根据用户输入的DML命令解析出DML关键词以及受影响数据条目,访问源端数据库,获取所述测试用数据表中与受影响数据条目对应的字段类型,并根据字段类型随机生成多个数据值,结合所述DML关键词以及数据值生成所述SQL测试语句;
所述操作命令为DDL命令时,所述步骤S2具体为:
根据用户输入的DDL命令解析出DDL关键词,访问源端数据库,获取所述测试用数据表的表结构,结合所述DDL关键词以及表结构生成所述SQL测试语句。
2.根据权利要求1所述的数据同步测试用例的自动生成方法,其特征在于,所述步骤S1具体为:
根据用户输入的建表命令解析出数据表信息,根据所述数据表信息生成SQL建表语句,在源端数据库执行所述SQL建表语句创建所述测试用数据表。
3.根据权利要求1所述的数据同步测试用例的自动生成方法,其特征在于,所述自动生成方法还包括:
记录所述测试用例生成过程的日志,处理所述测试用例生成过程中的异常。
4.一种数据同步测试用例的自动生成系统,其特征在于,包括输入数据解析单元、执行流程装填单元以及期望结果装填单元;
所述输入数据解析单元用于解析用户输入的建表命令,并在源端数据库创建测试用数据表;
所述输入数据解析单元还用于解析用户输入的操作命令,并生成与所述操作命令相应的SQL测试语句;
所述执行流程装填单元用于将所述SQL测试语句装填到测试用例的执行流程字段;
所述期望结果装填单元用于将所述SQL测试语句的执行结果数据装填到测试用例的期望结果字段;
所述输入数据解析单元具体用于:所述操作命令为DML命令时,根据用户输入的DML命令解析出DML关键词以及受影响数据条目,访问源端数据库,获取所述测试用数据表中与受影响数据条目对应的字段类型,并根据字段类型随机生成多个数据值,结合所述DML关键词以及数据值生成所述SQL测试语句;
所述输入数据解析单元具体用于:所述操作命令为DDL命令时,根据用户输入的DDL命令解析出DDL关键词,访问源端数据库,获取所述测试用数据表的表结构,结合所述DDL关键词以及表结构生成所述SQL测试语句。
5.根据权利要求4所述的数据同步测试用例的自动生成系统,其特征在于,
所述输入数据解析单元还用于根据用户输入的建表命令解析出数据表信息,根据所述数据表信息生成SQL建表语句,在源端数据库执行所述SQL建表语句创建所述测试用数据表。
6.根据权利要求4所述的数据同步测试用例的自动生成系统,其特征在于,还包括日志记录单元以及异常处理单元;
所述日志记录单元用于记录所述测试用例生成过程的日志;
所述异常处理单元用于处理所述测试用例生成过程中的异常。
7.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机存储介质被处理器执行时,实现如权利要求1-3任一所述数据同步测试用例的自动生成方法。
CN201811312235.9A 2018-11-06 2018-11-06 一种数据同步测试用例的自动生成方法及系统 Active CN109614315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811312235.9A CN109614315B (zh) 2018-11-06 2018-11-06 一种数据同步测试用例的自动生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811312235.9A CN109614315B (zh) 2018-11-06 2018-11-06 一种数据同步测试用例的自动生成方法及系统

Publications (2)

Publication Number Publication Date
CN109614315A CN109614315A (zh) 2019-04-12
CN109614315B true CN109614315B (zh) 2021-11-23

Family

ID=66002215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811312235.9A Active CN109614315B (zh) 2018-11-06 2018-11-06 一种数据同步测试用例的自动生成方法及系统

Country Status (1)

Country Link
CN (1) CN109614315B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159020B (zh) * 2019-12-20 2021-11-05 武汉达梦数据库股份有限公司 一种应用于同步软件测试的方法和装置
CN111427787B (zh) * 2020-03-26 2023-05-30 杭州小影创新科技股份有限公司 一种异构数据库业务数据同步测试方法
CN111813679B (zh) * 2020-07-10 2023-06-30 北京思特奇信息技术股份有限公司 基于python执行测试用例的方法、装置、电子设备及存储介质
CN113535585A (zh) * 2021-08-03 2021-10-22 广域铭岛数字科技有限公司 一种测试数据生成方法及系统
CN115757083A (zh) * 2021-09-02 2023-03-07 中兴通讯股份有限公司 一种分布式数据库检测方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9111030B1 (en) * 2008-10-03 2015-08-18 Federal Home Loan Mortgage Corporation Systems and methods for testing a software application
CN105446743A (zh) * 2015-12-12 2016-03-30 天津南大通用数据技术股份有限公司 一种自动生成sql语句的系统及方法
CN105808437A (zh) * 2016-03-09 2016-07-27 广州彩瞳网络技术有限公司 基于测试用例数据表的自动化测试方法及系统
CN108073612A (zh) * 2016-11-14 2018-05-25 平安科技(深圳)有限公司 同步sql执行计划的方法和装置
CN108399130A (zh) * 2018-02-28 2018-08-14 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9111030B1 (en) * 2008-10-03 2015-08-18 Federal Home Loan Mortgage Corporation Systems and methods for testing a software application
CN105446743A (zh) * 2015-12-12 2016-03-30 天津南大通用数据技术股份有限公司 一种自动生成sql语句的系统及方法
CN105808437A (zh) * 2016-03-09 2016-07-27 广州彩瞳网络技术有限公司 基于测试用例数据表的自动化测试方法及系统
CN108073612A (zh) * 2016-11-14 2018-05-25 平安科技(深圳)有限公司 同步sql执行计划的方法和装置
CN108399130A (zh) * 2018-02-28 2018-08-14 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SQL测试用例集的自动生成;丁祥武 等;《计算机应用与软件》;20120831;第29卷(第8期);全文 *

Also Published As

Publication number Publication date
CN109614315A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN109614315B (zh) 一种数据同步测试用例的自动生成方法及系统
CN109271326B (zh) 云数据库的测试方法及其装置、设备和存储介质
CN109460349B (zh) 一种基于日志的测试用例生成方法和装置
US11163744B2 (en) Test data generation and scale up for database testing using unique common factor sequencing
CN104866580B (zh) 一种数据库变更对现有业务影响的快速侦测方法
CN107609188B (zh) 基于GoldenGate的数据同步校验方法
US20130110879A1 (en) Declarative support for reference data in relational databases
CN103761189A (zh) 一种测试用例管理方法及系统
US20090055429A1 (en) Method and system for data collection
CN112307124A (zh) 数据库同步验证方法、装置、设备及存储介质
KR102099069B1 (ko) 하이브리드 erd 관리 시스템 및 그 방법
CN110580170B (zh) 软件性能风险的识别方法及装置
CN111159020B (zh) 一种应用于同步软件测试的方法和装置
US7765531B2 (en) Systems and methods for handling multiple static query modules for distinct environments
CN108388589B (zh) 一种数据库sql查询语句自动生成的装置
CN111723104A (zh) 一种数据处理系统中语法分析的方法、装置及系统
CN115858561A (zh) 统一sql的方法、系统、设备及介质
US20190303460A1 (en) Transaction-based pseudo-script generation for scheduling and implementing database schema changes
US20160217190A1 (en) System for extracting records from a non-relational database based on one or more relational database management system (rdbms) language statements
CN117033415A (zh) 存储过程的测试方法、装置、设备及存储介质
CN113641572A (zh) 一种基于sql的海量大数据计算开发的调试方法
de Castro et al. An Approach to Perform Automated Functional Testing in Database-Driven Applications.
Bonino et al. Formal Modeling and Analysis of Entity Framework Using Alloy
US20190303461A1 (en) Transaction-based psuedo-script configuration for scheduling and implementing database schema changes
CN114676107A (zh) 一种基于穴盘育苗式的机器视觉数据管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co., Ltd

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Feng Yuan

Inventor after: Yu Yuanlan

Inventor after: Song Tianyang

Inventor before: Fu Quan

Inventor before: Feng Yuan

Inventor before: Yu Yuanlan

Inventor before: Song Tianyang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant