[发明专利]用于软件测试的计算设备、方法以及介质有效
申请号: | 201680012301.3 | 申请日: | 2016-02-25 |
公开(公告)号: | CN107278297B | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | P·R·兰茨;T·维尔哈姆;K·因施特鲁门托维;K·库马尔 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G11C29/10 |
代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 刘瑜;王英 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 软件 测试 计算 设备 方法 以及 介质 | ||
1.一种用于软件测试的计算设备,所述计算设备包括:
捕获模块,所述捕获模块用于:(i)使用所述计算设备的平台模拟器来从代码模块中的测试位置到所述代码模块中的第二位置执行所述代码模块,并且(ii)在执行所述代码模块期间追踪由所述平台模拟器模拟的模拟计算设备的持续存储器状态,以生成指示所述持续存储器状态的追踪数据;以及
重放模块,所述重放模块用于(i)基于所述追踪数据来生成持续存储器写入的排列,其中,所述持续存储器写入的排列具有所述模拟计算设备的硬件规范所允许的排序,(ii)重放所述持续存储器写入的排列,(iii)响应于重放所述持续存储器写入的排列而模拟电源故障以生成所述模拟计算设备的修改的系统状态,以及(iv)响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的测试功能以使用所述修改的系统状态执行对所述持续存储器状态的一致性检查,
其中,所述重放模块还用于:
基于阈值,确定持续存储器写入的充分排列是否已经响应于所述测试功能的调用而被测试,所述阈值为是否已经发现所述代码模块中的所有错误的可能性,所述可能性由所述计算设备统计地确定,所述计算设备基于在进行统计地确定的点处测试的持续存储器写入的可能排列的比例来进行统计地确定;以及
响应于确定持续存储器写入的充分排列尚未被测试而基于所述追踪数据来生成持续存储器写入的第二排列,其中,所述持续存储器写入的第二排列具有所述模拟计算设备的所述硬件规范所允许的、并且与所述持续存储器写入的排列的排序不同的排序。
2.根据权利要求1所述的计算设备,其中,追踪所述持续存储器状态包括追踪由所述代码模块执行的持续存储器提交原语。
3.根据权利要求2所述的计算设备,其中,基于所述追踪数据来生成所述持续存储器写入的排列包括:
选择由持续存储器提交原语定界的所述追踪数据的段;以及
生成被限于所述追踪数据的所述段的持续存储器写入的排列。
4.根据权利要求1所述的计算设备,其中:
所述捕获模块还用于使用所述平台模拟器来生成针对所述代码模块中的所述测试位置的状态检查点,其中,所述状态检查点指示所述模拟计算设备的所述持续存储器状态;以及
重放所述持续存储器写入的排列包括基于所述状态检查点来重放所述持续存储器写入的排列。
5.根据权利要求4所述的计算设备,其中,重放所述持续存储器写入的排列包括根据所述持续存储器写入的排列来修改所述状态检查点。
6.根据权利要求4所述的计算设备,其中,所述重放模块还用于响应于从所述代码模块中的所述测试位置到所述代码模块中的所述第二位置对所述代码模块的执行而将所述代码模块恢复到所述状态检查点。
7.根据权利要求1所述的计算设备,其中,所述重放模块还用于:
响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的恢复功能;
其中,调用所述测试功能包括响应于所述恢复功能的调用而调用所述测试功能。
8.根据权利要求1所述的计算设备,其中,确定持续存储器写入的充分排列是否已经被测试包括:确定具有所述模拟计算设备的所述硬件规范所允许的排序的、能够由所述追踪数据定义的持续存储器写入的所有可能排列是否已经被测试。
9.根据权利要求1所述的计算设备,其中,确定持续存储器写入的充分排列是否已被测试包括:确定已经被测试的、具有所述模拟计算设备的所述硬件规范所允许的排序的、能够由所述追踪数据定义的持续存储器写入的所有可能排列的比例是否具有与预定阈值比例的预定义关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680012301.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于响应于事务执行生成跟踪数据的装置和方法
- 下一篇:缓存器维护指令