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

文档序号:9616192阅读:来源:国知局
统计指标的查询SQL,形成测试用例,将测试用例中的SQL转换为测试脚本,执行测试脚本后,生成查询的测试日志,然后从测试日志中获取测试结果并汇总比较。
[0044]本发明的关键技术在于查询SQL模式解析,统计表的数据是根据产品定义的规贝1J,将记录表数据按一定时间粒度及不同维度产生的。因此,统计表的数据和满足定义的规贝1J的记录表数据应满足“总量相等”原则。基于这个原则,对于任意统计指标,从统计表中查询的结果和从记录表中查询满足定义的规则的结果应该相等。统计准确性测试,就是分别从统计表和记录表查询满足定义的规则的数据,并比较二者查询结果的一致性。而查询方法就是分别编写及执行查询统计表的SQL和查询记录表的SQL。
[0045]统计准确性测试的查询SQL,包含查询对象、查询来源和查询条件的描述。这些描述都遵循固定的SQL语法规则,对这些规则做概括提炼,形成一些固定的模式,这些模式包含查询对象、查询来源和查询条件的不同组合。对于不同的统计指标,这些信息是动态变化的。在查询SQL实例形成时,选择某些规则模式,就选择了这些模式所暗含的模式语义,即SQL语法规则。在测试需求中定义这些模式所包含的动态参数,S卩:查询对象、查询来源和查询条件,自动化程序就可以获取具体的参数信息,并识别对应的规则模式,形成查询SQL实例。例如,由哪些测试需求的信息生成查询统计表的SQL,由哪些信息生成查询记录表的SQL,SQL中是否存在查询条件,统计表的数据是由一个记录表还是多个记录表的数据构成等等,就分别适用于不同的规则模式,这是形成SQL实例的基础。
[0046]每一个统计指标都需要形成两个SQL实例,即一个是查询统计表的SQL,另一个是查询记录表的SQL。
[0047]每个单元化的模式实例都有模式输入参数,也有模式的输出参数。对于查询统计表的SQL,输入参数包括统计表的指标算法、统计表、统计表的查询条件。对于查询记录表的SQL,输入参数包括记录表的指标算法、记录表和记录表的查询条件。二者的输出参数就是根据对应的规则模式生成的SQL实例。
[0048]综上所述,模式分析的过程,就是解释形成SQL实例的逻辑过程。
[0049]正是由于对这些生成SQL实例的规则模式化之后所带来的语义规约,使得只需要在测试需求中定义SQL中的动态变化的参数,就可以按照对应的规则模式生成SQL实例,从而做到具有相同规则模式的SQL实例逻辑统一。测试需求模板就是在定义这些动态变化参数的输入格式基础上形成的。
[0050]本发明采用VBA开发,只要安装了 Excel 2007及以上版本软件的计算机,即可运行统计准确性的自动化程序,无需任何其他开发工具及运行环境。基于数据库的统计准确性自动化程序生成的SQL遵循标准的SQL语法规则,其SQL中动态变化的参数部分在测试需求中定义,而测试需求由人工分析并定义,因此生成的SQL与数据库类型无关,可适用于多种数据库。
[0051]本发明提供的基于数据库的统计准确性自动化测试方法并不针对特定的业务功能,而是从通用的角度,用通用的测试方法和固定的逻辑覆盖去满足各种特定业务的统计准确性测试需求。这些需求是来自信令监测系统,是从监测系统的统计查询需求中提炼出来的,所以能覆盖监测系统已有的统计查询需求。
[0052]实施例2:图5是本发明实施例提供的基于数据库的统计准确性的测试系统的框图,从图中可以看出,基于数据库的统计准确性的测试系统,包括以下单元:
[0053]识别单元,用于识别并定义测试需求;
[0054]实例单元,用于生成测试用例;
[0055]转换单元,用于将测试用例中的SQL转换为测试脚本;
[0056]汇总单元,用于运行所述测试脚本,并汇总统计指标的测试结果。
[0057]具体地,所述系统还包括建模单元,用于根据数据库的统计指标的测试需求模板,定义出测试需求,所述测试需求包括测试对象及其属性参数,和统计表的查询对象、查询来源、查询条件,以及记录表的查询对象、查询来源和查询条件,进而建立能够识别所述测试需求的自动化测试模型。
[0058]优选地,所述实例单元进一步用于按照SQL语法规则自动生成测试用例,并将生成的测试用例按规范格式存储,所述测试用例包括测试对象及其属性,以及查询统计表的SQL和查询记录表的SQL。
[0059]具体地,所述转换单元进一步用于按照SQL语法规则将测试用例自动转换为测试脚本,所述测试脚本为SQL组成的shell脚本。
[0060]具体地,所述汇总单元进一步用于自动生成测试日志,所述测试日志中包含测试对象及其属性,以及对应的统计表查询结果和记录表查询结果,所述自动化测试模型对比每个测试对象的统计表查询结果和记录表查询结果,形成统计指标的测试结果,并标识出有差异的测试结果。
[0061]本发明的基于数据库的统计准确性的测试方法通过建立基于数据库的统计准确性的自动化测试模型,采用自动化程序识别测试需求,生成测试用例,将测试用例中的SQL转换为测试脚本,并且汇总统计指标测试结果,极大地降低了人力成本和时间成本,缩短了统计准确性的测试周期。
[0062]以上所揭露的仅为本发明的几种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种基于数据库的统计准确性的测试方法,其特征在于,包括以下步骤: 51、自动化测试模型自动识别测试需求; 52、根据测试需求生成测试用例; 53、将测试用例中的SQL转换为测试脚本; 54、运行所述测试脚本,并汇总统计指标的测试结果。2.如权利要求1所述的基于数据库的统计准确性的测试方法,其特征在于,所述步骤S1之前还包括根据数据库的统计指标的测试需求模板,定义出测试需求,所述测试需求包括测试对象及其属性参数,和统计表的查询对象、查询来源、查询条件,以及记录表的查询对象、查询来源和查询条件;所述自动化测试模型为能够识别所述测试需求的自动化程序系统。3.如权利要求2所述的基于数据库的统计准确性的测试方法,其特征在于,所述步骤S2进一步包括按照SQL语法规则自动生成测试用例,并将生成的测试用例按规范格式存储,所述测试用例包括测试对象及其属性,以及查询统计表的SQL和查询记录表的SQL。4.如权利要求2所述的基于数据库的统计准确性的测试方法,其特征在于,所述步骤S3进一步包括按照SQL语法规则将测试用例自动转换为测试脚本,所述测试脚本为SQL组成的shell脚本。5.如权利要求1-4中任意一项所述的基于数据库的统计准确性的测试方法,其特征在于,所述步骤S4进一步包括自动生成测试日志,所述测试日志中包含测试对象及其属性,以及对应的统计表查询结果和记录表查询结果,所述自动化测试模型对比每个测试对象的统计表查询结果和记录表查询结果,形成统计指标的测试结果,并标识出有差异的测试结果Ο6.一种基于数据库的统计准确性的测试系统,其特征在于,包括以下单元: 识别单元,用于识别并定义测试需求; 实例单元,用于生成测试用例; 转换单元,用于将测试用例中的SQL转换为测试脚本; 汇总单元,用于运行所述测试脚本,并汇总统计指标的测试结果。7.如权利要求6所述的基于数据库的统计准确性的测试系统,其特征在于,所述系统还包括建模单元,用于根据数据库的统计指标的测试需求模板,定义出测试需求,所述测试需求包括测试对象及其属性参数,和统计表的查询对象、查询来源、查询条件,以及记录表的查询对象、查询来源和查询条件,进而建立能够识别所述测试需求的自动化测试模型。8.如权利要求7所述的基于数据库的统计准确性的测试系统,其特征在于,所述实例单元进一步用于按照SQL语法规则自动生成测试用例,并将生成的测试用例按规范格式存储,所述测试用例包括测试对象及其属性,以及查询统计表的SQL和查询记录表的SQL。9.如权利要求7所述的基于数据库的统计准确性的测试系统,其特征在于,所述转换单元进一步用于按照SQL语法规则将测试用例自动转换为测试脚本,所述测试脚本为SQL组成的shell脚本。10.如权利要求7-9中任意一项所述的基于数据库的统计准确性的测试系统,其特征在于,所述汇总单元进一步用于自动生成测试日志,所述测试日志中包含测试对象及其属性,以及对应的统计表查询结果和记录表查询结果,所述自动化测试模型对比每个测试对象的统计表查询结果和记录表查询结果,形成统计指标的测试结果,并标识出有差异的测试结果。
【专利摘要】本发明涉及数据库领域,公开了一种基于数据库的统计准确性的测试方法,包括以下步骤:S1、自动化测试模型自动识别测试需求;S2、根据测试需求生成测试用例;S3、将测试用例中的SQL转换为测试脚本;S4、运行所述测试脚本,并汇总统计指标的测试结果,本发明还公开了基于数据库的统计准确性的测试系统。本发明的基于数据库的统计准确性的测试方法节省人力成本和时间成本,提高测试效率、缩短测试周期,完全杜绝测试过程中人为错误的发生,提高测试可靠性。<!-- 2 -->
【IPC分类】G06F17/30, G06F11/36
【公开号】CN105373472
【申请号】CN201510653932
【发明人】杨晓灿
【申请人】北京中创信测信息技术有限公司
【公开日】2016年3月2日
【申请日】2015年10月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1