一种基于数据库的统计准确性的测试方法及测试系统的制作方法

文档序号:9616192阅读:529来源:国知局
一种基于数据库的统计准确性的测试方法及测试系统的制作方法
【技术领域】
[0001]本发明涉及数据库领域,尤其涉及一种基于数据库的统计准确性的测试方法及测试系统。
【背景技术】
[0002]基于数据库的统计准确性测试,通常是对统计表的数据进行汇总查询,并与记录表的数据按一定规则汇总查询的结果相比较,以判断其测试结果是否正确。统计表是根据产品定义的规则,将记录表数据按一定时间粒度及不同维度产生的,因此,统计准确性测试,是一种验证这些规则是否正确实现的测试方法。在测试之前,需要分析产品需求,手工编写各个统计指标查询目标数据(即统计表)的SQL和查询源数据(即记录表)的SQL,测试执行时,逐个执行SQL,并比较二者查询结果是否一致。
[0003]在现有的测试方法中,基于数据库的海量数据的统计准确性测试往往采用手工编写SQL,手工执行查询的方式进行验证。由于统计分析功能较多,一个系统的统计指标一般有成千上百个,都需要人工分析需求,并且手工编写SQL和手工执行SQL查询,测试期间往往需要耗费大量人力和时间,并且,当需求发生变化时,SQL的维护量也相当惊人。
[0004]因为手工执行SQL效率很低,所以比较常用的做法是将这些SQL写成测试脚本,采用执行测试脚本的方式进行查询,得到测试结果,这样,可以在一定程度上提高测试执行的效率。由于频繁的需求变化以及人工编写SQL容易出现错误等原因,测试脚本往往需要投入较多人力和时间进行维护,而最终的测试结果,也需要手工汇总分析,人工判断测试结果的准确性,最终导致测试效率仍然较低。

【发明内容】

[0005]为克服现有技术的不足,本发明的目的是:提供一种基于数据库的统计准确性的测试方法,通过建立基于数据库的统计准确性的自动化测试模型,采用自动化程序识别测试需求,生成测试用例,将测试用例中的SQL转换为测试脚本,并且汇总统计指标测试结果,极大地降低了人力成本和时间成本,缩短了统计准确性的测试周期。
[0006]为了解决【背景技术】中的技术问题,本发明提供了一种基于数据库的统计准确性的测试方法,包括以下步骤:
[0007]S1、自动化测试模型自动识别测试需求;
[0008]S2、根据测试需求生成测试用例;
[0009]S3、将测试用例中的SQL转换为测试脚本;
[0010]S4、运行所述测试脚本,并汇总统计指标的测试结果。
[0011]具体地,所述步骤S1之前还包括根据数据库的统计指标的测试需求模板,定义出测试需求,所述测试需求包括测试对象及其属性参数,和统计表的查询对象、查询来源、查询条件,以及记录表的查询对象、查询来源和查询条件;所述自动化测试模型为能够识别所述测试需求的自动化程序系统。
[0012]优选地,所述步骤S2进一步包括按照SQL语法规则自动生成测试用例,并将生成的测试用例按规范格式存储,所述测试用例包括测试对象及其属性,以及查询统计表的SQL和查询记录表的SQL。
[0013]具体地,所述步骤S3进一步包括按照SQL语法规则将测试用例自动转换为测试脚本,所述测试脚本为SQL组成的shell脚本。
[0014]具体地,所述步骤S4进一步包括自动生成测试日志,所述测试日志中包含测试对象及其属性,以及对应的统计表查询结果和记录表查询结果,所述自动化测试模型对比每个测试对象的统计表查询结果和记录表查询结果,形成统计指标的测试结果,并标识出有差异的测试结果。
[0015]本发明还提供了一种基于数据库的统计准确性的测试系统,包括以下单元:
[0016]识别单元,用于识别并定义测试需求;
[0017]实例单元,用于生成测试用例;
[0018]转换单元,用于将测试用例中的SQL转换为测试脚本;
[0019]汇总单元,用于运行所述测试脚本,并汇总统计指标的测试结果。
[0020]具体地,所述系统还包括建模单元,用于根据数据库的统计指标的测试需求模板,定义出测试需求,所述测试需求包括测试对象及其属性参数,和统计表的查询对象、查询来源、查询条件,以及记录表的查询对象、查询来源和查询条件,进而建立能够识别所述测试需求的自动化程序系统。
[0021]优选地,所述实例单元进一步用于按照SQL语法规则自动生成测试用例,并将生成的测试用例按规范格式存储,所述测试用例包括测试对象及其属性,以及查询统计表的SQL和查询记录表的SQL。
[0022]具体地,所述转换单元进一步用于按照SQL语法规则将测试用例自动转换为测试脚本,所述测试脚本为SQL组成的shell脚本。
[0023]具体地,所述汇总单元进一步用于自动生成测试日志,所述测试日志中包含测试对象及其属性,以及对应的统计表查询结果和记录表查询结果,所述自动化测试模型对比每个测试对象的统计表查询结果和记录表查询结果,形成统计指标的测试结果,并标识出有差异的测试结果。
[0024]采用上述技术方案,本发明的基于数据库的统计准确性的测试方法通过建立基于数据库的统计准确性的自动化测试模型,采用自动化程序识别测试需求,生成测试用例,将测试用例中的SQL转换为测试脚本,并且汇总统计指标测试结果,极大地降低了人力成本和时间成本,缩短了统计准确性的测试周期。
【附图说明】
[0025]为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0026]图1是本发明实施例提供的基于数据库的统计准确性的测试方法的流程图;
[0027]图2是本发明实施例提供的生成测试用例的流程图;
[0028]图3是本发明实施例提供的生成测试脚本的流程图;
[0029]图4是本发明实施例提供的汇总测试结果的流程图;
[0030]图5是本发明实施例提供的基于数据库的统计准确性的测试系统的框图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]实施例1:图1为本发明实施例提供的基于数据库的统计准确性的测试方法的流程图,从图中可以清楚地看出,本实施例提供的基于数据库的统计准确性的测试方法包括以下步骤:
[0033]S1、自动化测试模型自动识别测试需求;
[0034]S2、根据测试需求生成测试用例;
[0035]S3、将测试用例中的SQL转换为测试脚本;
[0036]S4、运行所述测试脚本,并汇总统计指标的测试结果。
[0037]具体地,所述步骤S1之前还包括根据数据库的统计指标的测试需求模板,定义出测试需求,所述测试需求包括测试对象及其属性参数,和统计表的查询对象、查询来源、查询条件,以及记录表的查询对象、查询来源和查询条件;所述自动化测试模型为能够识别所述测试需求的自动化程序系统。
[0038]图2是本发明实施例提供的生成测试用例的流程图,从图中可以看出,测试需求中定义的主要内容包含:测试对象(即统计指标)及其属性信息(如指标类型、指标中文含义等),统计表的查询对象、查询来源和查询条件,对应记录表的查询对象、查询来源和查询条件;若统计表的数据来源于多个记录表,则包含多组记录表的查询对象、查询来源和查询条件。根据测试需求的定义,程序可以自动识别应根据何种规则模式形成SQL实例。测试对象及其属性信息、查询统计表的SQL和查询记录表的SQL是构成测试用例的主要内容,生成测试用例的后续活动需要生成测试脚本,因此,测试用例也应按约定的规范格式存储,使得生成测试脚本的程序可以自动识别所需信息。综上,所述步骤S2进一步包括按照SQL语法规则自动生成测试用例,并将生成的测试用例按规范格式存储,所述测试用例包括测试对象及其属性,以及查询统计表的SQL和查询记录表的SQL。
[0039]图3是本发明实施例提供的生成测试脚本的流程图,所述步骤S3进一步包括按照SQL语法规则将测试用例自动转换为测试脚本,所述测试脚本为SQL组成的shell脚本。
[0040]图4是本发明实施例提供的汇总测试结果的流程图,所述步骤S4进一步包括自动生成测试日志,所述测试日志中包含测试对象及其属性,以及对应的统计表查询结果和记录表查询结果,所述自动化测试模型对比每个测试对象的统计表查询结果和记录表查询结果,形成统计指标的测试结果,并标识出有差异的测试结果。
[0041]统计准确性自动化测试由一系列相互依赖的测试活动组成,从分析产品需求开始,直至最终输出测试结果。每个测试活动都会输出该活动的测试文档或文件,作为下一个活动的输入。
[0042]为使程序能够自动化完成测试过程,每一活动的输入必须具有统一的规范格式,使程序可以按照既定的规则获取信息并执行命令,为达到这一目标而设计的统计准确性测试需求模板、测试用例模板、测试脚本模板正是统计准确性自动化测试模型的产物。
[0043]本发明实现的原理是:根据产品需求编写
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1