一种存储器的测试方法和装置与流程

文档序号:14610806发布日期:2018-06-05 20:48阅读:162来源:国知局
一种存储器的测试方法和装置与流程

本发明实施例涉及数字测试领域,尤其涉及一种存储器的测试方法和装置。



背景技术:

存储器的主要功能是存储程序和各种数据,并能在计算机的运行过程中高速、自动地完成程序或数据的存取。在存储器的使用之前,需要对其进行功能测试。现有技术中对存储器的测试通常是开发人员确定好了测试序列中各操作指令类型和测试顺序,对存储器中特定长度的程序和数据、特定的访问区域进行测试。

在测试过程中,待检测程序数据庞大,出现的问题也是随机的。在有效性的验证过程中,特定的测试命令,包括特定的读写长度、特定的操作地址、特定的访问区域等,会导致测试过程比较单一,不能实现全面的测试。当测试中出现问题时,需要复现测试命令对修复后的程序进行测试,现有技术中只能通过特定的测试序列中的操作指令去测试,造成了测试的不全面和操作过程的繁琐。



技术实现要素:

有鉴于此,本发明提出一种存储器的测试方法和装置,实现了对存储器程序和/或数据的随机测试,保证了测试的全面性,提高了测试的准确性和效率。

第一方面,本发明实施例提供了一种存储器的测试方法,该方法包括:

根据预设的伪随机函数获取至少一条操作指令,分别对所述操作指令顺序编号,并将所述操作指令按所述编号顺序排列,构成测试序列;

根据所述编号顺序执行所述测试序列中的操作指令,对存储器进行测试;

如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试。

进一步的,根据预设的伪随机函数获取至少一条操作指令包括:

调节伪随机函数的输入参数,获得与所述输入参数一一对应的随机数,其中,所述输入参数的取值和所述随机数分别至少为一个;

根据所述至少一个随机数和存储器特性参数获得测试条件,所述随机数和所述测试条件一一对应,将所述测试条件进行组合形成操作指令。

进一步的,所述存储器特性参数包括下述至少一项:

预设命令中每条命令的编号及所述命令的总数、待测试存储器的最大读写地址、待测试存储器的最大操作地址;

所述测试条件包括下述至少一项:

对应所述待测试存储器的命令、待测试存储器的长度、待测试存储器操作地址。

进一步的,将所述测试条件进行组合形成操作指令包括:

将所述随机数除以所述命令总数,得到的余数作为当前操作对应的待测试存储器的命令编号,根据所述编号确定当前操作对应的命令;和/或

将所述随机数除以所述待测试存储器的最大读写地址,得到的余数加一作为当前操作对应的待测试存储器的长度;和/或

获取所述待测试存储器的最大操作地址减去所述待测试存储器的长度的差值,将所述随机数除以所述差值,所得结果作为当前操作对应的待测试存储器的操作地址。

进一步的,如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试包括:

获取出错点对应的操作指令及所述出错点对应的操作指令在所述测试序列中的编号;

如果所述测试序列的长度大于第一阈值,则以所述出错点对应的操作指令编号为节点,从所述节点前第二阈值条数的操作指令对修复后的存储器开始重新测试,直到所述节点后第三阈值条数的操作指令测试结束,其中所述测试序列的长度为所述操作指令编号的最大值。

进一步的,该方法还包括:

如果测试次数达到预设的测试次数,和/或测试时间达到预设的测试时间,停止测试。

第二方面,本发明实施例提供了一种存储器的测试装置,该装置包括:

获取模块,用于根据预设的伪随机函数获取至少一条操作指令,分别对所述操作指令顺序编号,并将所述操作指令按所述编号顺序排列,构成测试序列;

测试模块,用于根据所述编号顺序执行所述测试序列中的操作指令,对存储器进行测试;

处理模块,用于如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试。

进一步的,所述获取模块包括:

随机数获取单元,用于调节伪随机函数的输入参数,获得与所述输入参数一一对应的随机数,其中,所述输入参数的取值和所述随机数分别至少为一个;

操作指令形成单元,用于根据所述至少一个随机数和存储器特性参数获得测试条件,所述随机数和所述测试条件一一对应,将所述测试条件进行组合形成操作指令。

进一步的,所述存储器特性参数包括下述至少一项:

预设命令中每条命令的编号及所述命令的总数、待测试存储器的最大读写地址、待测试存储器的最大操作地址;

所述测试条件包括下述至少一项:

对应所述待测试存储器的命令、待测试存储器的长度、待测试存储器操作地址。

进一步的,所述操作指令形成单元具体用于:

将所述随机数除以所述命令总数,得到的余数作为当前操作对应的待测试存储器的命令编号,根据所述编号确定当前操作对应的命令;和/或

将所述随机数除以所述待测试存储器的最大读写地址,得到的余数加一作为当前操作对应的待测试存储器的长度;和/或

获取所述待测试存储器的最大操作地址减去所述待测试存储器的长度的差值,将所述随机数除以所述差值,所得结果作为当前操作对应的待测试存储器的操作地址。

进一步的,所述处理模块包括:

编号获取单元,用于获取出错点对应的操作指令及所述出错点对应的操作指令在所述测试序列中的编号;

操作单元,用于如果所述测试序列的长度大于第一阈值,则以所述出错点对应的操作指令编号为节点,从所述节点前第二阈值条数的操作指令对修复后的存储器开始重新测试,直到所述节点后第三阈值条数的操作指令测试结束,其中所述测试序列的长度为所述操作指令编号的最大值。

进一步的,该装置还包括:

判断模块,用于判断如果测试次数达到预设的测试次数,和/或测试时间达到预设的测试时间,停止测试。

本发明实施例通过伪随机函数获取至少一条操作指令并对其进行顺序编号构成测试序列,并应用操作指令对存储器进行测试,应用同样的测试序列对存储器出现错误并修复的情况进行重新测试。实现了对存储器程序和/或数据的随机测试,保证了测试的全面性,提高了测试的准确性和效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明实施例一中的一种存储器的测试方法的流程图;

图2是本发明实施例二中的一种存储器的测试方法的流程图;

图3是本发明实施例三中的一种存储器的测试方法的流程图;

图4是本发明实施例四中的一种存储器的测试装置的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一提供的一种存储器的测试方法的流程图。该方法适用于对存储器进行功能测试的情况,该方法可以由存储器测试装置来执行,该装置可以由软件和/或硬件的方式来实现。该方法具体包括:

S110、根据预设的伪随机函数获取至少一条操作指令,分别对所述操作指令顺序编号,并将所述操作指令按所述编号顺序排列,构成测试序列。

具体的,伪随机函数是函数的一种,一个函数是描述每个输入值对应唯一输出值的对应关系,伪随机函数用于产生伪随机数。随机函数就是产生数的函数,是Excel工作表和C语言中的重要随机函数。随机数最重要的特性是它在后面产生的那个数与前面的那个数毫无关系。真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。在实际应用中往往使用伪随机数就足够了,伪随机数看似是随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。通过伪随机函数获得至少一条操作指令,可选的,操作指令可以是包括了操作对象、操作范围、操作命令等的操作。从1开始,对操作指令进行顺序编号,编号依次为1、2、3…,将编号后的操作指令按编号顺序排列,构成测试数列,测试序列包括带编号的操作指令。

S120、根据所述编号顺序执行所述测试序列中的操作指令,对存储器进行测试。

具体的,存储器是现代信息技术中用于保存信息的记忆设备,存储器的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。根据编号顺序,从第1条操作指令开始,顺序执行测试序列中的操作指令,对存储器进行测试。可选的,操作指令实现的测试功能可以是读测试、写测试、断电测试、复位测试、省电测试和擦除测试等。

S130、如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试。

具体的,当应用测试序列中的操作指令检测到存储器出现错误时,操作人员对错误进行修复,需要验证修复后的程序是否有效,应用检测时同样的测试序列对修复后的存储器和/或数据的有效性再次进行测试,相同的测试序列保证测试流程相同。

本发明实施例中,通过伪随机函数获取至少一条操作指令并对其进行顺序编号构成测试序列,并应用操作指令对存储器进行测试,应用同样的测试序列对存储器出现错误并修复的情况进行重新测试。实现了对存储器程序和/或数据的随机测试,保证了测试的全面性,提高了测试的准确性和效率

在上述技术方案的基础上,可选的,存储器的测试方法,还包括:如果测试次数达到预设的测试次数,和/或测试时间达到预设的测试时间,停止测试。

其中,预设测试次数为N,预设测试时间为T,在对存储器的测试过程中,当测试次数达到N时和测试时间达到T两个条件中,满足二者条件中的至少一个时,满足用户对存储器性能的要求,停止测试。测试次数越多,测试时间越长,测试结果越准确。

实施例二

图2是本发明实施例二提供的一种存储器的测试方法的流程图,本实施例在上述实施例的基础上进行了优化,对“根据预设的伪随机函数获取至少一条操作指令”进行了优化,具体包括以下步骤:

S210、调节伪随机函数的输入参数,获得与所述输入参数一一对应的随机数,其中,所述输入参数的取值和所述随机数分别至少为一个。

具体的,伪随机函数的输入参数可以是两个,记为A和B,A和B分别可以取值至少为一个,产生的伪随机数为Y。其中,A用来提供种子,B用来产生随机数,种子不同,产生的随机数不同,种子相同,输入参数B不同,产生的随机数也不同。A和B分别可以取不同的值。示例性的,随机函数和参数A和B之间的对应关系如下表1所示:

表1随机函数表

S220、根据所述至少一个随机数和存储器特性参数获得测试条件,所述随机数和所述测试条件一一对应,将所述测试条件进行组合形成操作指令。

具体的,将不同的随机数分别与存储器特性参数进行组合,得到不同的测试条件,每个随机数和存储器特性参数进行运算后产生一组测试条件,每组测试条件中包括至少一个测试条件,对每组测试条件进行组合,产生与随机数分别对应的操作指令。

S230、分别对所述操作指令顺序编号,并将所述操作指令按所述编号顺序排列,构成测试序列。

S240、根据所述编号顺序执行所述测试序列中的操作指令,对存储器进行测试。

S250、如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试。

可选的,所述存储器特性参数包括下述至少一项:预设命令中每条命令的编号及所述命令的总数、待测试存储器的最大读写地址、待测试存储器的最大操作地址;所述测试条件包括下述至少一项:对应所述待测试存储器的命令、待测试存储器的长度、待测试存储器操作地址。

其中,存储器特性参数中,预设命令中的各命令可以是读保护、写保护、断电、复位、擦除和睡眠等,示例性的,从0开始,对预设命令中的命令

分别顺序进行编号,0、1、2、3、4、5,如3号命令即为复位命令,命令总数为6;待测试存储器的最大读写地址和待测试存储器的最大操作地址为存储器自身特性参数,示例性的,最大读写地址可最大操作地址分别可以用十六进制数表示,最大读写地址可以是0FD,最大操作地址可以是0FF。测试条件中,对应待测存储器的命令,该命令可以是预设命令中的一种;待测存储器的长度和待测存储器的操作地址均为对待测试存储器测试的细化条件,由随机数和存储器参数共同计算得到。

可选的,将所述测试条件进行组合形成操作指令包括:

将所述随机数除以所述命令总数,得到的余数作为当前操作对应的待测试存储器的命令编号,根据所述编号确定当前操作对应的命令;和/或

将所述随机数除以所述待测试存储器的最大读写地址,得到的余数加一作为当前操作对应的待测试存储器的长度;和/或

获取所述待测试存储器的最大操作地址减去所述待测试存储器的长度的差值,将所述随机数除以所述差值,所得结果作为当前操作对应的待测试存储器的操作地址。

其中,将随机数和命令总数进行除法操作后得到的余数为待测试存储器命令编号,示例性的,根据S210中表1所示,当随机数为3000,命令总数为6时,进行运算后余数为0,表明待测试存储器的命令编号为0,根据S250中编号和命令对应的关系可得,对应的操作命令为“读”。

将随机数和待测存储器的最大读写地址进行除法运算,示例性的,当随机数为3000,待测存储器的最大读写地址为0FD(换算成十进制数为253),进行除法运算后余数为217,加一操作后为218,218即为当前操作对应的待测试存储器的长度。

将随机数和待测存储器的最大操作地址进行除法运算,示例性的,当随机数为3000,待测存储器的最大操作地址为0FF(换算成二进制数为255),将最大操作地址255减去待测试存储器的长度218结果为37,将3000除以37得到81(换算成十六进制为051),则051即为当前操作对应的待测试存储器的操作地址。

示例性的,上述三个测试条件中的任意一个、任意两个的组合或三个均可以作为操作指令。

本发明实施例中,通过调节伪随机函数的输入参数,获得与所述输入参数一一对应的随机数,并根据所述至少一个随机数和存储器特性参数获得测试条件,将所述测试条件进行组合形成操作指令,实现了对随机的操作指令的获取。

实施例三

图3是本发明实施例三提供的一种井下控制系统的故障检测方法的流程图,本实施例在上述实施例的基础上进行了优化,对“如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试”进行了优化,具体包括以下步骤:

S310、根据预设的伪随机函数获取至少一条操作指令,分别对所述操作指令顺序编号,并将所述操作指令按所述编号顺序排列,构成测试序列。

S320、根据所述编号顺序执行所述测试序列中的操作指令,对存储器进行测试。

S330、获取出错点对应的操作指令及所述出错点对应的操作指令在所述测试序列中的编号。

S340,如果所述测试序列的长度大于第一阈值,则执行步骤S350,若否,则执行步骤S360。

具体的,设定第一阈值N1,判断测试序列的长度和N1的大小。

S350、以所述出错点对应的操作指令编号为节点,从所述节点前第二阈值条数的操作指令对修复后的存储器开始重新测试,直到所述节点后第三阈值条数的操作指令测试结束,其中所述测试序列的长度为所述操作指令编号的最大值。

具体的,当测试序列的长度大于第一阈值N1时,以出错点对应的操作指令编号为节点,示例性的,操作指令编号的最大值为500,测试序列的长度即为操作指令的编号的最大值为500。出错点对应的指令编号为125,第一阈值N1为100,第二阈值N2和第三阈值N3均为10,则从编号125的前10条操作指令开始,到编号125的后10条操作指令结束,即从操作指令115到操作指令135,对修复后存储器进行重新测试。

S360、从操作指令中最小的编号开始进行测试,直到出错点对应的操作指令编号处停止测试。

具体的,当测试序列的长度小于等于第一阈值N1时,则从第1条操作指令开始对修复后的存储器进行重新测试,直到出错点对应的操作指令编号处停止。

本发明实施例中,通过判断测试序列的长度和预设第一阈值的关系,确定对出错并修复后的存储器进行重新测试的起点和终点。实现了对存储器测试中出错修复的情况下,应用相同的测试序列进行重复测试,提高了测试的准确性。

实施例四

图4是本发明实施例四中提供的一种存储器的测试装置的结构图,具体包括:

获取模块410,用于根据预设的伪随机函数获取至少一条操作指令,分别对所述操作指令顺序编号,并将所述操作指令按所述编号顺序排列,构成测试序列;

测试模块420,用于根据所述编号顺序执行所述测试序列中的操作指令,对存储器进行测试;

处理模块430,用于如果检测到所述存储器出现错误,则利用所述测试序列对修复后的存储器进行重新测试。

进一步的,获取模块410包括:

随机数获取单元,用于调节伪随机函数的输入参数,获得与所述输入参数一一对应的随机数,其中,所述输入参数的取值和所述随机数分别至少为一个;

操作指令形成单元,用于根据所述至少一个随机数和存储器特性参数获得测试条件,所述随机数和所述测试条件一一对应,将所述测试条件进行组合形成操作指令。

进一步的,所述存储器特性参数包括下述至少一项:

预设命令中每条命令的编号及所述命令的总数、待测试存储器的最大读写地址、待测试存储器的最大操作地址;

所述测试条件包括下述至少一项:

对应所述待测试存储器的命令、待测试存储器的长度、待测试存储器操作地址。

进一步的,所述操作指令形成单元具体用于:

将所述随机数除以所述命令总数,得到的余数作为当前操作对应的待测试存储器的命令编号,根据所述编号确定当前操作对应的命令;和/或

将所述随机数除以所述待测试存储器的最大读写地址,得到的余数加一作为当前操作对应的待测试存储器的长度;和/或

获取所述待测试存储器的最大操作地址减去所述待测试存储器的长度的差值,将所述随机数除以所述差值,所得结果作为当前操作对应的待测试存储器的操作地址;

进一步的,处理模块430包括:

编号获取单元,用于获取出错点对应的操作指令及所述出错点对应的操作指令在所述测试序列中的编号;

操作单元,用于如果所述测试序列的长度大于第一阈值,则以所述出错点对应的操作指令编号为节点,从所述节点前第二阈值条数的操作指令地修复后的存储器开始重新测试,直到所述节点后第三阈值条数的操作指令测试结束,其中所述测试序列的长度为所述操作指令编号的最大值。

进一步的,该装置还包括:

判断模块,用于判断如果测试次数达到预设的测试次数,和/或测试时间达到预设的测试时间,停止测试。

本发明实施例提供的存储器的测试装置可执行本发明任意实施例所提供的存储器的测试方法,具备执行方法相应的功能模块和有益效果。

显然,本领域技术人员应该明白,上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1