一種智能卡掉電測試方法、測試設(shè)備和被測設(shè)備的制作方法
【專利摘要】本發(fā)明公開了智能卡的掉電測試方法,該方法應(yīng)用于測試設(shè)備,包括:在TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式指令;開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令。本發(fā)明能解決傳統(tǒng)掉電測試需要專門的測試設(shè)備和編寫專門的掉電測試用例導(dǎo)致的測試成本高、效率低、測試力度弱的問題。本發(fā)明還公開了測試設(shè)備、被測設(shè)備和測試系統(tǒng)。
【專利說明】—種智能卡掉電測試方法、測試設(shè)備和被測設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及智能卡【技術(shù)領(lǐng)域】,尤其涉及的是一種智能卡掉電測試方法、測試設(shè)備、被測設(shè)備和掉電測試系統(tǒng)。
【背景技術(shù)】
[0002]智能卡的掉電測試,即防插拔測試,其目的是檢測智能卡的片內(nèi)操作系統(tǒng)(ChipOperating System, COS)與終端(如P0S機(jī))交互過程中意外掉電時(shí)對數(shù)據(jù)完整性的保護(hù)和自動回滾的能力。例如,一次存款交易中,智能卡在返回狀態(tài)前的任何時(shí)刻掉電,卡片再次上電后應(yīng)能將數(shù)據(jù)回滾到交易前的狀態(tài)。智能卡寫入的數(shù)據(jù)必須保證其原子性,所謂的原子性就是指一個(gè)操作序列,這些操作要么全做要么全部不做,是一個(gè)不可分割的工作單位(也可稱作事務(wù))。以保證數(shù)據(jù)寫入過程中出現(xiàn)異常能夠?qū)?shù)據(jù)進(jìn)行回滾,同時(shí)一旦寫入成功,對數(shù)據(jù)的修改應(yīng)該是永久的。
[0003]傳統(tǒng)的掉電測試使用專門的測試設(shè)備(掉電測試儀),并且針對測試設(shè)備編寫專門的掉電測試用例和腳本對測試卡(智能卡)進(jìn)行測試,測試時(shí),掉電測試儀按照預(yù)設(shè)的時(shí)間間隔對測試卡進(jìn)行掉電和重新上電,驗(yàn)證測試卡的狀態(tài),如果正常,則掉電測試儀繼續(xù)間隔一定時(shí)間進(jìn)行掉電,如此循環(huán),直到完成整個(gè)應(yīng)用的業(yè)務(wù)流程的掉電測試。
[0004]現(xiàn)有的掉電測試技術(shù)需要高精度的掉電測試儀器,越高精度(時(shí)間間隔越小,精度越高)的掉電測試儀,成本就越高,并且,由于需要編寫專門的測試用例進(jìn)行掉電測試,所以對cos測試的覆蓋面不夠(測試力度弱),且測試過程復(fù)雜繁瑣,另外,利用掉電測試儀進(jìn)行測試所耗費(fèi)的測試時(shí)間長,比如,測試一個(gè)50ms完成的交易,利用掉電測試儀按照0.01ms的精度進(jìn)行掉電測試需要幾個(gè)小時(shí)才能測試完成。
[0005]因此,現(xiàn)有的掉電測試方法存在成本高、效率低、測試力度弱的缺點(diǎn)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是提供一種智能卡掉電測試方法、測試設(shè)備、被測設(shè)備和掉電測試系統(tǒng),解決傳統(tǒng)掉電測試需要專門的測試設(shè)備和編寫專門的掉電測試用例導(dǎo)致的測試成本高、效率低、測試力度弱的問題。
[0007]為了解決上述技術(shù)問題,本發(fā)明提供了一種智能卡的掉電測試方法,該方法應(yīng)用于測試設(shè)備,包括:
[0008]在兼容性測試工具TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式的指令;
[0009]開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如接收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如接收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令;[0010]其中,所述測試腳本包含一條或多條測試命令。
[0011]進(jìn)一步地,該方法還包括下述特點(diǎn):
[0012]如接收到的狀態(tài)字和測試數(shù)據(jù)不符合預(yù)期,則中止該測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令,并保存接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用。
[0013]進(jìn)一步地,該方法還包括下述特點(diǎn):
[0014]所述測試命令為應(yīng)用協(xié)議數(shù)據(jù)單元APDU命令。
[0015]為了解決上述技術(shù)問題,本發(fā)明還提供了一種智能卡的掉電測試方法,該方法應(yīng)用于被測設(shè)備,所述被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并且安裝了兼容性測試工具TCK的測試用例,包括:
[0016]如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加;
[0017]在掉電模式下每接收到一條測試命令后,判斷是否需要寫存儲器,如果需要,則寫存儲器,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,如相等則向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬COS掉電和重新上電,在掉電模式下等待接收下一條測試命令;如果不需要,則執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù),在掉電模式下等待接收下一條測試命令。
[0018]進(jìn)一步地,該方法還包括下述特點(diǎn):
[0019]在掉電模式下等待接收下一條測試命令的過程中,還判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則關(guān)閉掉電模式。
[0020]進(jìn)一步地,該方法還包括下述特點(diǎn):
[0021]所述存儲器是智能卡上的可擦寫存儲器。
[0022]進(jìn)一步地,該方法還包括下述特點(diǎn):
[0023]所述智能卡為Java卡。
[0024]為了解決上述技術(shù)問題,本發(fā)明還提供了一種智能卡的掉電測試方法,包括:
[0025]測試設(shè)備采用如上所述的方法對被測設(shè)備進(jìn)行掉電測試;
[0026]被測設(shè)備采用如上所述的方法接受測試設(shè)備的掉電測試。
[0027]為了解決上述技術(shù)問題,本發(fā)明還提供了一種測試設(shè)備,包括:
[0028]掉電測試開啟模塊,用于在兼容性測試工具TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式的指令;
[0029]命令發(fā)送及處理模塊,用于開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如接收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如接收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令;其中,所述測試腳本包含一條或多條測試命令。
[0030]進(jìn)一步地,該測試設(shè)備還包括下述特點(diǎn):
[0031]所述命令發(fā)送及處理模塊,還用于如接收到的狀態(tài)字和測試數(shù)據(jù)不符合預(yù)期,則中止該測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令,并保存接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用。[0032]為了解決上述技術(shù)問題,本發(fā)明還提供了一種被測設(shè)備,所述被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并且安裝了兼容性測試工具TCK的測試用例,該被測設(shè)備包括:
[0033]掉電測試開啟模塊,用于如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加;
[0034]命令接收及處理模塊,用于在掉電模式下每接收到一條測試命令后,判斷是否需要寫存儲器,如果需要,則寫存儲器,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,如相等則向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬cos掉電和重新上電,在掉電模式下等待接收下一條測試命令;如果不需要,則執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù),在掉電模式下等待接收下一條測試命令。
[0035]進(jìn)一步地,該被測設(shè)備還包括下述特點(diǎn):
[0036]所述命令接收及處理模塊,用于在掉電模式下等待接收下一條測試命令的過程中,還判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則關(guān)閉掉電模式。
[0037]進(jìn)一步地,該被測設(shè)備還包括下述特點(diǎn):
[0038]所述智能卡為Java卡。
[0039]為了解決上述技術(shù)問題,本發(fā)明還提供了一種智能卡的掉電測試系統(tǒng),包括:上述測試設(shè)備和上述被測設(shè)備。
[0040]與現(xiàn)有技術(shù)相比,本發(fā)明提供的一種智能卡掉電測試方法、測試設(shè)備、被測設(shè)備和掉電測試系統(tǒng),在被測設(shè)備(模擬器)上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并安裝TCK的測試用例,由測試設(shè)備向被測設(shè)備發(fā)送指令開啟掉電測試,被測設(shè)備對寫存儲器操作的次數(shù)進(jìn)行計(jì)數(shù),每間隔一定的寫操作次數(shù)模擬一次掉電和重新上電,并向測試設(shè)備返回掉電狀態(tài)字,測試設(shè)備接收到掉電狀態(tài)字,則重新運(yùn)行該測試腳本,否則檢查被測設(shè)備返回的狀態(tài)字和測試數(shù)據(jù)是否符合預(yù)期,然后進(jìn)行處理,能夠解決傳統(tǒng)掉電測試需要專門的測試設(shè)備和編寫專門的掉電測試用例導(dǎo)致的測試成本高、效率低、測試力度弱的問題。
【專利附圖】
【附圖說明】
[0041]圖1為本發(fā)明實(shí)施例的一種智能卡掉電測試方法(測試設(shè)備)的流程圖。
[0042]圖2為本發(fā)明實(shí)施例的一種智能卡掉電測試方法(被測設(shè)備)的流程圖。
[0043]圖3為本發(fā)明實(shí)施例的測試設(shè)備進(jìn)行掉電測試的詳細(xì)流程圖。
[0044]圖4為本發(fā)明實(shí)施例的被測設(shè)備(模擬器)進(jìn)行掉電測試的詳細(xì)流程圖。
[0045]圖5為本發(fā)明實(shí)施例的測試設(shè)備的結(jié)構(gòu)示意圖。
[0046]圖6為本發(fā)明實(shí)施例的被測設(shè)備的結(jié)構(gòu)示意圖。
[0047]圖7為本發(fā)明實(shí)施例的一種智能卡掉電測試系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0048]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
[0049]Java 規(guī)范是開放標(biāo)準(zhǔn),TCK (Technology Compatibility Kit,兼容性測試工具)是一套由一組測試包和相應(yīng)的測試工具組成的工具包,用于保證一個(gè)使用Java技術(shù)的實(shí)現(xiàn)能夠完全遵守其適用的Java平臺規(guī)范,并且符合相應(yīng)的參考實(shí)現(xiàn)。
[0050]Java Card技術(shù)是把Java編程語言的一個(gè)子集同一個(gè)優(yōu)化的運(yùn)行時(shí)環(huán)境結(jié)合在一起的技術(shù)。這種優(yōu)化是專門針對小存儲量的嵌入式設(shè)備的,例如智能卡。Java Card技術(shù)的目標(biāo)是讓那些資源受限的智能卡等設(shè)備受益于Java語言開發(fā)的軟件。Java card技術(shù)規(guī)范包括三部分:1、Java Card Virtual Machine規(guī)范:該規(guī)范定義了 Java語言的一個(gè)子集和適用于智能卡的虛擬機(jī)。2、Java Card Runtime Environment規(guī)范:該規(guī)范更進(jìn)一步定義了基于Java的智能卡的運(yùn)行時(shí)環(huán)境。3、Java Card API規(guī)范:該規(guī)范定義了為智能卡應(yīng)用程序量身定制的核心框架以及各種包和類。
[0051]Java Card TCK是一套由一組測試包和相應(yīng)的自動化測試軟件組成的工具包,用于保證一個(gè)使用Java Card技術(shù)的實(shí)現(xiàn)能夠完全遵守其相應(yīng)的Java Card平臺規(guī)范。JavaCard TCK的測試包中提供了一系列用于Java Card測試的測試用例。
[0052]本發(fā)明提供一種基于Java Card TCK的掉電測試方法,在被測設(shè)備(模擬器)上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并安裝TCK的測試用例,由測試設(shè)備向被測設(shè)備發(fā)送指令開啟掉電測試,被測設(shè)備對寫存儲器操作的次數(shù)進(jìn)行計(jì)數(shù),每間隔一定的寫操作次數(shù)模擬一次掉電和重新上電,并向測試設(shè)備返回掉電狀態(tài)字,測試設(shè)備接收到掉電狀態(tài)字,則重新運(yùn)行該測試腳本,否則檢查被測設(shè)備返回的狀態(tài)字和測試數(shù)據(jù)是否符合預(yù)期,然后進(jìn)行處理。本發(fā)明的測試用例基于TCK,幾乎覆蓋了 Java Card所有功能的測試,因此測試力度強(qiáng),并且,通過軟件控制掉電,無需專門的掉電測試儀,因此降低了測試成本。
[0053]如圖1所示,本發(fā)明實(shí)施例提供了一種智能卡的掉電測試方法,該方法應(yīng)用于測試設(shè)備,包括:
[0054]S10,在兼容性測試工具TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式的指令;
[0055]S20,開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如接收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如接收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令;其中,所述測試腳本包含一條或多條測試命令。
[0056]該方法還可以包括下述特點(diǎn):
[0057]較佳地,步驟S10之前,還包括:測試設(shè)備與被測設(shè)備之間建立socket連接。
[0058]較佳地,測試命令是應(yīng)用協(xié)議數(shù)據(jù)單元(Application Protocol Data Unit,APDU)命令;
[0059]較佳地,步驟S20中,還包括:如接收到的狀態(tài)字和測試數(shù)據(jù)不符合預(yù)期,則中止該測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令,并保存接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用。
[0060]較佳地,表示掉電的狀態(tài)字為特定的狀態(tài)字,比如OxFFFF。
[0061]如圖2所示,本發(fā)明實(shí)施例提供了一種智能卡的掉電測試方法,該方法應(yīng)用于被測設(shè)備,所述被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)COS,并且安裝了兼容性測試工具TCK的測試用例,包括:
[0062]S10,如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加;
[0063]S20,在掉電模式下每接收到一條測試命令后,判斷是否需要寫存儲器,如果需要,則寫存儲器,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,如相等則向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬cos掉電和重新上電,在掉電模式下等待接收下一條測試命令;如果不需要,則執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù),在掉電模式下等待接收下一條測試命令;
[0064]該方法還可以包括下述特點(diǎn):
[0065]較佳地,在掉電模式下等待接收下一條測試命令的過程中,還判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則關(guān)閉掉電模式。
[0066]較佳地,所述智能卡是Java卡;
[0067]較佳地,所述測試設(shè)備與被測設(shè)備之間建立socket連接。
[0068]較佳地,所述測試命令是應(yīng)用協(xié)議數(shù)據(jù)單元APDU命令;
[0069]較佳地,表示掉電的狀態(tài)字為特定的狀態(tài)字,比如OxFFFF。
[0070]其中,所述存儲器是智能卡上的可擦寫存儲器(比如,EEPR0M)。
[0071]較佳地,為了提高掉電測試的精度,可以設(shè)置所述掉電步長為最小值,比如1。
[0072]模擬器在模擬寫存儲器操作時(shí)進(jìn)行掉電,并且采用寫操作次數(shù)為間隔進(jìn)行掉電,與傳統(tǒng)掉電測試方案利用時(shí)間間隔掉電的方案相比測試效率更高、測試精度更高。如果將掉電步長設(shè)置的越小,則掉電測試越精確。
[0073]如圖3所示,測試設(shè)備是PC機(jī)(運(yùn)行兼容性測試工具TCK),被測設(shè)備是模擬器(模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)COS的模擬平臺),將TCK測試用例安裝到所述模擬器上后,測試設(shè)備進(jìn)行掉電測試的流程包括:
[0074]步驟S101,向模擬器發(fā)送開啟掉電模式的指令;
[0075]步驟S102,開始運(yùn)行測試腳本;
[0076]步驟S103,向模擬器發(fā)送一條測試命令;
[0077]步驟S104,接收模擬器在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù);
[0078]步驟S105,判斷狀態(tài)字是否為掉電狀態(tài)字,是則重新開始運(yùn)行該測試腳本,也即,返回步驟S102 ;否則執(zhí)行步驟S106 ;
[0079]步驟S106,判斷狀態(tài)字和測試數(shù)據(jù)是否符合預(yù)期,是則執(zhí)行步驟S107,否則執(zhí)行步驟S109 ;
[0080]步驟S107,是否存在下一條測試命令,是則向模擬器發(fā)送下一條測試命令,也即返回步驟S103,否則執(zhí)行步驟S108 ;
[0081]步驟S108,結(jié)束所述測試腳本的運(yùn)行,向模擬器發(fā)送關(guān)閉掉電模式的指令;
[0082]步驟S109,中止該測試腳本的運(yùn)行,向模擬器發(fā)送關(guān)閉掉電模式的指令,并保存返回結(jié)果(接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用)。
[0083]如圖4所示,被測設(shè)備(模擬器)上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并且安裝了兼容性測試工具TCK的測試用例,模擬器進(jìn)行掉電測試的處理流程包括:
[0084]步驟S201,如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則執(zhí)行步驟S202 ;
[0085]步驟S202,進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;
[0086]其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加;
[0087]步驟S203,接收一條測試命令;
[0088]步驟S204,判斷是否需要寫存儲器,是則執(zhí)行步驟S205,否則執(zhí)行步驟S208 ;
[0089]步驟S205,寫存儲器;
[0090]步驟S206,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,是則執(zhí)行步驟S207,否則轉(zhuǎn)到步驟S209 ;
[0091]步驟S207,向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬COS掉電和重新上電,轉(zhuǎn)到步驟S209 ;
[0092]步驟S208,執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù);
[0093]步驟S209,判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則執(zhí)行步驟S210,否則返回步驟S203 ;
[0094]步驟S210,關(guān)閉掉電模式。
[0095]如圖5所示,本發(fā)明實(shí)施例提供了 一種測試設(shè)備,包括:
[0096]掉電測試開啟模塊,用于在兼容性測試工具TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式的指令;
[0097]命令發(fā)送及處理模塊,用于開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如接收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如接收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令;其中,所述測試腳本包含一條或多條測試命令。
[0098]該測試設(shè)備還可以包括下述特點(diǎn):
[0099]較佳地,所述命令發(fā)送及處理模塊,還用于如接收到的狀態(tài)字和測試數(shù)據(jù)不符合預(yù)期,則中止該測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令,并保存接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用。
[0100]較佳地,所述測試命令是應(yīng)用協(xié)議數(shù)據(jù)單元APDU命令;
[0101]所述被測設(shè)備是模擬智能卡片內(nèi)操作系統(tǒng)COS的模擬平臺;其中,所述智能卡為Java
[0102]如圖6所示,本發(fā)明實(shí)施例提供了一種被測設(shè)備,所述被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并且安裝了兼容性測試工具TCK的測試用例,該被測設(shè)備包括:
[0103]掉電測試開啟模塊,用于如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加;
[0104]命令接收及處理模塊,用于在掉電模式下每接收到一條測試命令后,判斷是否需要寫存儲器,如果需要,則寫存儲器,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,如相等則向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬cos掉電和重新上電,在掉電模式下等待接收下一條測試命令;如果不需要,則執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù),在掉電模式下等待接收下一條測試命令。
[0105]所述被測設(shè)備還可以包括下述特點(diǎn):
[0106]較佳地,所述命令接收及處理模塊,用于在掉電模式下等待接收下一條測試命令的過程中,還判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則關(guān)閉掉電模式。
[0107]較佳地,所述測試命令為應(yīng)用協(xié)議數(shù)據(jù)單元APDU命令。
[0108]較佳地,所述存儲器是智能卡上的可擦寫存儲器。
[0109]較佳地,所述智能卡為Java卡。
[0110]如圖7所示,本發(fā)明實(shí)施例提供了一種智能卡掉電測試系統(tǒng),包括上述測試設(shè)備和被測設(shè)備。
[0111]上述實(shí)施例提供的一種智能卡掉電測試方法、測試設(shè)備、被測設(shè)備和掉電測試系統(tǒng),在被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)C0S,并安裝TCK的測試用例,由測試設(shè)備向被測設(shè)備發(fā)送指令開啟掉電測試,被測設(shè)備對寫存儲器操作的次數(shù)進(jìn)行計(jì)數(shù),每間隔一定的寫操作次數(shù)模擬一次掉電和重新上電,并向測試設(shè)備返回掉電狀態(tài)字,測試設(shè)備接收到掉電狀態(tài)字,則重新運(yùn)行該測試腳本,否則檢查被測設(shè)備返回的狀態(tài)字和測試數(shù)據(jù)是否符合預(yù)期,然后進(jìn)行處理。本發(fā)明能夠解決傳統(tǒng)掉電測試需要專門的測試設(shè)備和編寫專門的掉電測試用例導(dǎo)致的測試成本高、效率低、流程復(fù)雜的問題。
[0112]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計(jì)算機(jī)可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn),相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0113]需要說明的是,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種智能卡的掉電測試方法,該方法應(yīng)用于測試設(shè)備,包括:在兼容性測試工具TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式的指令;開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如接收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如接收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令;其中,所述測試腳本包含一條或多條測試命令。
2.如權(quán)利要求1所述的方法,其特征在于:如接收到的狀態(tài)字和測試數(shù)據(jù)不符合預(yù)期,則中止該測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令,并保存接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用。
3.如權(quán)利要求1所述的方法,其特征在于:所述測試命令為應(yīng)用協(xié)議數(shù)據(jù)單元APDU命令。
4.一種智能卡的掉電測試方法,該方法應(yīng)用于被測設(shè)備,所述被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)COS,并且安裝了兼容性測試工具TCK的測試用例,包括:如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加; 在掉電模式下每接收到一條測試命令后,判斷是否需要寫存儲器,如果需要,則寫存儲器,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,如相等則向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬COS掉電和重新上電,在掉電模式下等待接收下一條測試命令;如果不需要,則執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù),在掉電模式下等待接收下一條測試命令。
5.如權(quán)利要求4所述的方法,其特征在于:在掉電模式下等待接收下一條測試命令的過程中,還判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則關(guān)閉掉電模式。
6.如權(quán)利要求4所述的方法,其特征在于:所述存儲器是智能卡上的可擦寫存儲器。
7.如權(quán)利要求4-6中任一項(xiàng)所述的方法,其特征在于:所述智能卡為Java卡。
8.一種智能卡的掉電測試方法,包括:測試設(shè)備采用如權(quán)利要求1-3中任一項(xiàng)所述的方法對被測設(shè)備進(jìn)行掉電測試;被測設(shè)備采用如權(quán)利要求4-7中任一項(xiàng)所述的方法接受測試設(shè)備的掉電測試。
9.一種測試設(shè)備,包括:掉電測試開啟模塊,用于在兼容性測試工具TCK測試用例被安裝到被測設(shè)備上后,向被測設(shè)備發(fā)送開啟掉電模式的指令;命令發(fā)送及處理模塊,用于開始運(yùn)行測試腳本;每發(fā)送一條測試命令后,接收被測設(shè)備在執(zhí)行該測試命令后返回的狀態(tài)字和測試數(shù)據(jù),如接收到的狀態(tài)字為表示掉電的狀態(tài)字,則重新開始運(yùn)行該測試腳本;如接收到的狀態(tài)字和測試數(shù)據(jù)符合預(yù)期,則判斷是否存在下一條測試命令,是則繼續(xù)發(fā)送下一條測試命令,否則結(jié)束所述測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令;其中,所述測試腳本包含一條或多條測試命令。
10.如權(quán)利要求9所述的測試設(shè)備,其特征在于:所述命令發(fā)送及處理模塊,還用于如接收到的狀態(tài)字和測試數(shù)據(jù)不符合預(yù)期,則中止該測試腳本的運(yùn)行,向被測設(shè)備發(fā)送關(guān)閉掉電模式的指令,并保存接收到的狀態(tài)字和測試數(shù)據(jù)供后續(xù)錯(cuò)誤分析用。
11.一種被測設(shè)備,所述被測設(shè)備上模擬運(yùn)行智能卡的片內(nèi)操作系統(tǒng)COS,并且安裝了兼容性測試工具TCK的測試用例,該被測設(shè)備包括:掉電測試開啟模塊,用于如接收到測試設(shè)備發(fā)送的開啟掉電模式的指令,則進(jìn)入掉電模式,初始化寫操作計(jì)數(shù)器和掉電位置變量;其中,所述寫操作計(jì)數(shù)器自動對每一次寫存儲器操作進(jìn)行次數(shù)累加;命令接收及處理模塊,用于在掉電模式下每接收到一條測試命令后,判斷是否需要寫存儲器,如果需要,則寫存儲器,判斷所述寫操作計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值與所述掉電位置變量的值是否相等,如相等則向測試設(shè)備返回表示掉電的狀態(tài)字,將所述掉電位置變量的值增加一個(gè)掉電步長,模擬cos掉電和重新上電,在掉電模式下等待接收下一條測試命令;如果不需要,則執(zhí)行該測試命令,向測試設(shè)備返回狀態(tài)字和測試數(shù)據(jù),在掉電模式下等待接收下一條測試命令。
12.如權(quán)利要求11所述的被測設(shè)備,其特征在于:所述命令接收及處理模塊,用于在掉電模式下等待接收下一條測試命令的過程中,還判斷是否接收到測試設(shè)備發(fā)送的關(guān)閉掉電模式的指令,是則關(guān)閉掉電模式。
13.如權(quán)利要求 11或12所述的方法,其特征在于:所述智能卡為Java卡。
14.一種智能卡的掉電測試系統(tǒng),包括:如權(quán)利要求9-10中任一項(xiàng)所述的測試設(shè)備;如權(quán)利要求11-13中任一項(xiàng)所述的被測設(shè)備。
【文檔編號】G06F11/22GK103678067SQ201310706883
【公開日】2014年3月26日 申請日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】肖洪琨 申請人:大唐微電子技術(shù)有限公司