程序测试方法、装置、计算机设备和非易失性存储介质与流程

    专利查询2025-04-10  13


    本发明涉及程序测试领域,具体而言,涉及一种程序测试方法、装置、计算机设备和非易失性存储介质。


    背景技术:

    1、程序测试是软件开发过程中的一个重要环节,它主要目的是发现和验证软件中的错误(bug)、缺陷(defects)或不符合需求的地方。通过测试,可以确保软件在预期的环境和条件下能正确地运行,满足用户的需求和规格说明。

    2、但是由于每个厂家程序的设计和实现方法具有差异性,一些非标准的设计和实现方法就可能使程序存在未知的安全漏洞。由于无法看透程序实现的内部运行机制,传统的程序测试方法在进行测试时,通常需要向系统发送许多非预期的、无意义的测试样本才能偶然触发系统崩溃等问题,而且即使发现问题,也很难准确定位和分析漏洞根源。因此,传统的程序测试方法普遍存在盲目性、定位困难等问题。

    3、针对上述的问题,目前尚未提出有效的解决方案。


    技术实现思路

    1、本发明实施例提供了一种程序测试方法、装置、计算机设备和非易失性存储介质,以至少解决传统方法无法生成针对性强的测试样本导致程序测试结果盲目性强且有效性低的技术问题。

    2、根据本发明实施例的一个方面,提供了一种程序测试方法,包括:获取待测程序和第一测试样本;根据待测程序中调用的函数,在待测程序中确定检测点;基于检测点,向待测程序插入检测代码,得到修改后的待测程序;将第一测试样本输入修改后的待测程序,由检测代码输出待测程序执行时产生的数据;基于待测程序执行时产生的数据,生成第二测试样本;根据第二测试样本,对待测程序进行测试,得到测试结果。

    3、可选地,根据待测程序中调用的函数,在待测程序中确定检测点,包括:在待测程序调用的函数中,确定与预定函数匹配的函数为目标函数;确定待测程序中调用目标函数的位置为检测点。

    4、可选地,在根据待测程序中调用的函数,在待测程序中确定检测点之前,还包括:确定待测程序对应的二进制文件;根据待测程序对应的二进制文件,确定待测程序中调用的函数。

    5、可选地,基于检测点,向待测程序插入检测代码,得到修改后的待测程序,包括:在检测点所在的位置处,插入检测代码,得到修改后的待测程序。

    6、可选地,基于待测程序执行时产生的数据,生成第二测试样本,包括:基于待测程序执行时产生的数据,确定异常特征;根据异常特征,对第一测试样本进行修改,得到第二测试样本。

    7、可选地,基于待测程序执行时产生的数据,生成第二测试样本,还包括:基于待测程序执行时产生的数据,确定异常特征;生成用于对异常特征进行测试的第二测试样本。

    8、根据本发明实施例的又一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述中任意一项程序测试方法。

    9、根据本发明实施例的再一方面,还提供了一种计算机设备,计算机设备包括处理器,处理器用于运行程序,其中,程序运行时执行上述中任意一项程序测试方法。

    10、根据本发明实施例的再一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述中任意一项程序测试方法。

    11、在本发明实施例中,通过获取待测程序和第一测试样本;根据待测程序中调用的函数,在待测程序中确定检测点;基于检测点,向待测程序插入检测代码,得到修改后的待测程序;将第一测试样本输入修改后的待测程序,由检测代码输出待测程序执行时产生的数据;基于待测程序执行时产生的数据,生成第二测试样本;根据第二测试样本,对待测程序进行测试,得到测试结果,达到了根据程序测试过程中待测程序产生的较为独特的、与其他程序具有差异性的数据,而生成针对性强的测试样本的目的,从而实现了对待测程序进行较强针对性的测试的技术效果,进而解决了传统方法无法生成针对性强的测试样本导致程序测试结果盲目性强且有效性低的技术问题。



    技术特征:

    1.一种程序测试方法,其特征在于,包括:

    2.根据权利要求1所述的方法,其特征在于,所述根据所述待测程序中调用的函数,在所述待测程序中确定检测点,包括:

    3.根据权利要求2所述的方法,其特征在于,在所述根据所述待测程序中调用的函数,在所述待测程序中确定检测点之前,还包括:

    4.根据权利要求1所述的方法,其特征在于,所述基于所述检测点,向所述待测程序插入检测代码,得到修改后的待测程序,包括:

    5.根据权利要求1所述的方法,其特征在于,所述基于所述待测程序执行时产生的数据,生成第二测试样本,包括:

    6.根据权利要求1所述的方法,其特征在于,所述基于所述待测程序执行时产生的数据,生成第二测试样本,还包括:

    7.一种程序测试装置,其特征在于,包括:

    8.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至6中任意一项所述程序测试方法。

    9.一种计算机设备,其特征在于,包括:存储器和处理器,

    10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行权利要求1至6中任意一项所述程序测试方法。


    技术总结
    本发明公开了一种程序测试方法、装置和计算机设备。其中,该方法包括:获取待测程序和第一测试样本;根据待测程序中调用的函数,在待测程序中确定检测点;基于检测点,向待测程序插入检测代码,得到修改后的待测程序;将第一测试样本输入修改后的待测程序,由检测代码输出待测程序执行时产生的数据;基于待测程序执行时产生的数据,生成第二测试样本;根据第二测试样本,对待测程序进行测试,得到测试结果。本发明解决了传统方法无法生成针对性强的测试样本导致程序测试结果盲目性强且有效性低的技术问题。

    技术研发人员:周启航,李博文,王小虎,郭广鑫,金童,李香龙,王立永,赵婷婷,陈奕倩
    受保护的技术使用者:国网北京市电力公司
    技术研发日:
    技术公布日:2024/11/26
    转载请注明原文地址:https://tc.8miu.com/read-27400.html

    最新回复(0)