代码测试方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34605322 阅读:35 留言:0更新日期:2022-08-20 09:09
本发明专利技术实施例涉及软件测试技术领域,公开了一种代码测试方法、装置、电子设备及存储介质。代码测试方法包括:在读取到测试代码的函数替换指令时,根据所述函数替换指令,调用预设的函数替换接口,所述函数替换接口用于将待测函数编译后的二进制代码的首部分替换为替换函数的长调用二进制指令;执行替换后的所述待测函数的二进制代码,得到所述替换函数的执行结果;将所述替换函数的执行结果返回给所述待测函数。使得能够动态替换相关调用函数,虚拟出原来无法覆盖到的测试逻辑,提高了代码覆盖率。盖率。盖率。

【技术实现步骤摘要】
代码测试方法、装置、电子设备及存储介质


[0001]本专利技术实施例涉及软件测试
,特别涉及一种代码测试方法、装置、电子设备及存储介质。

技术介绍

[0002]软件测试作为软件开发过程中的一个重要环节,按测试的范围可以分为单元测试、功能测试等。在软件测试的过程中,为了提高代码覆盖率,很多高级编程语言提出了基于mock技术的测试框架,即用反射机制或者编程语言的多态机制来模拟函数的数据输入和输出,而低级编程语言由于无法支持反射机制和多态机制,因此,一般是通过在代码编译预处理阶段替换掉待测函数相关的数据输入输出函数来实现。
[0003]然而,代码编译预处理阶段的替换后,复杂函数在进行软件测试时,代码覆盖率仍然比较低。

技术实现思路

[0004]本专利技术实施例的目的在于提供一种代码测试方法、装置、电子设备及存储介质,使得能够动态替换相关调用函数,虚拟出原来无法覆盖到的测试逻辑,提高了代码覆盖率。
[0005]为达到上述目的,本专利技术的实施例提供了一种代码测试方法,包括:在读取到测试代码的函数替换指令时,根据所述本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种代码测试方法,其特征在于,包括:在读取到测试代码的函数替换指令时,根据所述函数替换指令,调用预设的函数替换接口,所述函数替换接口用于将待测函数编译后的二进制代码的首部分替换为替换函数的长调用二进制指令;执行替换后的所述待测函数的二进制代码,得到所述替换函数的执行结果;将所述替换函数的执行结果返回给所述待测函数。2.根据权利要求1所述的代码测试方法,其特征在于,所述根据所述函数替换指令,调用预设的函数替换接口,包括:根据所述函数替换指令,确定所述待测函数编译后的二进制代码的地址和所述替换函数编译后的二进制代码的地址;将所述待测函数编译后的二进制代码的地址和所述替换函数编译后的二进制代码的地址作为所述函数替换接口的输入,调用所述函数替换接口增加所述待测函数编译后的二进制代码的地址的写权限并将所述待测函数编译后的二进制代码的地址上的二进制代码中的首部分替换为包含所述替换函数编译后的二进制代码的地址的长调用二进制指令。3.根据权利要求1或2所述的代码测试方法,其特征在于,所述函数替换接口还用于为所述待测函数编译后的二进制代码的首部分绑定标识,所述根据所述函数替换指令,调用预设的函数替换接口之后,所述方法还包括:将所述待测函数编译后的二进制代码的地址、所述替换函数编译后的二进制代码的地址、所述首部分和所述标识记录在预设的存储空间中。4.根据权利要求3所述的代码测试方法,其特征在于,所述根据所述函数替换指令,调用预设的函数替换接口,包括:根据所述函数替换指令,调用所述函数替换接口,为所述待测函数分配所述标识并将所述待测函数编译后的二进制代码中的部分字节修改为所述标识。5.根据权利要求3所述的代码测试方法,其特征在于,所述执行替换后的所述待测函数的二进制代码,得到所述替换函数的执行结果,包括:读取堆栈寄存器记录的所述待测函数编译后的二进制代码的地址;根据所述待测函数编译后的二进制代码的地址,读取替换后的所述待测函数编译后的二进制代码中携带的所述标识;根据所述标识在所述存储空间中进行查询,确定所述首部分并将所述首部分写回所述待测函...

【专利技术属性】
技术研发人员:朱智佳
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1