[发明专利]代码测试方法、装置、可读存储介质及计算机设备在审
申请号: | 201710343860.9 | 申请日: | 2017-05-16 |
公开(公告)号: | CN108874656A | 公开(公告)日: | 2018-11-23 |
发明(设计)人: | 马静飞 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 姜怡;阚梓瑄 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分支代码 源代码 可读存储介质 计算机设备 测试代码 代码测试 目标代码 运行结果 分析目标 工作效率 结果报告 生成测试 输入参数 自动生成 全面性 编译 测试 覆盖 申请 保证 开发 | ||
本申请公开一种代码测试方法、装置、可读存储介质及计算机设备。该方法包括:对源代码进行编译,生成源代码的目标代码;分析目标代码,以确定出目标代码的各执行分支代码;分别对各执行分支代码执行如下操作,以对各执行分支代码进行测试:为执行分支代码的输入参数生成至少一组参数值;及分别根据每组参数值运行执行分支代码,得到执行分支代码的运行结果;以及根据各执行分支代码的运行结果,生成测试结果报告。该方法能够自动生成测试代码,保证测试代码覆盖的全面性,并提升开发人员的工作效率。
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种代码测试方法、装置、可读存储介质及计算机设备。
背景技术
目前,开发人员在完成业务功能代码的开发后,需要编写测试代码来对开发的业务功能代码进行测试。如目前基于JAVA语言的代码测试中,已经有了junit等单元测试框架,但仍需要基于该测试框架,人工编写测试代码。当业务代码的分支代码(如if、else等)较多时,需要考虑的测试用例(case)也较多,人工编写测试代码将很难考虑全面,从而导致无法保证代码测试的全面性;此外也会占用开发人员的大量时间,降低其工作效率。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种代码测试方法、装置、可读存储介质及计算机设备,能够自动生成测试代码,保证测试代码覆盖的全面性,并提升开发人员的工作效率。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提供一种代码测试方法,包括:对源代码进行编译,生成源代码的目标代码;分析目标代码,以确定出目标代码的各执行分支代码;分别对各执行分支代码执行如下操作,以对各执行分支代码进行测试:为执行分支代码的输入参数生成至少一组参数值;及分别根据每组参数值运行执行分支代码,得到执行分支代码的运行结果;以及根据各执行分支代码的运行结果,生成测试结果报告。
根据本发明的一实施方式,目标代码为可于JAVA虚拟机中运行的class文件中的字节码;分析目标代码,以确定出目标代码的各执行分支代码包括:根据字节码中分支代码的指令,确定出目标代码的各执行分支代码。
根据本发明的一实施方式,至少一组参数值包括各输入参数的边界值。
根据本发明的一实施方式,上述方法还包括:根据各执行分支代码的运行结果,判断对各执行分支代码的测试是否通过。
根据本发明的一实施方式,根据各执行分支代码的运行结果,判断对各执行分支代码的测试是否通过包括:当执行分支代码的运行结果为异常时,判断对执行分支代码的测试未通过;当输入相同的一组参数值后不同的执行分支代码的运行结果相同时,判断对不同的执行分支代码的测试均未通过;当执行分支代码的运行结果与已存储的、且参数值相同的执行分支代码的历史运行结果不同时,判断对执行分支代码的测试未通过。
根据本发明的一实施方式,测试结果报告包括判断对各执行分支代码的测试是否通过的判断结果。
根据本发明的一实施方式,上述方法还包括:获取源代码。
根据本发明的一实施方式,获取源代码包括:当检测到有新的源代码被上传至代码库中时,从代码库中获取新的源代码。
根据本发明的另一个方面,提供一种代码测试装置,包括:代码编译模块,用于对源代码进行编译,生成源代码的目标代码;代码分析模块,用于分析目标代码,以确定出目标代码的各执行分支代码;代码测试模块,用于分别对各执行分支代码执行如下操作,以对各执行分支代码进行测试:为执行分支代码的输入参数生成至少一组参数值;及分别根据每组参数值运行执行分支代码,得到执行分支代码的运行结果;以及报告生成模块,用于根据各执行分支代码的运行结果,生成测试结果报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710343860.9/2.html,转载请声明来源钻瓜专利网。