[发明专利]测试函数输出数据溢出的方法、终端设备及存储介质有效
申请号: | 201910080047.6 | 申请日: | 2019-01-28 |
公开(公告)号: | CN109885402B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 董时舫 | 申请(专利权)人: | 百富计算机技术(深圳)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F11/36 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 李艳丽 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试 函数 输出 数据 溢出 方法 终端设备 存储 介质 | ||
本发明适用于程序测试技术领域,提供了一种测试函数输出数据溢出的方法、终端设备及存储介质,其中,上述方法包括:随机生成第一对比数据和第二对比数据;将第一对比数据写入预设的第一对比内存空间,将第二对比数据写入预设的第二对比内存空间;调用并执行目标函数;读取第一测试数据和第二测试数据;当第一测试数据与第一对比数据不相同,和/或第二测试数据与第二对比数据不相同时,确定目标函数存在输出数据溢出。本发明实施例提供的测试函数输出数据溢出的方法、终端设备及存储介质,可以实时检测无明显异常表现的内存溢出,并且可以对函数输出溢出进行动态检测,解决了现有技术中对函数输出数据溢出测试存在的测试可靠性较低的问题。
技术领域
本发明属于程序测试技术领域,尤其涉及一种测试函数输出数据溢出的方法、终端设备及存储介质。
背景技术
在各种计算机软件的开发过程中,内存溢出是较容易发生的一种问题,函数输出数据溢出是内存溢出的主要形式之一。内存溢出最常见表现形式是死机,包括程序陷入死循环、数据冒犯异常死机、预取值异常死机等。内存溢出还有其他的表现形式,例如变量偶尔或始终被改写、读取到的数据偶尔或始终不正确。
常规的内存溢出测试主要通过观察函数被调用后,系统有无异常(例如,数据访问异常、取指异常)来间接和被动地进行溢出测试。由于内存溢出发生后,有时系统并无明显的异常表现,使得这类内存溢出测试方法并不可靠。还有的方法是依靠内存溢出检测工具,对程序源码进行扫描和检测。这种方法也存在一定局限性,它对动态运行状态下发生的内存溢出缺陷不容易检测出来。
发明内容
有鉴于此,本发明实施例提供了一种测试函数输出数据溢出的方法、终端设备及存储介质,以解决现有技术对函数输出数据溢出测试存在的测试可靠性较低的问题。
根据第一方面,本发明实施例提供了一种测试函数输出数据溢出的方法,包括:随机生成第一对比数据和第二对比数据;将所述第一对比数据写入预设的第一对比内存空间,将所述第二对比数据写入预设的第二对比内存空间;所述第一对比内存空间和所述第二对比内存空间分别与预设的目标内存空间相邻,所述目标内存空间用于存储目标函数的一个输出数据;调用并执行所述目标函数;读取所述第一对比内存空间中的第一测试数据和所述第二对比内存空间中的第二测试数据;当所述第一测试数据与所述第一对比数据不相同,和/或所述第二测试数据与所述第二对比数据不相同时,确定所述目标函数存在输出数据溢出。
本发明实施例提供的测试函数输出数据溢出的方法,通过检测目标函数执行后,与其输出数据的目标内存空间相邻的两个对比内存空间中,是否出现数据篡改,实现对目标函数输出数据的溢出测试。由于函数输出数据溢出通常发生在输出变量的邻近内存区域,故通过严密地监测输出变量的前后邻近内存区域是否被改写,即可实现对输出数据溢出的检测和判定。本发明实施例提供的测试函数输出数据溢出的方法,可以实时检测出无明显异常表现的内存溢出,并且可以在程序运行的过程中对函数输出数据溢出进行动态检测,解决了现有技术中对函数输出数据溢出测试存在的测试可靠性较低的问题。
结合第一方面,在第一方面第一实施方式中,所述函数输出数据溢出测试方法还包括:当所述第一测试数据与所述第一对比数据相同,且所述第二测试数据与所述第二对比数据也相同时,获取测试计数;当所述测试计数达到预设的计数阈值时,确定所述目标函数不存在输出数据溢出。
本发明实施例提供的测试函数输出数据溢出的方法,通过统计测试计数,可以实现对函数输出数据溢出的多次测试。在本发明实施例提供的测试函数输出数据溢出的方法中,虽然在每次调用目标函数之前分别在第一对比内存空间和第二对比内存空间存储了随机数作为第一对比数据和第二对比数据,但仍存在溢出改写的内容恰好与随机数相同的情况。通过多次测试,且每次测试均更换随机数的方式,可以有效降低对函数输出数据溢出漏测的概率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百富计算机技术(深圳)有限公司,未经百富计算机技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910080047.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置