專利名稱:一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及智能卡技術(shù)領(lǐng)域,尤其是涉及一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法。
背景技術(shù):
近年來,Java智能卡以其良好的平臺(tái)無關(guān)性、多應(yīng)用的支持、良好的安全特性、面向?qū)ο蟮木幊汰h(huán)境、應(yīng)用開發(fā)的簡(jiǎn)易性、應(yīng)用程序動(dòng)態(tài)下載等優(yōu)點(diǎn),已經(jīng)在社會(huì)生活的各個(gè)領(lǐng)域得到廣泛的應(yīng)用,在諸多領(lǐng)域有著廣闊的應(yīng)用前景。例如,國(guó)內(nèi)地方金融銀行卡業(yè)務(wù)發(fā)展十分迅速,全國(guó)220家發(fā)卡機(jī)構(gòu)中有192家為地方金融機(jī)構(gòu),地方金融機(jī)構(gòu)發(fā)卡量達(dá)3億張,交易量占全國(guó)總量的五分之一左右。面對(duì)如此龐大的制卡系統(tǒng),針對(duì)不同業(yè)務(wù)需求,選擇合適的卡商對(duì)于決策者是一個(gè)艱難的選擇。Java卡的這種局勢(shì)促使卡片開發(fā)者和卡片供應(yīng)商越來越注重于對(duì)Java卡性能的測(cè)試。目前,市場(chǎng)上在Java智能卡穩(wěn)定性、應(yīng)用功能以及基本安全等非物理性能的測(cè)試方面,多數(shù)采用PC/SC規(guī)范。PC/SC體系由三個(gè)主要部件組成操作系統(tǒng)、讀寫器(IFD)、智能卡(ICC)。但在其測(cè)試的具體實(shí)現(xiàn)上還沒有公認(rèn)的標(biāo)準(zhǔn)方法。較為通用的方法是,將能夠體現(xiàn)Java卡某項(xiàng)性能的JavaCard Applet安裝到卡上,通過卡外終端發(fā)送一系列APDU命令進(jìn)行系統(tǒng)測(cè)試,最后以卡內(nèi)執(zhí)行測(cè)試所花費(fèi)的時(shí)間作為測(cè)試結(jié)果的指標(biāo),其計(jì)時(shí)裝置存在于卡外,并通過讀卡器與Java卡連接。因此,這種基于PC/SC的Java卡性能測(cè)試方法,其結(jié)果中存在讀卡器與卡片之間通信時(shí)間的干擾。
為解決這一問題,較為簡(jiǎn)單的方法是在Java卡與讀卡器的一次通信過程中對(duì)同一性能進(jìn)行循環(huán)測(cè)試,然后取結(jié)果的平均值,這樣就可以減小通信時(shí)間在測(cè)試結(jié)果中所占比重,提高測(cè)試結(jié)果的精度。然而在這種循環(huán)測(cè)試中對(duì)循環(huán)次數(shù)的取值無法快速有效的確定通常會(huì)在一次到幾萬次的范圍內(nèi)每隔一定次數(shù)單位(如100次)進(jìn)行遞增測(cè)試,期間若在測(cè)試結(jié)果的集合中出現(xiàn)了穩(wěn)定的值,則停止測(cè)試,并記錄該穩(wěn)定值作為結(jié)果;或者出于結(jié)果準(zhǔn)確性的考慮直接盲目地將循環(huán)次數(shù)增加至上萬次,這樣取平均值后也可以較精確地得到指令的執(zhí)行時(shí)間。但無論前面的哪種方法,使用的循環(huán)次數(shù)都是有針對(duì)性的,當(dāng)測(cè)試環(huán)境發(fā)生變化(比如,換一張卡片或測(cè)試另一項(xiàng)性能),使用同樣的循環(huán)次數(shù)得到的結(jié)果可能是不準(zhǔn)確的;它們都可能是以較長(zhǎng)的測(cè)試時(shí)間為代價(jià)的,這在大量測(cè)試中是不能接受的。而事實(shí)上,想要得到滿足精度要求的測(cè)試結(jié)果,同一張Java卡的各項(xiàng)性能的所需的測(cè)試次數(shù)是不同的。與通信時(shí)間相比,若性能指標(biāo)所花費(fèi)的時(shí)間較小,則需較多的測(cè)試次數(shù),否則測(cè)試結(jié)果將達(dá)不到精度要求;反之,則需較少的測(cè)試次數(shù),否則將極大地降低測(cè)試效率。
發(fā)明內(nèi)容
針對(duì)上述技術(shù)問題,本發(fā)明提出一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法。
為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下;一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法,包括如下步驟I)測(cè)試終端向Java卡發(fā)送用于性能測(cè)試的JavaCard Applet應(yīng)用命令;2)在測(cè)試終端設(shè)置所需要的精度;3)測(cè)試終端將循環(huán)測(cè)試次數(shù)為設(shè)置O,測(cè)出Java卡執(zhí)行所述JavaCard Applet時(shí)間Ttl后,將循環(huán)測(cè)試次數(shù)為設(shè)置I,測(cè)出Java卡所述JavaCard Applet執(zhí)行時(shí)間T1 ;4)利用公式0 =+ 1,測(cè)試終端計(jì)算得出適合該性能測(cè)試的合理循環(huán)測(cè)試
-1O)
次數(shù)C ; 5)測(cè)試終端將循環(huán)測(cè)試次數(shù)設(shè)為C,測(cè)出Java卡經(jīng)過C次循環(huán)后所述JavaCardApplet 的執(zhí)行時(shí)間 Tc ;6)根據(jù)公式? = ·;測(cè)試終端計(jì)算得出測(cè)試函數(shù)的執(zhí)行時(shí)間平均值,所述$即為最終測(cè)試結(jié)果。進(jìn)一步的,所述測(cè)試終端根據(jù)從Java卡反饋的狀態(tài)字來判斷是否執(zhí)行下一步驟。本發(fā)明的有益效果為易用性本方法在Java卡性能測(cè)試中能夠?qū)ρh(huán)次數(shù)進(jìn)行自適應(yīng)取值且智能化執(zhí)行測(cè)試過程,易于使用和操作。通用性本方法不受測(cè)試環(huán)境(卡片、讀卡器和終端設(shè)備)變動(dòng)的影響,支持不同Java卡在不同測(cè)試環(huán)境中對(duì)不同性能的測(cè)試。可控性本方法所測(cè)結(jié)果的有效位數(shù)是由循環(huán)次數(shù)決定,而循環(huán)次數(shù)的值是由精度要求的設(shè)定值計(jì)算取得,所以可以通過調(diào)整精度要求來控制測(cè)試結(jié)果的精度。清晰性本方法在循環(huán)次數(shù)的取值上顯得快速準(zhǔn)確,且對(duì)整個(gè)測(cè)試的運(yùn)行時(shí)間進(jìn)行了預(yù)估,顯得更為清晰、明確??尚判员痉椒ǖ淖赃m應(yīng)測(cè)試所得最終結(jié)果的精度,經(jīng)實(shí)驗(yàn)證明是準(zhǔn)確的。
圖I是性能循環(huán)測(cè)試的運(yùn)行過程;圖2是本發(fā)明的循環(huán)測(cè)試框架。
具體實(shí)施例方式下面將結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說明。圖I指示了基于PC/SC的Java卡性能測(cè)試在卡內(nèi)的主要執(zhí)行過程測(cè)試終端發(fā)送power up命令使Java卡片上電,等Java卡內(nèi)初始化工作完成后再發(fā)送選擇應(yīng)用命令,選中用于性能測(cè)試的JavaCard Applet,然后終端測(cè)試程序自動(dòng)發(fā)送設(shè)置循環(huán)次數(shù)命令,卡內(nèi)Applet收到該命令后,設(shè)置循環(huán)次數(shù),若成功則返回狀態(tài)字90 00給終端測(cè)試程序。終端測(cè)試程序接著發(fā)送啟動(dòng)測(cè)試命令,同時(shí)開始計(jì)時(shí)??▋?nèi)執(zhí)行性能測(cè)試,結(jié)束后,返回狀態(tài)字90 00。最后終端記錄收到90 00的時(shí)間,同時(shí)結(jié)束計(jì)時(shí),該項(xiàng)性能測(cè)試結(jié)束。兩次計(jì)時(shí)所得時(shí)間差即為測(cè)試函數(shù)的執(zhí)行時(shí)間。
實(shí)施例一如圖2所示,在需要性能測(cè)試JavaCard Applet中設(shè)有的FunctionTest O函數(shù),該函數(shù)為要執(zhí)行的測(cè)試函數(shù),如一次算術(shù)運(yùn)算或一次加密運(yùn)算;C(CyCleS)為Java卡內(nèi)運(yùn)行FunctionTest O的循環(huán)次數(shù)。假設(shè)當(dāng)計(jì)算執(zhí)行一次測(cè)試所用的時(shí)間時(shí),記測(cè)量誤差允許的最小值為△,真實(shí)消耗時(shí)間為T,T0則表示循環(huán)次數(shù)為O時(shí),測(cè)試所需要的時(shí)間,則稱T/Λ為測(cè)試的精度要求,記為P (precision,—般取值為O. 1、0· 01、0· 001),當(dāng)p為O. 001時(shí),意味著測(cè)試結(jié)果的精度為三位有效數(shù)字。根據(jù)以下公式
權(quán)利要求
1.一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法,其特征在于,包括如下步驟 1)測(cè)試終端向Java卡發(fā)送用于性能測(cè)試的JavaCardApplet應(yīng)用命令; 2)在測(cè)試終端設(shè)置所需要的精度; 3)測(cè)試終端將循環(huán)測(cè)試次數(shù)為設(shè)置O,測(cè)出Java卡執(zhí)行所述JavaCardApplet時(shí)間Ttl后,將循環(huán)測(cè)試次數(shù)為設(shè)置I,測(cè)出Java卡所述JavaCard Applet執(zhí)行時(shí)間T1 ;4)利用公式
2.根據(jù)權(quán)利要求I所述的一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法,其特征在于,所述測(cè)試終端根據(jù)從Java卡反饋的狀態(tài)字來判斷是否執(zhí)行下一步驟。
全文摘要
本發(fā)明公開了一種針對(duì)Java卡不同性能指標(biāo)的自適應(yīng)測(cè)試方法,包括如下步驟1)測(cè)試終端向Java卡發(fā)送用于性能測(cè)試的JavaCardApplet應(yīng)用命令;2)在測(cè)試終端設(shè)置所需要的精度;3)測(cè)試終端將循環(huán)測(cè)試次數(shù)為設(shè)置0,測(cè)出Java卡執(zhí)行所述JavaCardApplet時(shí)間后,將循環(huán)測(cè)試次數(shù)為設(shè)置1,測(cè)出Java卡所述JavaCardApplet執(zhí)行時(shí)間;4)利用公式,測(cè)試終端計(jì)算得出適合該性能測(cè)試的合理循環(huán)測(cè)試次數(shù)C;5)測(cè)試終端將循環(huán)測(cè)試次數(shù)設(shè)為C,測(cè)出Java卡經(jīng)過C次循環(huán)后所述JavaCardApplet的執(zhí)行時(shí)間;6)根據(jù)公式;測(cè)試終端計(jì)算得出測(cè)試函數(shù)的執(zhí)行時(shí)間平均值,所述即為最終測(cè)試結(jié)果,在Java卡性能測(cè)試中能夠?qū)ρh(huán)次數(shù)進(jìn)行自適應(yīng)取值且智能化執(zhí)行測(cè)試過程,不受測(cè)試環(huán)境變動(dòng)的影響等優(yōu)點(diǎn)。
文檔編號(hào)G06F11/22GK102662806SQ20121004926
公開日2012年9月12日 申請(qǐng)日期2012年2月29日 優(yōu)先權(quán)日2012年2月29日
發(fā)明者張凌飛, 李瑩, 殷中科 申請(qǐng)人:浙江大學(xué)