[发明专利]增量代码覆盖率测试方法及装置、存储介质、电子设备在审
申请号: | 202110087517.9 | 申请日: | 2021-01-22 |
公开(公告)号: | CN112799939A | 公开(公告)日: | 2021-05-14 |
发明(设计)人: | 高民;陈涛;朱浩齐 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 王辉;阚梓瑄 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 增量 代码 覆盖率 测试 方法 装置 存储 介质 电子设备 | ||
本公开提供了一种增量代码覆盖率测试方法及装置、存储介质、电子设备,涉及软件测试技术领域。该方法包括:解析项目的源代码,得到源代码中所包括的每个原始对象在源代码中的起止位置,并根据源代码的修改行号以及起止位置,获取源代码中被修改的目标对象;从与项目对应的倒排索引库中,获取与目标对象关联的目标类,并提取与目标类对应的增量单元测试用例;执行增量单元测试用例,得到每个目标对象在增量单元测试用例中的所覆盖的代码行数;根据目标对象的数量、每个目标对象所包括的代码行数以及每个目标对象在增量单元测试用例中所覆盖的代码行数,对项目在对象层级上的增量覆盖率进行测试。本公开提高了增量覆盖率的测试效率。
技术领域
本发明的实施方式涉及软件测试领域,更具体地,本发明的实施方式涉及一种增量代码覆盖率测试方法、增量代码覆盖率测试装置、计算机可读存储介质以及电子设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
增量代码覆盖率的测试,是指在代码发生变更的时候,执行增量代码覆盖率的统计任务。
具体来说,可以通过如下方式实现:可以在检测到代码变更后,执行全量单元测试用例;同时,由于单元测试用例的对象往往是单个方案,因此可以用覆盖到的方法个数除以总的方法个数,得到全量代码覆盖率报告,进而从全量代码覆盖率报告中得到增量代码的覆盖率。
但是,当代码数量较多时,执行全量单元测试用例耗时较长,会导致增量代码覆盖率测试效率较低。
发明内容
但是,在一些技术中,一方面,由于需要执行全量单元测试用例,会使得测试用例的执行效率较低,进而导致增量代码覆盖率测试效率较低;另一方面,随着开发运维技术的提升,软件开发的发布频率较高,执行全量单元测试用例进而得到增量代码的覆盖率无法适用于软件高频率发布的场景;再一方面,通过从全量代码覆盖率报告中得到增量代码的覆盖率,实现的是行级代码的增量覆盖率,无法实现方法级的增量覆盖率。
因此在相关技术中,不能获取与被修改的目标对象关联的目标类,提取与目标类对应的增量单元测试用例并执行增量单元测试用例得到每个目标对象在所述增量单元测试用例中的所覆盖的代码行数,进而根据每个目标对象在增量单元测试用例中所覆盖的代码行数,对项目在对象层级上的增量覆盖率进行测试,这是非常令人烦恼的过程。
为此,非常需要一种改进的增量代码覆盖率测试方法、增量代码覆盖率测试装置、计算机可读存储介质以及电子设备,以使得可以直接在获取到源代码中被修改的目标对象时,从与项目对应的倒排索引库中,获取与目标对象关联的目标类,并提取与目标类对应的增量单元测试用例;执行增量单元测试用例,得到每个目标对象在增量单元测试用例中的所覆盖的代码行数;根据目标对象的数量、每个目标对象所包括的代码行数以及每个目标对象在增量单元测试用例中所覆盖的代码行数,对项目在对象层级上的增量覆盖率进行测试,避免了由于需要对全量单元测试用例进行全部执行进而使得测试用例的执行效率较低的问题,提高了增量单元测试用例的执行效率,进而提高了增量代码覆盖率的测试效率。
在本上下文中,本发明的实施方式期望提供一种增量代码覆盖率测试方法、增量代码覆盖率测试装置、计算机可读存储介质以及电子设备。
根据本公开的一个方面,提供一种增量代码覆盖率测试方法,包括:
解析项目的源代码,得到所述源代码中所包括的每个原始对象在所述源代码中的起止位置,并根据所述源代码的修改行号以及所述起止位置,获取所述源代码中被修改的目标对象;其中,所述原始对象以及所述目标对象包括函数或者Java方法;
从与所述项目对应的倒排索引库中,获取与所述目标对象关联的目标类,并提取与所述目标类对应的增量单元测试用例;
执行所述增量单元测试用例,得到每个目标对象在所述增量单元测试用例中的所覆盖的代码行数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110087517.9/2.html,转载请声明来源钻瓜专利网。