[发明专利]基于SQL覆盖的数据库应用软件自动化测试方法有效
申请号: | 201510111313.9 | 申请日: | 2015-03-13 |
公开(公告)号: | CN104636257B | 公开(公告)日: | 2017-10-27 |
发明(设计)人: | 胡兢玉;李华莹;常宁;曹晖;田旭;董昕;陈光;刘怡静 | 申请(专利权)人: | 胡兢玉 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F17/30 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙)11201 | 代理人: | 张大威 |
地址: | 100141 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sql 覆盖 数据库 应用软件 自动化 测试 方法 | ||
技术领域
本发明涉及数据库及软件测试技术领域,特别涉及一种基于SQL覆盖的数据库应用软件自动化测试方法。
背景技术
数据库应用软件是基于数据库管理系统运行的应用软件,这种软件通过在程序代码中嵌入SQL语言的数据操纵语句,对数据库中的数据进行增加、修改、删除和查询,实现必要的业务处理逻辑,完成用户预期功能。
现代生活中,信息量日益增大,信息分布日益广泛,信息利用需求日益增加和复杂,导致数据库应用软件的数量和复杂程度也随之增加,成为重要的软件测试对象。
覆盖测试方法是软件测试技术的重要组成部分。测试人员通过测试覆盖率,了解测试充分性。当测试覆盖率低,而测试要求高时,需补充测试用例,对软件进行进一步的测试,提升测试充分性。以往的覆盖测试只关注程序语言的测试覆盖情况,目前也有不少商业化软件测试工具支持语句覆盖、分支覆盖、MC/DC等多种覆盖测试方法,但这些覆盖测试方法均忽视了广泛使用的数据库应用软件的固有特点。
在数据库应用软件中,SQL语句完成的功能是整体应用业务处理逻辑的重要组成部分。对各种数据库应用软件进行系统测试时,往往应用黑盒测试方法,测试用例对嵌入在程序语言中的SQL语句的覆盖情况不得而知。如果在测试设计中没有充分考虑数据库应用软件的特点,只针对业务处理逻辑设计测试数据和测试方法,而未对复杂的SQL语句进行充分的测试设计,这样的软件测试将遗漏重要测试内容,致使针对软件与数据库的交互行为测试不充分,隐藏了软件错误。目前已有一些针对数据库管理系统的测试工具和标准,但缺乏针对数据库应用软件特点的软件测试自动化手段。
发明内容
本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
为此,本发明的目的在于提出一种基于SQL覆盖的数据库应用软件自动化测试方法,该方法能够提高SQL覆盖测试的充分性和有效性,并且在实现SQL覆盖测试的同时,不影响被测软件的执行特性。
为了实现上述目的,本发明的实施例提出了一种基于SQL覆盖的数据库应用软件自动化测试方法,包括以下步骤:S1:建立数据库访问的语法规则表,其中,所述语法规则表包括数据库操作函数的特征信息和编码;S2:采用词法分析和语法分析技术,依赖可自定义的语法规则对源代码进行静态分析,包括:根据所述语法规则表从被测软件源代码中获取与数据库访问相关的代码信息,所述代码信息包括源代码所在的类、源代码所在的行和对应的编码;S3:采用ASM技术对所述源代码进行动态分析,包括:分别对所述被测软件源代码中的多个类进行遍历,以获取每个类中与数据库访问相关的信息;S4:对静态分析结果和动态分析结果进行融合以生成数据库访问行为特征模型,并根据所述数据库访问行为特征模型构造数据库访问行为特征库;S5:捕获所述源代码执行时的数据库访问动态执行特征,并将所述数据库访问动态执行特征与数据库访问行为特征库进行匹配计算,获得基于SQL的测试覆盖数据;以及S6:展示所述基于SQL的测试覆盖数据。
根据本发明实施例的基于SQL覆盖的数据库应用软件自动化测试方法,可自动截获被测软件的数据库访问执行信息,全面分析多种SQL覆盖测试信息和数据库模式,准确获取和展示基于SQL的测试覆盖数据,为数据库应用软件测试的SQL覆盖程度的度量,给出直观的量化结果。该方法可使测试人员在测试数据库应用软件的过程中,根据SQL语句覆盖测试信息,准确了解被测软件与数据库管理系统交互行为的测试充分程度,有的放矢地补充测试用例,提高测试充分性和有效性。另外,与其他覆盖测试方法实现不同,本发明的方法无需在被测软件源代码中插桩,便可以获得SOL语句的覆盖信息,具有代码膨胀率为零的特点,使得在实现SQL覆盖测试的同时,不影响被测软件的执行特性。
另外,根据本发明上述实施例的基于SQL覆盖的数据库应用软件自动化测试方法还可以具有如下附加的技术特征:
在一些示例中,所述步骤S2进一步包括:加载数据库访问特征的语法规则并通过语法规则形成规则正则表达式;加载被测软件源代码,并使用所述规则正则表达式定位、匹配以及识别符合数据库访问规则的源代码;对所述符合数据库访问规则的源代码中的数据库访问信息进行分类存储。
在一些示例中,所述步骤S3进一步包括:加载所述被测软件源代码中的多个类;解析所述多个类,获取类中包含的源代码信息;对类中的全局变量、方法、注释进行分析,获取并存储与数据库访问相关的信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于胡兢玉,未经胡兢玉许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510111313.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:螺杆泵抽油作业系统
- 下一篇:采油机构及具有其的采油系统