一种数据库兼容性检测方法及设备的制造方法

文档序号:9750698阅读:243来源:国知局
一种数据库兼容性检测方法及设备的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种数据库兼容性检测方法。本发明同时还涉及一种数据库兼容性检测设备。
【背景技术】
[0002]随着数据存储技术的发展,DBMS (Database Management System,数据库管理系统)以及SQL (Structured Query Language,结构化查询语言)越来越为人们所重视。数据库服务器一般指代通用关系型数据库管理系统,属于系统软件类型。可以是成熟稳定的商业数据库,例如,oracle,可以是开源的或者自研的数据库软件,例如,mysql、OceanBase等。而SQL则是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
[0003]数据库软件是一种比较底层的系统支撑软件,一般会有设计、开发、测试等角色,各司其职,当一个数据库版本开发完成后,就会交付到测试组进行产品验证。测试人员会根据产品的设计说明书和SQL指导手册、接口文档等技术资料,编写SQL测试用例。当一个新版本出来后,用上一个版本的case库回归老功能,同时,根据新版本的变更说明,补充新
Case0
[0004]目前的数据库领域的产品种类非常多,这些数据库均支持标准的SQL语法和JDBC访问接口。但是对于成长期的数据库来说,其架构经常变化,版本迭代很快,这样会造成SQL语法和API访问接口也会变动,给使用这些数据库的应用系统APP带来版本兼容性的风险。
[0005]为了避免数据库变动所带来的兼容性问题,现有的测试方法从数据库本身的角度出发,把数据库支持的SQL功能全部回归测试一遍,这是一种通用的SQL回归测试方法。具体地,现有技术中数据库新版本的交付过程如下:
[0006]首先,数据库版本的SQL测试:
[0007]I)根据SQL语法指导手册,编写case,构造case库;
[0008]2)数据库新版本交付后,用上一个版本的case库回归测试;
[0009]3)补充新的SQL用例到case库;
[0010]随后进行以下业务应用的集成测试:
[0011]I)大的版本变化,大回归,全面测试;
[0012]2)小的版本变化,小回归,主要流程测试;
[0013]在实现本发明的过程中,发明人发现以上测试方法存在着以下问题:
[0014]I)脱离了具体的业务应用场景,忽略了对业务逻辑的细微影响
[0015]该情况下,数据库版本的SQL本身可能是正确且符合预期的,但某个业务应用可能锁定了某些SQL执行结果的某个特定格式,这个格式的任何细微变化都会导致业务逻辑判断错误,而这种格式的变化可能是新的数据库版本本身就特意设计改进的地方。例如,空串(”)和空值(null)、时间字段格式、varchar长度限制、浮点数的精度、系统表定义等这些细微的变化,这些变化是开源或者自研数据库产品在发展初期版本迭代中经常遇到的问题,不可避免。
[0016]2)业务应用系统可能会漏测,把数据库版本变化带来的兼容性风险泄露到线上
[0017]众所周知,现在的很多业务应用系统是非常庞大的,业务逻辑复杂,特别是各种异常分支非常多,尤其是在互联网领域,业务产品的更新迭代很快很频繁,不可能每次测试都100%覆盖到所有分支的SQL,很容易泄露掉一些细节变化带来的兼容性风险。这些风险也许影响不会很大,例如,只是影响了 APP界面的显示格式和用户体验,也许会将影响扩大,例如,浮点类型的精度可能会影响到涉及到金钱交易的问题。
[0018]在数据库更新迭代过程中,SQL语法比较大的变化一般在数据库系统自身的SQL回归测试中就能够发现,并预警出来,如果是非常细小的变化,不一定能够及时传递到使用数据库的业务应用端,即使事先知道了这些细小变化,业务应用的开发人员也很难在纷繁复杂的业务逻辑分支中很快找到受影响的点。因此,如何方便、快捷、高效地对数据库的兼容性进行检测,成为本领域技术人员亟待解决的技术问题。

【发明内容】

[0019]本发明提供了一种数据库兼容性检测方法,用以解决现有技术中数据库兼容性检测过程繁琐以及效率低下的问题,该方法包括:
[0020]获取测试基准数据以及基准文件,所述基准文件是在针对在先数据库执行SQL回归源文件后生成的,所述SQL回归源文件根据所述测试基准数据生成,所述测试基准数据为所述在先数据库以及待检测数据库中共有的且不会发生改变的数据集合;
[0021]根据所述SQL回归源文件对所述待检测数据库执行SQL回放处理;
[0022]将执行所述SQL回放处理后所得到的结果文件与所述基准文件进行内容对比;
[0023]若所述基准文件与所述结果文件的内容一致,则确认所述待检测数据库不存在兼容性问题;
[0024]若所述基准文件与所述结果文件的内容不一致,则确认所述待检测数据库存在兼容性问题。
[0025]相应地,本发明还提出了一种数据库兼容性检测设备,其特征在于,包括:
[0026]获取模块,用于获取测试基准数据以及基准文件,所述基准文件是在针对在先数据库执行SQL回归源文件后生成的,所述SQL回归源文件根据所述测试基准数据生成,所述测试基准数据为所述在先数据库以及待检测数据库中共有的且不会发生改变的数据集合;
[0027]处理模块,用于根据所述SQL回归源文件对所述待检测数据库执行SQL回放处理;
[0028]对比模块,用于将执行所述SQL回放处理后所得到的结果文件与所述基准文件进行内容对比;
[0029]若所述基准文件与所述结果文件的内容一致,所述对比模块确认所述待检测数据库不存在兼容性问题;
[0030]若所述基准文件与所述结果文件的内容不一致,所述对比模块确认所述待检测数据库存在兼容性问题。
[0031]由此可见,通过应用本发明以上技术方案,在获取测试基准数据以及基准文件之后,即根据SQL回归源文件对待检测数据库执行SQL回放处理;并将执行SQL回放处理后所得到的结果文件与基准文件进行内容对比,基于对比结果是否一致确定是否存在兼容性问题。该方法不仅能够高效可靠地发现数据库版本变化可能引入的兼容性风险,而且简单易行,便于实施。
【附图说明】
[0032]图1为本发明提出的一种数据库兼容性检测方法的流程示意图;
[0033]图2为本发明具体实施例所提出的数据库兼容性检测示意图;
[0034]图3为本发明提出的一种数据库兼容性检测设备的结构示意图。
【具体实施方式】
[0035]如【背景技术】所述,如果数据库新版本SQL有明显的变动,业务的回归测试一般是可以感知到的,如果数据库版本SQL是细微的变动,数据库测试人员会当作新的功能优化,补充新的case,由于变化不大,业务的回归测试也是小范围的,诸如,空串(”)和空值(nulI)、时间字段格式、varchar长度限制、浮点数的精度、系统表定义等这些细微的变化很容易被泄露掉。目前只有把这些细节都测试完整,并通知要求业务系统测试人员进行一次全面的集成测试才能避免该问题,该方法耗时耗力,且效率低下。因此本申请通过把数据库系统和业务应用融合起来,提供一种能够尽量规避人为的疏忽以及简单高效的兼容性检测方法。
[0036]如图1所示,为本发明提出的一种数据库兼容性检测方法流程示意图,包
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1