具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了更方便的介绍本发明实施例,在此首先对现有技术中eMMC测试过程中用到的eMMC测试系统进行介绍,参照图1,图1为现有技术中eMMC测试系统的结构框图。如图1所示,eMMC测试系统包括软件平台101和设备102,软件平台101主要实现与设备102的交互和人机的交互,设备102主要实现与eMMC的交互。其中,软件平台101可以包括计算机和部署于该计算机中的测设软件,软件平台101可以接收用户通过测试软件输入的数据和操作指令,并且可以接收设备102发送的相关数据,对设备102发送的相关数据进行处理。设备102上可以设置测试插座,eMMC可以通过测试插座安装在设备102上,eMMC通过测试插座与设备102实现交互。设备102可以通过USB(Universal Serial Bus,通用串行总线)与软件平台101通信连接,用于接收软件平台101发送的测试指令,根据相应的测试指令对设备102上安装的eMMC进行相关测试。
结合图1,对现有技术中eMMC的测试方法进行介绍。现有技术中为了保障eMMC的性能,需要对eMMC的读写、保护、分区和上下电等多项性能进行测试。针对eMMC的测试,人为控制测试系统进行测试时,效率低,易出错。而通过集中式的实验室进行测试时,当需要对eMMC进行多项性能测试时,完成一项性能测试后,需要将eMMC从设备102取下,并将eMMC安装到开卡工具上(开卡工具是将固件程序写入eMMC的工具),通过开卡工具重新向eMMC写入固件程序,写入固件程序后再将eMMC从开卡工具上取下并安装到设备102进行测试。因此,当需要进行多项性能测试时,需要频繁的将eMMC从设备102上取下,安装到开卡工具重新写入固件程序,再将重新写入固件程序的eMMC安装到设备102上进行测试,导致测试效率较低,难以满足测试需求。其中,固件程序(Firmware)是存储在电子设备的EPROM(ErasableProgrammable Read Only Memory,可擦写可编程只读存储器)或EEPROM(ElectricallyErasable Programmable read only memory,电可擦可编程只读存储器)中的程序,是用于控制电子设备运行的程序代码。
为了解决上述技术问题,本发明实施例提供一种eMMC测试方法。参照图2,图2为本发明实施例所提供的一种eMMC测试方法流程图,本实施提供的方法适用于eMMC测试,以提高eMMC的测试效率。本实施例提供的eMMC测试方法可以由eMMC测试装置执行,eMMC测试装置通常以软件和/或硬件的方式实现,eMMC测试装置可以部署于平板电脑、计算机等电子设备。本实施例中eMMC测试方法,可以包括:
步骤201、向eMMC所属的设备发送开始测试指令,以使该设备根据开始测试指令向eMMC写入固件程序。
其中,该设备用于安装待测试的eMMC,与待测试的eMMC进行交互。该设备与软件平台通信连接,用于接收软件平台发送的测试指令,通过执行软件平台发送的测试指令对eMMC进行测试。
本公开实施例中,固件程序可以是用户预先存储在设备中的固件程序,也可以是开始测试前由用户通过软件平台发送至设备的固件程序。
示例的,用户可以手动操作软件平台,通过软件平台的用户界面输入控制指令。用户可以通过软件平台输入启动测试指令开始对eMMC进行测试。用户通过软件平台输入启动测试指令后,软件平台向设备发送开始测试指令,设备将其存储的固件程序写入eMMC中。
步骤202、确定固件程序是否完全写入eMMC。
本公开实施例中,设备向eMMC写入固件程序后,设备可以接收eMMC发送的固件程序写入完成的反馈信息。设备将eMMC发送的固件程序写入完成的反馈信息发送至软件平台,软件平台在接收到固件程序写入完成的反馈信息后确定固件程序完全写入eMMC中,可以开始执行第一测试用例。
步骤203、若确定固件程序完全写入eMMC,则执行第一测试用例,以对eMMC进行测试。
其中,第一测试用例可以是针对某一个具体的测试项目编写的一组测试指令(也即第一测试用例可以包括多条测试指令),用于测试eMMC的某一性能。例如,在测试eMMC的读写功能时,可以编写第一测试指令,用于指示设备向eMMC写入一个数据块(数据块指一定量的数据,例如4字节的数据或8字节的数据等),编写第二测试指令,用于指示设备从eMMC读取一个数据块,通过第一测试指令和第二测试指令测试eMMC的读写功能是否正常。
本公开实施例中,当设备接收到软件平台下发的测试指令后,根据测试指令与eMMC进行交互,实现对eMMC的测试,并根据交互结果判断eMMC的相关性能。例如,在执行用于测试eMMC读写功能的第一测试用例时,软件平台将第一测试用例中的第一测试指令发送至设备,若第一测试指令指示设备向eMMC写入数据,则该设备根据第一测试指令与eMMC进行通信,并向eMMC发送第一数据块,eMMC接收到第一数据块后将第一数据块写入eMMC。第一数据块写入完成后,eMMC可以发送第一数据块写入完成的反馈信息至该设备,该设备可以将第一数据块写入完成的反馈信息发送至软件平台,软件平台接收到第一数据块写入完成的反馈信息后,可以发送第二测试指令至该设备。同理,设备接收到第二测试指令后,若第二测试指令指示设备读取eMMC的数据,设备与eMMC进行通信,接收eMMC发送的第二数据块。第二数据块发送完成后,eMMC可以发送第二数据块读取完成的反馈信息至设备,设备可以将第二数据块读取完成的反馈信息发送至软件平台。软件平台接收到设备发送的第一数据块写入完成的反馈信息和第二数据块读取完成的反馈信息后可以确定eMMC的读写功能正常。同理,在第一数据块写入失败后,eMMC通过设备发送第一数据块写入失败的反馈信息至软件平台,软件平台接收到设备发送的第一数据块写入失败的反馈信息后可以确定eMMC的写功能异常,可能存在问题。在第二数据块读取失败后,eMMC通过设备发送第二数据块读取失败的反馈信息至软件平台,软件平台接收到设备发送的第二数据块读取失败的反馈信息后可以确定eMMC的读功能异常,可能存在问题。
需要说明的是,实际使用中,第一测试用例中的测试指令可以根据测试需求进行编写,第一测试用例中可以包括多条种类不同的测试指令,本实施例中对第一测试用例中测试指令的数量和种类不做限制。
本实施例所提供的eMMC的测试方法,向eMMC所属的设备发送开始测试指令,以使该设备根据开始测试指令向eMMC写入固件程序,确定固件程序完全写入eMMC后可以直接执行第一测试用例对eMMC进行测试,在测试过程中可以在执行每个测试用例前直接向eMMC写入固件程序,避免了将eMMC从设备上取下后安装到开卡工具中重新写入固件程序的过程,在进行多项测试时,可以避免频繁的取下和安装eMMC,提高了测试效率。
图3为本发明实施例所提供的另一种eMMC测试方法流程图;参照图3,本实施提供的方法适用于eMMC测试,以提高eMMC的测试效率。本实施例提供的eMMC测试方法可以由eMMC测试装置执行,eMMC测试装置通常以软件和/或硬件的方式实现,eMMC测试装置可以部署于平板电脑、计算机等电子设备。本实施例中eMMC测试方法,可以包括:
步骤301、接收用户输入的至少一个测试用例,保存该至少一个测试用例。
本实施例中,该测试用例可以是用户根据需求自行设置的至少一个测试用例,也可以是用户在软件平台中选择的至少一个测试用例。其中,软件平台中可以预先存储多个测试用例,用户在测试前可以选择软件平台中存储的部分或全部测试用例用于测试。
例如,用户需要对eMMC进行读写测试、写保护测试、分区测试和上下电测试,此时用户可以分别设置读写测试用例、写保护测试用例、分区测试用例和上下电测试用例。上述测试用例也可以是预先存储在软件平台中的测试用例,此时用户只需从软件平台中选择需要使用的测试用例即可。
步骤302、向eMMC所属的设备发送开始测试指令,以使设备根据开始测试指令向eMMC写入固件程序。
本步骤与步骤201相同,在此不做赘述。
步骤303、确定固件程序是否完全写入eMMC。
本步骤与步骤202相同,在此不做赘述。
步骤304、若确定固件程序完全写入eMMC,则执行第一测试用例,以对eMMC进行测试。
其中,该第一测试用例可以是多个测试用例中的一个。当测试用例为多个时,测试过程中,多个测试用例的执行顺序可以由用户设置。例如,结合步骤301对步骤304进行介绍,用户可以设置测试用例的执行顺序为:读写测试、写保护测试、分区测试、上下电测试。此时,第一测试用例为读写测试用例,第二测试用例为写保护测试用例,第三测试用例为分区测试用例,第四测试用例为上下电测试用例。在测试过程中,软件平台可以按测试用例的执行顺序依次执行多个测试用例,
执行第一测试用例的过程与步骤203相同,在此不做赘述。
需要说明的是,在测试过程中,用户可以不设置测试用例的执行顺序。软件平台在接收到用户设置或选择的多个测试用例时,随机的执行完用户设置或选择的多个测试用例即可。
步骤305、确定执行第一测试用例时是否产生中断。
本公开实施例中,在执行第一测试用例时,设备根据测试用例中包括的测试指令与eMMC进行交互,对eMMC进行测试时,可以判断测试指令的执行结果,当执行结果提示错误时,第一测试用例执行中断,软件平台停止执行第一测试用例。
例如,结合步骤203中的举例对步骤305进行介绍,在执行用于测试eMMC读写功能的第一测试用例时,软件平台将第一测试用例中的第一测试指令发送至设备,设备接收到第一测试指令后,与eMMC进行通信,设备向eMMC写入第一数据块,当第一数据块写入错误时(例如eMMC并未接收到第一数据块),eMMC将第一数据块写入错误的反馈信息发送至设备,此时设备停止执行第一测试指令。设备将第一数据块写入错误的反馈信息发送至软件平台,软件平台停止执行第一测试用例,测试中断。
若第一测试用例执行中断则执行步骤306,否则执行步骤307。
步骤306、控制每次执行第一测试用例中包括的测试指令中的一个测试指令。
其中,当第一测试用例执行中断时,表示软件平台在执行第一测试用例时发生错误。例如,结合步骤305中的举例对步骤306进行介绍,在测试eMMC的读写功能时,当第一测试用例中断时,停止执行第一测试用例。此时,软件平台可以显示第一测试用例执行中断的信息,通知用户第一测试用例执行中断。此时,用户可以通过软件平台手动控制第一次测试用例的执行,通过软件平台控制每次向设备发送第一测试用例中的一条测试指令,进行单步调试。例如,用户第一次手动点击软件平台中的发送按钮时,控制软件平台向设备发送第一测试指令,设备执行第一测试指令,判断第一测试指令的执行结果,若执行第一测试指令时发生错误,产生中断,则可以确定在第一测试用例中执行第一测试指令时发生错误,此时可以确定eMMC的写数据功能可能存在问题。同理,第二次手动点击软件平台中的发送按钮时,向设备发送第二测试指令,判断第二测试指令的执行结果,若执行第二测试指令时发生错误,产生中断,则可以确定在第一测试用例中执行第二测试指令时发生错误,此时可以确定eMMC的读数据功能可能存在问题。通过单步发送测试指令,并判断每条测试指令的执行结果,可以确定执行第一测试用例时,是在执行哪条测试指令时发生错误,产生中断,准确的确定eMMC可能存在的问题。
可选的,当执行第一测试用例产生中断后,在控制每次执行第一测试用例中包括的测试指令中的一个测试指令之前,可以重新向eMMC中写入固件程序。执行单步调试之前重新向eMMC中写入固件程序,可以避免自动执行第一测试用例时改变eMMC的参数,对单步调试的结果产生影响。
步骤307、当第一测试用例执行完成后,控制设备向eMMC中重新写入固件程序。
本实施例中,当第一测试指令执行完成后,软件平台接收到设备发送的第一测试指令的最后一条测试指令执行完成的反馈信息后,指示设备向eMMC中重新写入固件程序。例如,结合步骤203,当软件平台接收到设备发送的第二数据块读取完成的反馈信息后,确定第一测试用例中的第二测试指令(即第一测试用例中的最后一条测试指令)执行完成,此时软件平台指示设备向eMMC中重新写入固件程序。其中向eMMC中重新写入固件程序的过程与步骤201中向eMMC写入固件程序的过程相同,在此不做赘述。
步骤308、若确定固件程序完全写入eMMC,则执行第二测试用例,以对eMMC进行测试。
本实施例中,固件程序重新写入eMMC后执行第二测试用例的过程与步骤304中确定固件程序完全写入eMMC后执行第一测试用例的过程相同,在此不做赘述。需要说明的是,第二测试用例是与第一测试用例不同的测试用例。
步骤309、确定执行第二测试用例时是否产生中断,若第二测试用例执行中断则可以控制每次执行第二测试用例中包括的测试指令中的一个测试指令。
本实施例中,确定执行第二测试用例时是否产生中断与步骤305中确定执行第一测试用例时是否产生中断相同,在此不做赘述。
本实施例中,若第二测试用例执行中断则可以控制每次执行第二测试用例中包括的测试指令中的一个测试指令。控制每次执行第二测试用例中包括的测试指令中的一个测试指令的过程与步骤306中控制每次执行第一测试用例中包括的测试指令中的一个测试指令相同,在此不做赘述。
需要说明的是,本实施例中在执行完第二测试用例后可以顺序执行第三测试用例、第四测试用例和其他测试用例。当执行某个测试用例产生中断时,eMMC测试系统可以控制每次执行测试用例中包括的测试指令中的一个测试指令进行单步调试。当所有测试用例执行完整后,结束测试。
本实施例所提供的eMMC的测试方法,eMMC测试系统可以顺序执行用户设置或选择的多个测试用例,并且可以在执行每个测试用例前向eMMC重新写入固件程序,避免了将eMMC从设备上取下后安装到开卡工具中重新写入固件程序的过程,在进行多项测试时,可以避免频繁的取下和安装eMMC,提高了测试效率。同时在测试用例执行中断时可以控制单步执行测试用例中的测试指令,进行单步调试,方便用户发现问题。
可选的,本实施例公开的eMMC测试方法还可以包括:接收eMMC发送的反馈信息,该反馈信息为执行第一测试用例和/或第二测试用例后该eMMC生成的;
解析该反馈信息,以获得该反馈信息中的有效信息;
显示该有效信息。
本公开实施例中,在执行第一测试用例和/或第二测试用例的过程中,eMMC可以向设备发送反馈信息,设备在接收到该反馈信息后可以将该反馈信息发送至软件平台,由软件平台解析该反馈信息,解析反馈信息中的有效信息,并进行显示。例如,结合步骤203中的举例,在测试eMMC的读写功能时,设备向eMMC第一数据块后,eMMC可以将写入的第一数据块的大小和写入时间发送至设备,软件平台接收到设备转发的写入数据块的大小和写入时间后,可以根据写入数据块的大小确定写入的数据量,进一步根据写入的数据量和写入时间确定eMMC的写数据速率。同理,在执行第二测试指令时,eMMC向设备发送第二数据块后,eMMC可以将发送的第二数据块的大小和发送时间发送至设备,软件平台接收到设备转发的发送数据块的大小和发送时间时,根据发送数据块的大小确定发送的数据量,进一步根据发送的数据量和发送时间确定eMMC的读数据速率。软件平台确定eMMC的读写速率后,通过软件平台的用户界面进行显示,方便用户查看。
可选的,软件平台在解析获得有效信息后,可以将解析获得的有效信息进行统计,并将统计结果进行存储方便用户管理。例如,在执行完读写测试用例、写保护测试用例、分区测试用例和上下电测试用例后,软件平台可以将各测试用例的执行结果进行统计后,存储统计表中,方便用户查看比对。
图4为本发明实施例提供的一种eMMC测试装置的结构示意图,参见图4,图4所示的测试装置包括:发送模块401、确定模块402和第一执行模块403。
发送模块401用于向eMMC所属的设备发送开始测试指令,以使该设备根据开始测试指令向eMMC写入固件程序。
确定模块402用于确定固件程序是否完全写入eMMC。
第一执行模块403用于若确定固件程序完全写入eMMC,则执行第一测试用例,以对eMMC进行测试。
本实施例提供的eMMC测试装置,向eMMC所属的设备发送开始测试指令,以使该设备根据开始测试指令向eMMC写入固件程序,确定固件程序完全写入eMMC后可以直接执行第一测试用例对eMMC进行测试,eMMC测试系统在测试过程中可以在执行每个测试用例前直接向eMMC写入固件程序,避免了将eMMC从设备上取下后安装到开卡工具中重新写入固件程序的过程,在进行多项测试时,可以避免频繁的取下和安装eMMC,提高了测试效率。
可选的,该测试装置还包括:控制模块和第二执行模块
该控制模块用于当第一测试用例执行完成后,控制设备向eMMC中重新写入固件程序。该第二执行模块模块用于若确定固件程序完全写入eMMC,则执行第二测试用例,以对eMMC进行测试。
可选的,该第一执行模块还用于若执行所述第一测试用例时产生中断,则控制每次执行所述第一测试用例中包括的测试指令中的一个测试指令;和/或,若执行所述第二测试用例时产生中断,则控制每次执行所述第二测试用例中包括的测试指令中的一个测试指令。
可选的,该测试装置还包括:第一接收模块和保存模块。
该第一接收模块用于在向eMMC所属的设备发送开始测试指令,以使该设备根据开始测试指令向eMMC写入固件程序之前,接收用户输入的至少一个测试用例。该保存模块用于保存至少一个测试用例。
可选的,该测试装置还包括:第二接收模块、解析模块和显示模块。
该第二接收模块用于接收eMMC发送的反馈信息,该反馈信息为执行第一测试用例和/或第二测试用例后由eMMC生成的。该解析模块用于解析反馈信息,以获得反馈信息中的有效信息。该显示模块用于显示有效信息。
本实施例所提供的eMMC的测试装置,eMMC测试系统可以顺序执行用户设置或选择的多个测试用例,并且可以在执行每个测试用例前向eMMC重新写入固件程序,避免了将eMMC从设备上取下后安装到开卡工具中重新写入固件程序的过程,在进行多项测试时,可以避免频繁的取下和安装eMMC,提高了测试效率。同时在测试用例执行中断时可以控制单步执行测试用例中的测试指令,进行单步调试,方便用户发现问题。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种eMMC测试方法和装置行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。