[发明专利]针对API接口的健壮性测试用例自动生成方法和装置在审
| 申请号: | 201310215398.6 | 申请日: | 2013-05-31 |
| 公开(公告)号: | CN103268285A | 公开(公告)日: | 2013-08-28 |
| 发明(设计)人: | 陈菊花;杨咏臻;丁世远 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 宋合成 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 针对 api 接口 健壮性 测试 自动 生成 方法 装置 | ||
技术领域
本发明涉及软件测试技术领域,特别涉及一种针对API接口的健壮性测试用例自动生成方法和装置。
背景技术
软件测试利用测试工具,按照测试方案和流程对软件产品进行功能和性能测试。软件测试使用人工或者自动手段运行或测试某个系统的过程,检验系统是否满足规定的需求。
现在的测试代码一般都是通过测试人员手工编写。虽然已经有单元测试框架类似gtest、btest,但是并没有自动产生真正的测试代码。例如gtest测试框架可以在不同平台上,如Linux、Mac OS X、Windows、Cygwin、Windows CE和Symbian上编写C++测试用例,但是只是提出了框架,还需要人工撰写测试代码。
完成测试过程需要准备测试数据、测试代码和测试环境。测试数据需要对业务有一定了解,并且需要经验累积;测试代码一般是人通过分析已有代码手工进行撰写;测试环境是在人对业务了解和代码了解的基础上搭建的。测试人员完成上述过程本质上是通过了解业务、累积经验、熟悉代码来完成的。通用性的健壮测试忽略业务之间的差异,通过经验累积和代码了解来进行健壮性测试。由于屏蔽了业务的差异,因此通用性的健壮测试有更多的规律,而现有技术严重依赖人工,浪费了人力,并且耗时长,效率低。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。
为此,本发明的一个目的在于提出一种针对API接口的健壮性测试用例自动生成方法,使用计算机代替人力,自动化的生成测试用例,节省了人力成本,提高了效率。
本发明的第二个目的在于提出一种针对API接口的健壮性测试用例自动生成装置。
为达到上述目的,本发明第一方面的实施例提出了一种针对API接口的健壮性测试用例自动生成方法,包括以下步骤:获取待测API接口的源代码;对所述源代码进行静态分析以获得静态扫描结果,并从静态扫描结果中获取所述API接口中函数的函数名、参数名、参数类型和返回值;建立基本数据集合,其中,所述基本数据集合包括多个基本数据类型和每个基本数据类型对应的相关数据;根据所述API接口中函数的参数类型和所述基本数据集合生成所述API接口的测试数据;根据所述测试数据生成所述API接口的测试用例。
根据本发明实施例的针对API接口的健壮性测试用例自动生成方法通过分析代码,自动生成函数对应的测试数据,并组合成健壮性测试用例。在单元测试中可以加快单元测试的撰写速度,也支持无人参与的健壮性测试。通过计算机自动化的方法生成健壮性测试用例,代替了人工,避免了人力学习和熟悉业务以及编码,提高了测试代码生成的效率,节省了人力成本,提高了效率。
在本发明的一个实施例中,所述根据API接口中函数的参数类型和所述基本数据集合生成所述API接口的测试数据进一步包括:
如果所述API接口中函数的参数类型为基本类型,则查询所述基本数据集合直接生成基本类型对应的数据;如果所述API接口中函数的参数类型是组合类型,则分别获得所述组合类型中的多个基本类型,并查询所述基本数据集合直接获取所述多个基本类型对应的多个数据,并对所述多个数据进行组合以生成所述组合类型对应的数据。
在本发明的一个实施例中,所述API接口的测试用例包括数据赋值代码和函数调用代码。
在本发明的一个实施例中,所述函数调用代码根据所述函数名和参数名按照函数的调用格式组装获得。
在本发明的一个实施例中,所述数据赋值代码通过所述函数的参数类型和所述测试数据获得。
本发明第二方面的实施例提出了一种针对API接口的健壮性测试用例自动生成装置,包括源代码获取模块、静态分析模块、基本数据集合建立模块、测试数据生成模块和测试用例生成模块。
源代码获取模块用于获取待测API接口的源代码;静态分析模块用于对所述源代码进行静态分析以获得静态扫描结果,并从静态扫描结果中获取所述API接口中函数的函数名、参数名、参数类型和返回值;基本数据集合建立模块用于建立基本数据集合,其中,所述基本数据集合包括多个基本数据类型和每个基本数据类型对应的相关数据;用于根据所述API接口中函数的参数类型和所述基本数据集合生成所述API接口的测试数据;用于根据所述测试数据生成所述API接口的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310215398.6/2.html,转载请声明来源钻瓜专利网。





