[发明专利]面向分析型数据库的大规模随机负载生成及验证方法及系统有效
| 申请号: | 202010632285.6 | 申请日: | 2020-07-03 |
| 公开(公告)号: | CN112241363B | 公开(公告)日: | 2021-10-12 |
| 发明(设计)人: | 张蓉;米凯铭 | 申请(专利权)人: | 华东师范大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 上海德禾翰通律师事务所 31319 | 代理人: | 陈艳娟 |
| 地址: | 200241 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 分析 数据库 大规模 随机 负载 生成 验证 方法 系统 | ||
本发明提出了一种面向分析型数据库的大规模随机负载生成及验证方法,可以生成大规模随机数据库、查询负载以及相应的查询执行结果,帮助高效地完成查询执行结果正确性验证。本发明还提出了一种面向分析型数据库的大规模随机负载生成及验证方系统。
技术领域
本发明涉及数据生成、查询生成、正确结果生成技术领域,尤其涉及一种面向分析型数据库的大规模随机负载生成及验证方法及系统。
背景技术
软件测试是保证软件可靠性的有效手段,在软件开发过程中占有重要的地位。然而,测试通常是一个十分消耗人力和时间的过程,这也就导致其在软件开发代价中占比很高。尤其,对于DBMS这种大型、复杂的系统软件,它的测试输入十分复杂,这使得测试DBMS的代价进一步上升。自动化测试案例生成能够显著地减少测试代价,帮助我们更加充分、系统地完成测试,增加系统可靠性,提高开发效率。
为了完成数据库系统的功能测试,需要测试数据库、测试查询、以及正确执行结果这三个部分帮助完成。如何高效地将数据生成、查询生成和结果集生成这三个部分的工作整合到一起是一个很难、也急需解决的问题。
在数据生成方面,主要包含两类工作,一种是查询无感的数据生成[1-5],另一种是查询感知的数据生成[6-10]。对于查询无感的数据生成,在进行数据生成时只考虑目标数据库的数据特征,通常使用这种方法进行大规模数据库生成然后执行各种测试基准。这类工作的普遍问题是,测试查询在该数据库上执行时可能不会返回有意义的结果,例如返回空集,这会导致大量无效的数据库测试。查询感知的数据生成在数据生成时考虑测试查询带来的约束。这类工作致力于生成数据库使得在其中执行测试查询时可以得到期待的中间结果集,进而帮助我们测试内存管理器或者查询优化器中的基数估计组件等。
在查询生成方面,RAGS[11]是已知最早的随机SQL生成器,服务于SQL Server的测试工作。RAGS可以根据给定的schema信息生成大量随机的符和语法的SQL。由于RAGS会生成将近50%的无效查询,GARan[12]是第一个针对数据库系统的自适应随机测试技术,它能够帮助我们找到有效的查询。GARan根据负载执行的反馈信息使用遗传算法生成更符和预期的测试案例进而提高测试的代码覆盖度。RAGS和GARan都需要在多个数据库系统中执行相同的查询,并且逐行比对返回结果集来验证查询执行的正确性。为了提高测试效率,自适应随机测试思想和技术[13-14]的引入可以有效提高生成的测试案例质量。其他类型的负载生成器有固定的查询模板[15-17]。QGen[17]可以根据一组查询模板快速生成大量的查询,TPC-DS的查询负载便由其生成。工作[15,16]希望为查询模板填入合适的参数值,使查询满足指定的基数约束。
在正确结果生成方面,一些工作[18,19]在生成数据和负载的同时,也给出了查询执行结果。ADUSA[19]的数据生成和负载生成都依赖于Alloy[20]。然而,Alloy的数据生成复杂度过高,不足以支持大规模测试数据库生成。同时,ADUSA也存在负载类型支持较少的问题。工作[21,22]对ADUSA进行了补充,并且把查询生成,数据生成和结果生成整合到一个自动化框架中。然而还是具有负载类型不充分,不支持大数据集的问题。工作[18]扩展了在[23]中提出的RQP技术,先生成查询和期待的查询结果,之后再生成相应的数据库。但是其数据库生成代价高昂,生成大规模数据库也是不可行的。
上面提到的方法在大数据集下进行查询执行结果正确性验证,要么需要消耗大量的存储和计算资源(对比系统),代价十分高昂,要么是无法适用的(生成大规模数据库代价过高,不具有实际使用意义)。
发明内容
数据库系统的功能模块越来越多并且越来越复杂,为了保证其可靠性,需要充分的功能测试,其中为了检测查询执行结果是否正确,需要测试数据库、测试查询和测试查询在测试数据库上执行的正确结果这三个部分帮助我们完成正确性检测。目前还没有技术可以有效地把这三部分结合起来,高效地完成查询执行结果正确性验证。
本发明提出的面向分析型数据库的大规模随机负载生成及验证方法,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010632285.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于自主驾驶平台的开放和安全监视系统
- 下一篇:一种船用抗摇摆安全配电箱结构





