一种java卡上原子性测试方法及装置的制造方法

文档序号:10654446阅读:212来源:国知局
一种java卡上原子性测试方法及装置的制造方法
【专利摘要】本发明提出一种JAVA卡上原子性测试方法及装置,该方法为:应用断电读卡器,在测试命令的执行过程中进行断电,根据断电后卡片所处的状态,判断测试命令是否具有原子性。首先量取测试命令的完整执行时间,并列出测试命令允许的断电后的卡状态;然后按照读卡器所能提供的步长,对该测试命令进行时间递增的断电;断电后对卡状态进行检查,与所列状态不符则测试结束,相符则增加一个步长继续断电。该方法能够对测试命令的全部执行过程进行断电,解决了测试命令写内存时间范围不能准确定位,并且次数较多,传统的断电测试方法不适用于JAVA卡的问题,提高了测试效率和测试覆盖率。
【专利说明】
一种JAVA卡上原子性测试方法及装置
技术领域
[0001]本发明涉及智能卡领域,尤其涉及一种JAVA卡原子性测试方法及装置。
【背景技术】
[0002]JAVA卡是可以运行JAVA卡应用的智能卡。它遵循统一的国际规范,可以向自己和应用提供功能和存储原子性保护。JAVA卡的原子性定义了卡片在中断错误或致命异常的情况下,在更新单个对象域、或数组内容的时候,怎样处理内容的持久性存储。原子性保护对象包括单个内容,如对象、域、数组元素,也包括块,如多个数组的集合。JAVA卡对外提供接口,包括应用编程接口(API),供JAVA卡应用调用。也提供命令,与JAVA卡外进行交互。其中一些API和命令应遵循原子性特性。可以利用断电测试的方式对JAVA卡标准API和命令进行原子性测试。
[0003]断电测试,即应用一种断电读卡器,设定一个时长,向卡片发送测试指令之后,开始计时,达到该时长后,自动切断卡片电源,强制其停止处理。然后对卡片上电,检查待写的数据是写入前值或写入值。如果两者皆不是,则判断原子性保护失效。如果属于两者之一,就开始下一次断电测试,时长增加一个步长(通常为写一次存储器时间的百分之一级别)。
[0004]在对存储器擦写的断电测试技术中,为了缩短测试时间,首先利用波形工具来量取测试命令的写存储器时间范围,仅对测试命令的该时间范围进行断电测试。但是在JAVA卡上,首先,一个JAVA卡标准API和命令实现的不仅是对一处数据进行擦写,可能包括多个写存储器的时间范围。其次,JAVA卡对同一命令和API的处理所需时间,并不是每次都是一样的,可能受全体执行步骤的影响,其写存储器的时间范围不能固定。这两点,使得传统的先量取命令中的一段写存储器时间范围再测试的方法不适用于JAVA卡的原子性测试。
[0005]综上所述,需要寻求一种新的断电测试的方法,能够对JAVA卡上的标准命令和API进行原子性测试,并提高测试效率。

【发明内容】

[0006]本发明提供一种JAVA卡上原子性测试方法及装置,以对JAVA卡的标准命令和API的原子性进行测试,并提高测试效率。
[0007]本发明实施例提供的具体技术方案如下:
[0008]—种JAVA卡上原子性测试方法,包括:
[0009]确定断电时间范围,确定卡片原子性状态。
[0010]在断电时间范围内,对卡片进行断电测试。
[0011 ] —种JAVA卡上原子性测试装置,包括:
[0012]第一处理单元,确定断电时间范围,确定卡片原子性状态;
[0013]第二处理单元,在断电时间范围内,对卡片进行断电测试。
[0014]基于上述技术方案,本发明实施例中,首先利用断电读卡器,量取测试命令的总体执行时间,作为断电作用的时间范围,对命令全程进行断电,解决了使用提前量取的写EEPROM时间范围不固定,从而不可测的问题,同时提高了断电测试的覆盖率。同时,确定合法卡状态列表,从设计上保证了测试的可靠性。
【附图说明】
[0015]图1为本发明实施例中在JAVA卡上原子性测试方法的系统架构图;
[0016]图2为本发明实施例JAVA卡上原子性测试方法的装置结构图;
[0017]图3为本发明实施例中在JAVA卡上运行测试的方法流程图;
【具体实施方式】
[0018]为了解决JAVA卡上标准命令和API的原子性测试问题,本发明实施例提供了一种JAVA卡上原子性测试的方法及装置,能够解决JAVA卡上标准命令和API的原子性测试问题,并提高测试效率。该方法为:确定断电时间范围,确定卡片原子性状态。在断电时间范围内,对卡片进行断电测试。
[0019]下面结合附图对本发明优选的实施方式进行详细说明。
[0020]参阅附图1所示,本发明实施例中,在JAVA卡上原子性测试的系统主要包括驱动设备10,断电读卡器IUPJAVA Card设备12,其中,
[0021]驱动设备10,驱动整个断电测试的运行,通过断电读卡器11向JAVA卡12下发相应的测试命令和断电时长,接收断电读卡器11发送的JAVA卡执行状态;具体的,向断电读卡器11发送测试命令和时间范围,断电读卡器11将所述收到的测试命令发送给JAVA Card设备
12ο
[0022]断电读卡器11,用于从驱动设备10接收测试命令和断电时长,将测试命令下发给JAVA卡12后开始计时,在断电时间范围内对JAVA卡12进行断电测试;
[0023]JAVA卡12,用于执行测试命令,根据执行结果修改自身的执行状态并反馈给断电读卡器11。具体的,根据执行结果,修改测试命令对应的状态参数的值,不同的参数值对应不同的状态,不同的测试命令对应的状态参数不同,测试命令及其对应的状态参数及参数值由JAVA卡自身特性决定,例如,可以通过剩余尝试次数(try counter)的值来设置执行状态,所述try counter的值保存在JAVA卡上,由JAVA卡根据测试命令执行结果进行设置,例如设置try counter的初始值,假设为10,若try counter为初始值,为未执行状态,设置trycounter的最大值,假设为20,若try counter为最大值,为执行过的状态,执行成功。
[0024]
[0025]参阅附图2所示,本发明实施例中,驱动设备10,即JAVA卡上原子性测试的装置主要包括以下处理单元:
[0026]第一处理单元111,用于确定断电时间范围,确定卡片原子性状态;
[0027]第二处理单元112,用于接收断电读卡器11发送的执行状态。
[0028]进一步的,第一处理单元111,用于将测试命令和断电时间发送给断电读卡器11,并通知第二处理单元112,所述断电时间为0;
[0029]第二处理单元112,用于记录测试命令发送时间,接收断电读卡器11发送的状态字,并记录接收时间,获取记录的接收时间与测试命令发送时间的时间间隔,为测试命令的完整执行时间;
[0030]相应的,JAVA卡12,用于接收测试命令并执行,将执行完后的状态字通过断电读卡器11发送给第二处理单元112。
[0031]进一步的,第二处理单元112,用于将O加上本地预置的发送测试命令的时间,作为断电时间范围的起点,加上测试命令的完整执行时间,作为断电时间范围的终点。
[0032]进一步的,第一处理单元111,用于向断电读卡器11发送复位命令;
[0033]断电读卡器11,用于将所述复位命令发送给JAVA卡12;
[0034]JAVA卡12,用于接收复位命令,将执行状态修改为未执行。
[0035]基于上述系统架构,参阅附图3所示,本发明实施例中,在JAVA卡上原子性测试的详细方法流程如下:
[0036]步骤301:确定断电时间范围,确定卡片原子性状态;
[0037]其中确定断电时间范围,包括:确定时间范围的起点和终点。所述时间范围的起点应为O加上驱动设备发送测试命令的时间,此段时间值为预置在驱动设备内部。然后量取测试命令的完整执行所需时间,这段时间加上时间范围的起点作为时间范围终点。
[0038]所述量取测试命令的完整执行所需时间,方法是:驱动设备通过断电读卡器向JAVA卡发送测试命令及断电时间,将断电时间设置为0,使读卡器在命令执行期间,不做断电,JAVA卡执行测试命令后,返回状态字,驱动设备接收通过断电读卡器发送的状态字,驱动设备记录发送测试命令及接收状态字的时间,中间的时间间隔即为测试命令完整执行所需时间。在量取测试命令的完整执行所需时间之前及之后,需要对JAVA卡进行复位操作,具体为:驱动设备通过断电读卡器向JAVA卡发送复位命令,JAVA卡接收复位命令后,将自身的执行状态设置为未执行状态。
[0039]其中,确定卡片原子性状态,是指:依据JAVA卡平台设计及标准规范要求,列出正常情况下,原子性状态,包括,未执行的状态,即测试命令未执行前的状态;执行过的状态,即测试命令全部执行完毕的状态;部分执行状态,即测试命令部分执行完毕的状态,所述原子性状态,可根据状态参数的值来设定。
[0040]步骤302:在断电时间范围内,对JAVA卡进行断电测试。
[0041]其中,对JAVA卡进行断电测试,包括:驱动设备将测试命令及断电时间范围发送给断电读卡器,断电读卡器将测试命令发送给JAVA卡并开始计时,JAVA卡执行测试命令,断电读卡器确定当前时间达到时间范围的起点,执行断电操作,读取JAVA CARD状态,若JAVA卡状态不是原子性状态,则向驱动设备发送出错报告,若在上述三种状态范围内,则根据具体状态执行相应的操作。具体的,若为执行成功或第三种状态,驱动设备重新开始JAVA卡复位操作,执行步骤301,若为未执行状况,断电读卡器将该状态发送给驱动设备,同时在时间范围的起点上增加一个步长,在当前时间到达增加后的时间,再次执行断电操作,并重复前述工作。这里步长指的是,一段时间间隔,通常根据经验设置为1-100微秒。同时断电读卡器执行断电操作之前,将当前时间,即要执行断电操作的时间与时间范围的终点比较,若没有超过时间范围的终点,则执行断电操作;若超过时间范围的终点,则停止断电测试,并将停止测试的信息反馈给驱动设备。
[0042]本发明的实施例中,确定断电时间范围可以称之为准备部分,后续包括断电部分及断电后根据执行状态确定后续操作步骤的检查部分,这三部分是相互独立的,各自的修改不影响全局的实现,即可实现断电测试程序的功能,实现简单,并且,由于各部分的独立性,断电测试的各部分修改,并不影响原测试用例;预先量取测试命令的完整实行时间,实现了对测试命令的全程断电,一方面,避免了测试对象JAVA卡平台每次改版都需要逐一量取测试命令中的写EEPROM时间范围的工作,提高了测试效率。一方面,对测试命令全程断电,也提高了测试覆盖率。
[0043]显然,本领域的技术人员可以对本发明进行各种改动和变形而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变形属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种JAVA卡上原子性测试方法,其特征在于,该方法包括: 确定断电时间范围,确定卡片原子性状态; 在断电时间范围内,对JAVA卡进行断电测试。2.根据权利要求1所述的方法,其特征在于,所述确定断电时间范围,包括: 确定时间范围的起点和终点,其中,O加上驱动设备发送测试命令的时间为时间范围的起点,预置在驱动设备内容,,量取测试命令的完整执行所需时间,这段时间加上时间范围的起点作为时间范围终点。3.根据权利要求2所述的方法,其特征在于,所述量取测试命令的完整执行所需时间,包括: 驱动设备通过断电读卡器向JAVA卡发送测试命令及断电时间,将断电时间设置为O,使读卡器在命令执行期间,不做断电,JAVA卡执行测试命令后,返回状态字,驱动设备接收通过断电读卡器发送的状态字,驱动设备记录发送测试命令及接收状态字的时间,中间的时间间隔即为测试命令完整执行所需时间。4.根据权利要求1所述的方法,其特征在于,所述确定卡片原子性状态,包括:依据卡片设计,列出卡片在测试命令未能完整执行后,正常情况下,应处的状态。5.根据权利要求1所述的方法,其特征在于,对卡片进行断电测试,包括: 在断电测试时间范围内,从起点开始,每次增加一个步长,作为本次测试测试命令的执行时间,先判断当前对测试命令的断电时间是否超过断电时间范围的终点; 若超过测试命令的完整时间,则停止断电测试。 若未超过测试命令的完整时间,则执行测试命令至此时间,然后切断卡片工作电源,上电复位后,判断卡状态是否合法。6.根据权利要求5所述的方法,其特征在于,确定卡片原子性状态,包括:依据卡平台设计及标准规范要求,列出卡片在测试命令未能完整执行后,正常情况下,所处的几种状态。7.一种JAVA卡上原子性测试装置,其特征在于,该装置包括: 驱动设备,用于驱动整个断电测试的运行,通过断电读卡器向JAVA卡下发相应的测试命令和断电时长,接收断电读卡器发送的JAVA卡执行状态; 断电读卡器,用于从驱动设备接收测试命令和断电时长,将测试命令下发给JAVA卡后开始计时,在断电时间范围内对JAVA卡进行断电测试; JAVA卡,用于执行测试命令,根据执行结果修改自身的执行状态并反馈给断电读卡器。8.根据权利要求7所述的装置,其特征在于,所述驱动设备包括第一处理单元和第二处理单元;其中, 第一处理单元,用于确定断电时间范围,确定卡片原子性状态; 第二处理单元,用于接收断电读卡器发送的执行状态。9.根据权利要求8所述的装置,其特征在于, 所述第一处理单元,用于将测试命令和断电时间发送给断电读卡器,并通知第二处理单元,所述断电时间为O; 第二处理单元,用于记录测试命令发送时间,接收断电读卡器发送的状态字,并记录接收时间,获取记录的接收时间与测试命令发送时间的时间间隔,为测试命令的完整执行时间;将O加上本地预置的发送测试命令的时间,作为断电时间范围的起点,加上测试命令的完整执行时间,作为断电时间范围的终点; 相应的,JAVA卡,用于接收测试命令并执行,将执行完后的状态字通过断电读卡器发送给第二处理单元。10.根据权利要8所述的装置,其特征在于, 所述第一处理单元,用于向断电读卡器发送复位命令; 断电读卡器,用于将所述复位命令发送给JAVA卡; JAVA卡,用于接收复位命令,将执行状态修改为未执行。
【文档编号】G06F11/36GK106021088SQ201510404187
【公开日】2016年10月12日
【申请日】2015年7月10日
【发明人】仲倩黎
【申请人】北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1