【技术实现步骤摘要】
测试函数输出数据溢出的方法、终端设备及存储介质
本专利技术属于程序测试
,尤其涉及一种测试函数输出数据溢出的方法、终端设备及存储介质。
技术介绍
在各种计算机软件的开发过程中,内存溢出是较容易发生的一种问题,函数输出数据溢出是内存溢出的主要形式之一。内存溢出最常见表现形式是死机,包括程序陷入死循环、数据冒犯异常死机、预取值异常死机等。内存溢出还有其他的表现形式,例如变量偶尔或始终被改写、读取到的数据偶尔或始终不正确。常规的内存溢出测试主要通过观察函数被调用后,系统有无异常(例如,数据访问异常、取指异常)来间接和被动地进行溢出测试。由于内存溢出发生后,有时系统并无明显的异常表现,使得这类内存溢出测试方法并不可靠。还有的方法是依靠内存溢出检测工具,对程序源码进行扫描和检测。这种方法也存在一定局限性,它对动态运行状态下发生的内存溢出缺陷不容易检测出来。
技术实现思路
有鉴于此,本专利技术实施例提供了一种测试函数输出数据溢出的方法、终端设备及存储介质,以解决现有技术对函数输出数据溢出测试存在的测试可靠性较低的问题。根据第一方面,本专利技术实施例提供了一种测试函数输出数据溢出的方法,包括:随机生成第一对比数据和第二对比数据;将所述第一对比数据写入预设的第一对比内存空间,将所述第二对比数据写入预设的第二对比内存空间;所述第一对比内存空间和所述第二对比内存空间分别与预设的目标内存空间相邻,所述目标内存空间用于存储目标函数的一个输出数据;调用并执行所述目标函数;读取所述第一对比内存空间中的第一测试数据和所述第二对比内存空间中的第二测试数据;当所述第一测试数据与所述第一对 ...
【技术保护点】
1.一种测试函数输出数据溢出的方法,其特征在于,包括:随机生成第一对比数据和第二对比数据;将所述第一对比数据写入预设的第一对比内存空间,将所述第二对比数据写入预设的第二对比内存空间;所述第一对比内存空间和所述第二对比内存空间分别与预设的目标内存空间相邻,所述目标内存空间用于存储目标函数的一个输出数据;调用并执行所述目标函数;读取所述第一对比内存空间中的第一测试数据和所述第二对比内存空间中的第二测试数据;当所述第一测试数据与所述第一对比数据不相同,和/或所述第二测试数据与所述第二对比数据不相同时,确定所述目标函数存在输出数据溢出。
【技术特征摘要】
1.一种测试函数输出数据溢出的方法,其特征在于,包括:随机生成第一对比数据和第二对比数据;将所述第一对比数据写入预设的第一对比内存空间,将所述第二对比数据写入预设的第二对比内存空间;所述第一对比内存空间和所述第二对比内存空间分别与预设的目标内存空间相邻,所述目标内存空间用于存储目标函数的一个输出数据;调用并执行所述目标函数;读取所述第一对比内存空间中的第一测试数据和所述第二对比内存空间中的第二测试数据;当所述第一测试数据与所述第一对比数据不相同,和/或所述第二测试数据与所述第二对比数据不相同时,确定所述目标函数存在输出数据溢出。2.如权利要求1所述的测试函数输出数据溢出的方法,其特征在于,所述函数输出数据溢出测试方法还包括:当所述第一测试数据与所述第一对比数据相同,且所述第二测试数据与所述第二对比数据也相同时,获取测试计数;当所述测试计数达到预设的计数阈值时,确定所述目标函数不存在输出数据溢出。3.如权利要求2所述的测试函数输出数据溢出的方法,其特征在于,所述函数输出数据溢出测试方法还包括:当所述测试计数未达到预设的计数阈值时,重复执行所述随机生成第一对比数据和第二对比数据;将所述第一对比数据写入预设的第一对比内存空间,将所述第二对比数据写入预设的第二对比内存空间;所述第一对比内存空间和所述第二对比内存空间分别与预设的目标内存空间相邻,所述目标内存空间用于存储目标函数的一个输出数据;调用并执行所述目标函数;读取所述第一对比内存空间中的第一测试数据和所述第二对比内存空间中的第二测试数据的步骤,直至所述第一测试数据与所述第一对比数据不相同,和/或所述第二测试数据与所述第二对比数据不相同时,确定所述目标函数存在输出数据溢出;或者,直至所述测试计数达到预设的计数阈值时,确定所述目标函数不存在输出数据溢出。4.一种测试函数多个输出数据溢出的方法,其特征在于,包括:根据权利要求1至3中任一项所述的测试函数输出数据溢出的方法,分别对目标函数的各个输出数据进行溢出测试;当所述目标函数的任一输出数据存在溢出时,确定所述目标函数存在输出数据溢出。5.如权利要求4所述的测试函数多个输出数据溢出的方法,其特征在于,所述测试函数多个输出数据溢出的方法还包括:当所述目标函数的各个输出数据均不存在溢出时,确定所述目标函数不存在输出数据溢出。6.一种并行测试函数多个输出数据溢出的方法,其特征在于,包括:分别为目标函数的各个输出数据随机生成一对对比数据;每对所述对比数据均包括第一对比数据和第二对比数据;将所述对比数据分别写入对应的对比内存空间;每个所述对比内存空间包括用于存储所述第一对比数据的第一对比内存空间,以及用于存储所述第二对比数据的第二对比内存空间;所述第一对比内存空间和所述第二对比内存空间分别与用于存储对应的所述输出数据的内存空间相邻;调用并执行所述目标函数;读取各个所述第一对比内存空间中的第一测试数据,以及各个所述第二对比内存空间中的第二测试数据;当任一所述第一测试数据与对应的所述第一对比数据不相同,和/或任一所述第二测试数据与对应的所述第二对比数据不相同时,确定所述目标函数存在输出数据溢出。7.如权利要求6所述的并行测试函数多个输出数据溢出的方法,其特征在于,所述并行测试函数多个输出数据溢出的方法还包括:当任一所述第一测试数据与对应的所述第一对比数据相同,且任一所述第二测试数据与对应的所述第二对比数据也相同时,获取测试计数;当所述测试计数达到预设的计数阈值时,确定所述目标函数不存在输出数据溢出。8.如权利要求7所述的并行测试函数多个输出数据溢出的方法,其特征在于,所述并行测试函数多个输出数据溢出的方法还包括:当...
【专利技术属性】
技术研发人员:董时舫,
申请(专利权)人:百富计算机技术深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。