Techniques for software testing include computing devices with persistent memory, including platform simulators and applications to be tested or other code modules. The computing device uses the platform simulator to generate checkpoints for the application at the test location. The computing device uses the platform emulator to execute the application from the test position to the end position and tracks all writes to the persistent memory. The continuous memory write arrangement allowed by the hardware specification of the computing device simulated by the device generation platform simulator. The computing device replayed each permutation from the checkpoint, simulated the power failure, and then invoked the user defined test function using the platform simulator. The computing device can test the different arrangements of the memory writes until the application is confirmed by using the persistent memory. Description and requirements for the protection of other embodiments.
【技术实现步骤摘要】
【国外来华专利技术】用于在持续存储器系统中的应用验证的技术相关申请的交叉引用本申请要求2015年3月27日提交的题为“TECHNOLOGIESFORAPPLICATIONVALIDATIONINPERSISTENTMEMORYSYSTEMS”的美国实用专利申请序列号14/670,965的优先权。
技术实现思路
一些计算系统包括持续存储器,该持续存储器可以是可字节寻址的高性能的非易失性存储器。持续存储器可以提供与传统的易失性随机存取存储器(RAM)相当的性能,同时还提供数据持久性。然而,持续存储器可能对应用开发人员提出额外的挑战。具体地,应用开发人员可能必须保证在任何给定的时间,持续存储器中的数据是一致的。否则,诸如硬件故障或电源故障之类的意外的故障可能会导致数据损坏。诸如编译器和调试器之类的传统软件开发工具可以被用于校正错误,并且以另外的方式使用持续存储器来验证应用的正确性。另外,用于测试使用持续存储器的应用的基于管理程序的框架在PhilipLantz等人,Yat:AValidationFrameworkforPersistentMemorySoftware,USENIXAnnualTechnicalConferenceat433(2014)中有所描述。附图说明本文描述的概念通过示例而不通过附图中的限制的方式进行了说明。为了说明的简单和清楚,附图中例示的元件不一定按比例绘制。在适当的情况下,图中已经重复了附图标记,以指示对应或相似的元件。图1是用于具有持续存储器的应用测试的计算设备的至少一个实施例的简化框图;图2是可以由图1的计算设备建立的至少一个实施例环境的简化框图;图3是用于可 ...
【技术保护点】
一种用于软件测试的计算设备,所述计算设备包括:捕获模块,所述捕获模块用于:(i)使用所述计算设备的平台模拟器来从代码模块中的测试位置到所述代码模块中的第二位置执行所述代码模块,并且(ii)在执行所述代码模块期间追踪由所述平台模拟器模拟的模拟计算设备的持续存储器状态,以生成指示所述持续存储器状态的追踪数据;以及重放模块,所述重放模块用于(i)基于所述追踪数据来生成持续存储器写入的排列,其中,所述持续存储器写入的排列具有所述模拟计算设备的硬件规范所允许的排序,(ii)重放所述持续存储器写入的排列,(iii)响应于重放所述持续存储器写入的排列而模拟电源故障,以及(iv)响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的测试功能。
【技术特征摘要】
【国外来华专利技术】2015.03.27 US 14/670,9651.一种用于软件测试的计算设备,所述计算设备包括:捕获模块,所述捕获模块用于:(i)使用所述计算设备的平台模拟器来从代码模块中的测试位置到所述代码模块中的第二位置执行所述代码模块,并且(ii)在执行所述代码模块期间追踪由所述平台模拟器模拟的模拟计算设备的持续存储器状态,以生成指示所述持续存储器状态的追踪数据;以及重放模块,所述重放模块用于(i)基于所述追踪数据来生成持续存储器写入的排列,其中,所述持续存储器写入的排列具有所述模拟计算设备的硬件规范所允许的排序,(ii)重放所述持续存储器写入的排列,(iii)响应于重放所述持续存储器写入的排列而模拟电源故障,以及(iv)响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的测试功能。2.根据权利要求1所述的计算设备,其中,追踪所述持续存储器状态包括:追踪由所述代码模块执行的持续存储器写入;追踪由所述代码模块执行的高速缓存行冲洗;或者追踪由所述代码模块执行的存储器栅栏。3.根据权利要求1所述的计算设备,其中,追踪所述持续存储器状态包括追踪由所述代码模块执行的持续存储器提交原语。4.根据权利要求3所述的计算设备,其中,基于所述追踪数据来生成所述持续存储器写入的排列包括:选择由持续存储器提交原语定界的所述追踪数据的段;以及生成被限于所述追踪数据的所述段的持续存储器写入的排列。5.根据权利要求1所述的计算设备,其中:所述捕获模块还用于使用所述平台模拟器来生成针对所述代码模块中的所述测试位置的状态检查点,其中,所述状态检查点指示所述模拟计算设备的所述持续存储器状态;以及重放所述持续存储器写入的排列包括基于所述状态检查点来重放所述持续存储器写入的排列,其中,重放所述持续存储器写入的排列包括根据所述持续存储器写入的排列来修改所述状态检查点。6.根据权利要求5所述的计算设备,其中,所述重放模块还用于响应于从所述代码模块中的所述测试位置到所述代码模块中的所述第二位置对所述代码模块的执行而将所述代码模块恢复到所述状态检查点。7.根据权利要求1所述的计算设备,其中,基于所述追踪数据来生成所述持续存储器写入的排列包括从能够由所述追踪数据定义的持续存储器写入的所有可能排列的集合中随机选择排列。8.根据权利要求1所述的计算设备,其中,模拟所述电源故障包括在所述排列部分地完成时停止所述排列的重放。9.根据权利要求1-8中任一项所述的计算设备,其中,所述重放模块还用于:响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的恢复功能;其中,调用所述测试功能包括响应于所述恢复功能的调用而调用所述测试功能。10.根据权利要求1-8中任一项所述的计算设备,其中,所述重放模块还用于:响应于所述测试功能的调用而确定所述测试功能是否失败;以及响应于确定所述测试功能失败而报告测试失败。11.根据权利要求1-8中任一项所述的计算设备,其中,所述重放模块还用于:确定持续存储器写入的充分排列是否已经响应于所述测试功能的调用而被测试;以及响应于确定持续存储器写入的充分排列尚未被测试而基于所述追踪数据来生成持续存储器写入的第二排列,其中,所述持续存储器写入的第二排列具有所述模拟计算设备的所述硬件规范所允许的、并且与所述持续存储器写入的排列的排序不同的排序。12.根据权利要求11所述的计算设备,其中,确定持续存储器写入的充分排列是否已经被测试包括:确定具有所述模拟计算设备的所述硬件规范所允许的排序的、能够由所述追踪数据定义的持续存储器写入的所有可能排列是否已经被测试。13.根据权利要求11所述的计算...
【专利技术属性】
技术研发人员:P·R·兰茨,T·维尔哈姆,K·因施特鲁门托维,K·库马尔,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。