一种内嵌式存储器的模拟测试开发平台
技术领域
本发明涉及计算机领域,尤其涉及一种内嵌式存储器的模拟测试开发平台。
背景技术
内嵌式存储器(Embedded Multi Media Card,eMMC)是一种主要针对于手机或平板电脑等电子设备的内嵌式存储器。其中,内嵌式存储器中包含了NandFlash,目前,NandFlash逐渐成为嵌入式系统的主要存储介质之一,没有文件系统来管理NandFlash上的数据是不可想象的。
为了便于管理NandFlash上的数据,引入了FTL(Flash Translation Layer,文件传输层),一旦FTL出现问题,那么会使数据读写发生错误,更为严重的是内嵌式存储器无法被访问;由此可见,FTL的稳定性及效率对内嵌式存储器来说至关重要。现有技术中,对内嵌式存储器中FTL的测试,是将内嵌式存储器硬件与外界的PC进行连接,对内嵌式存储器进行测试,判断FTL的效率及稳定性,操作复杂,测试效率低。
发明内容
有鉴于此,本发明实施例提供一种内嵌式存储器的模拟测试开发平台,操作简单,提高内嵌式存储器中FTL的开发效率,提高FTL的稳定性。
本发明实施例提供了一种内嵌式存储器的模拟测试开发平台,包括:设备系统和测试系统;
所述设备系统用于模拟内嵌式存储器;
所述测试系统用于模拟外界PC,实现对设备系统的测试。
进一步的,所述设备系统包括前端硬件模拟模块、文件传输层FTL和后端硬件模拟模块;
所述前端硬件模拟模块与测试系统连接,用于对测试命令的解析以及测试命令和数据的传输;
FTL与前端硬件模拟模块连接,用于分析测试命令,并将数据进行地址映射管理,将数据存入后端硬件模拟模块;
后端硬件模拟模块与FTL连接,用于数据的存储。
进一步的,所述前端硬件模拟模块,还用于测试命令的记录。
进一步的,所述FTL,还用于错误数据的识别。
进一步的,所述前端硬件模拟模块包括前端接口处理模块,所述前端接口处理模块,用于对测试命令进行解析;
所述后端硬件模拟模块包括后端接口处理模块和NAND模拟模块;
所述后端接口处理模块,用于NAND模拟模块和FTL之间数据的传输;
NAND模拟模块,用于模拟NandFlash,并进行数据的存储。
进一步的,所述测试系统,包括:
单元测试模块,用于对设备系统进行单元测试;
压力测试模块,用于对设备系统进行压力测试;
代码覆盖率模块,用于记录测试过程中代码行覆盖率、分支覆盖率以及函数覆盖率;
系统性能模块,用于记录测试系统的性能参数信息。
进一步的,所述测试系统还包括:
日志模块,用于记录压力测试模块中的命令;
错误产生模块,用于记录设备系统中NAND模拟模块产生的错误数据;
数据检测模块,用于检测设备系统反馈回的数据;
测试框架模块,用于对单元测试模块和压力测试模块进行管理;
线程管理模块,用于实现测试系统对设备系统的管理。
进一步的,所述单元测试模块第一用例注册单元、第一用例运行单元、第一用例报告生成单元和第一用例注销单元;所述压力测试模块包括:包括第二用例注册单元、第二用例运行单元、第二用例报告生成单元和第二用例注销单元;
所述第一用例注册单元和第二用例注册单元,均用于控制设备系统上电以及获得读取目标用例的命令;
第一用例运行单元和第二用例运行单元,均用于控制设备系统运行;
第一用例报告生成单元和第二用例报告生成单元,均用于调用数据检测模块中的目标数据,将数据检测模块中的目标数据与相对应的写入用例数据比较,生成结果报告;
第一用例注销单元和第二用例注销单元,均用于设备系统下电,结束流程。
进一步的,第一用例运行单元或第二用例运行单元具体用于,向设备系统发送读取目标用例的命令;控制FTL调用NAND模拟模块中的与目标用例相对应的数据,经前端硬件模拟模块反馈给数据检测模块。
进一步的,第一用例报告生成单元或第二用例报告生成单元具体用于,将数据检测模块中的目标数据与相对应的写入用例数据比较,如果相吻合,则生成正确的结果报告;否则,生成错误的结果报告,并且给出错误提示。
本发明实施例提供的一种内嵌式存储器的模拟测试开发平台,通过设备系统和测试系统分别对内嵌式存储器和外界的PC进行模拟,实现测试系统对设备系统测试,操作简单,能够提高FTL的开发效率,提高FTL的稳定性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本实施例一提供的一种内嵌式存储器的模拟测试开发平台的结构框图;
图2为本实施例二提供的一种内嵌式存储器的模拟测试开发平台的结构框图;
图3是本实施例二提供的单元测试模块或压力测试模块进行单元测试或压力测试的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本实施例一提供的一种内嵌式存储器的模拟测试开发平台的结构框图;所述的测试开发平台通过软件的方式来实现,所述测试开发平台被设于计算机中。如图1所示,包括:设备系统110和测试系统120;
所述设备系统110用于模拟内嵌式存储器;
所述测试系统120用于模拟外界PC,实现对设备系统110的测试。
所述设备系统110包括前端硬件模拟模块111、文件传输层FTL 112和后端硬件模拟模块113;
所述前端硬件模拟模块111与测试系统120连接,用于对测试命令的解析以及测试命令和数据的传输;
其中,所述前端硬件模拟模块111,还用于测试命令的记录。
FTL 112与前端硬件模拟模块111连接,用于分析测试命令,并将数据进行地址映射管理,将数据存入后端硬件模拟模块113,其中,FTL 112还用于错误数据的识别。
后端硬件模拟模块113与FTL 112连接,用于数据的存储。
在本实施例中,所述前端硬件模拟模块111包括前端接口处理模块1111,所述前端接口处理模块1111,用于对测试命令进行解析;所述后端硬件模拟模块113包括后端接口处理模块1131和NAND模拟模块1132;所述后端接口处理模块1131,用于NAND模拟模块1132和FTL 112之间数据的传输;NAND模拟模块1132,用于模拟NandFlash,并进行数据的存储。
在本实施例中,例如,测试系统120要将数据A写入后端硬件模拟模块113中的NAND模拟模块1132内,测试系统120向设备系统110发送写入的命令以及写入的数据A,设备系统110中前端接口处理模块1111对写入的命令进行解析,并通过前端硬件模拟模块111将写入的命令和数据A进行传输,FTL 112分析命令,查询地址映射列表,将写入的命令中数据A的逻辑地址转换成后端硬件模拟模块113中NAND模拟模块1132的物理地址,并根据该物理地址将数据A存入到NAND模拟模块1132中。
对设备系统110进行读操作时,首先由测试系统120向设备系统110发送读XXX地址下的数据的操作命令,FTL 112分析读操作命令,查询地址映射表,在NAND模拟模块1132中,将与读操作中逻辑地址XXX相对应的物理地址YYY下的数据A经前端硬件模拟模块111反馈给测试系统120,如果读出来的数据A与写入的数据是相同的,则表明FTL对数据A的管理是正确的;否则FTL出现问题。通过上述测试,能够对FTL的功能进行详细的了解,有利于FTL的开发。
在上述实施例的基础上,测试系统可以向设备系统发送多条测试命令,FTL在分析测试命令时,往往会出现错误。前端硬件模拟模块能够记录测试命令,当FTL在分析具体某个或者某几个测试命令出现错误时,前端硬件模拟模块能够通过预存的测试命令,将出现错误的某个或某几个测试命令中的具体细节反馈给测试系统,这样便于对FTL进行调试。
本实施例提供了一种内嵌式存储器的模拟测试开发平台,通过设备系统和测试系统分别对内嵌式存储器和外界的PC进行模拟,实现测试系统对设备系统测试,操作简单,能够高效地对FTL进行测试,提高FTL的开发效率,提高FTL的稳定性。
实施例二
图2为本实施例二提供的一种内嵌式存储器的模拟测试开发平台的结构框图;在上述实施例的基础上,对测试系统进行了优化。如图2所示,所述测试系统包括:单元测试模块121、压力测试模块122、代码覆盖率模块123和系统性能模块124。
其中,单元测试模块121,用于对设备系统110进行单元测试;其中,单元测试模块121偏向白盒测试,使用打桩函数实现对设备系统110的测试。
压力测试模块122,用于对设备系统110进行压力测试;其中,压力测试模块122偏向于黑盒测试,可以测试设备系统110的可靠性、稳定性等。
代码覆盖率模块123,用于记录测试过程中代码行覆盖率、分支覆盖率以及函数覆盖率;
系统性能模块124,用于记录测试系统120的性能参数信息。其中,性能参数信息包括写入、放大等性能信息。
在上述实施例的基础上,所述的测试系统还包括:日志模块125,用于记录压力测试模块122中的命令;其中,在压力测试过程中,测试系统120可以向设备系统110发送多条测试命令,FTL在分析测试命令时,往往会出现错误。日志模块125能够记录测试命令,当FTL在分析具体某个或者某几个测试命令出现错误时,能够实现错误的重现。
错误产生模块126,用于记录设备系统110中NAND模拟模块1132产生的错误数据;其中,设备系统110中的NAND模拟模块1132的数据有时是不稳定的,往往会出现数据的错误。
数据检测模块127,用于检测设备系统110反馈回的数据。
测试框架模块128,对单元测试模块121和压力测试模块122进行管理;具体的,测试框架模块128分别对单元测试模块121和压力测试模块122中用例注册,用例运行,结果检测,用例销毁,用例注销等进行管理,通过测试框架模块128,能够实现单元测试模块121和压力测试模块122分别对用例进行的一系列的操作。
线程管理模块129,用于实现测试系统120对设备系统110的管理。具体的,测试系统120和设备系统110具有各自独立的运行方式,当测试系统120对设备系统110进行测试时,通过线程管理模块129实现测试系统120与设备系统110之间的通信,能够实现测试系统120对设备系统110的管理和控制,如,测试系统120如果发送写入数据A的命令,设备系统110会在相应的物理地址下写入数据A。
在上述实施例的基础上,代码覆盖率模块123、系统性能模块124、日志模块125、数据检测模块127等存储有数据的模块,可以将各自的数据共同存储到一个文件访问模块中。
其中,所述单元测试模块121包括:第一用例注册单元1211、第一用例运行单元1212、第一用例报告生成单元1213和第一用例注销单元1214;所述压力测试模块122包括:第二用例注册单元1221、第二用例运行单元1222、第二用例报告生成单元1223和第二用例注销单元1224;
其中,所述第一用例注册单元1211和第二用例注册单元1221,均用于控制设备系统110上电以及获得读取目标用例的命令。
第一用例运行单元1212和第二用例运行单元1222,均用于控制设备系统110运行。
第一用例报告生成单元1213和第二用例报告生成单元1223,均用于调用数据检测模块127中的目标数据,将数据检测模块127中的目标数据与相对应的写入用例数据比较,生成结果报告。
第一用例注销单元1214和第二用例注销单元1224,均用于设备系统110下电,结束流程。
在本实施例中,第一用例运行单元1212或第二用例运行单元1222,具体用于向设备系统110发送读取目标用例的命令,控制FTL 112调用NAND模拟模块1132中的与目标用例相对应的数据,经前端硬件模拟模块111反馈给数据检测模块127;第一用例报告生成单元1213或第二用例报告生成单元1223,具体用于将数据检测模块127中的目标数据与相对应的写入用例数据比较,如果相吻合,则生成正确的结果报告;否则,生成错误的结果报告,并且给出错误提示。
在本实施例中,当进行单元测试时,测试系统的工作过程如下:如图2和图3所示,在测试过程中的用例建立阶段,第一用例注册单元1211控制设备系统110上电并且获得读取目标用例的命令,为设备系统110建立准备环境,使得用例建立。例如,读取XXX地址下写入的数据A。
在设备建立阶段,设备系统110在用例建立中被调用,要为设备系统110进行初始化,进入命令等待状态。
在用例运行阶段,第一用例运行单元1212,控制设备系统110运行,发送在XXX地址下写入数据A的命令。
在设备运行阶段,FTL 112将数据A的逻辑地址XXX转换成物理地址YYY,并根据物理地址YYY调用NAND模拟模块1132中的数据,经前端硬件模拟模块111反馈给数据检测模块127。
在结果检测阶段,第一用例报告生成单元1213调用数据检测模块127中的数据,将数据检测模块127中的数据与写入的数据A进行比较,如果吻合,则生成正确的结果报告,否则,生成错误的结果报告,并且给出错误提示,目的是为了对设备系统进行调试。
在用例销毁阶段,第一用例注销单元1214,控制设备系统110下电,清除用例资源。
在设备销毁阶段,清除设备系统110的资源,如,清除设备系统110中NAND模拟模块1132的内存空间。
其中,压力测试的工作过程与单元测试工作过程相同,不再累述。
在上述实施例的基础上,设备系统中的NAND模拟模块的数据有时是不稳定的,往往会出现数据的错误,这种数据产生错误的机制也是不同的。因此,所述的目标用例,可以是模拟NAND模块中的错误数据产生的机制。在测试过程中,如果经FTL反馈回的结果报告中显示数据是错误的,则当NAND模拟模块中存在数据错误时,FTL能够及时发现并处理数据错误;否则,FTL出现问题。
本发明实施例二提供的一种内嵌式存储器的模拟测试开发平台,对测试系统进行了优化,实现了对设备系统中FTL的测试,操作简单,能够高效地对FTL进行测试,提高内嵌式存储器中FTL的开发效率,提高FTL的稳定性。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。