一種智能卡的測試方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種智能卡的測試方法和裝置。
【背景技術(shù)】
[0002]金融IC卡已成為金融支付領(lǐng)域的重要發(fā)展趨勢。金融IC卡安全性高、信息存儲容量大,并且相比較磁條卡,在防范銀行卡交易欺詐風(fēng)險和提升金融支付工具附加功能等方面有得天獨厚的優(yōu)勢,因此越來越得到銀行的青睞。
[0003]金融IC卡在正式商用前,必須對卡片操作系統(tǒng)進行嚴(yán)格的內(nèi)部測試,測試內(nèi)容主要包括未知指令安全性檢測、特定算法正確性檢測、文件系統(tǒng)訪問權(quán)限控制檢測、指令一致性檢測、個人化后文件操作及訪問控制檢測、多應(yīng)用安全性檢測、卡片壽命檢測等,而這些檢測需要通過讀卡器對卡片發(fā)送數(shù)以百萬計的APDU指令實現(xiàn),通過人工逐個發(fā)送顯然是不現(xiàn)實的,因此,需要一套具有高度智能化的檢測工具實現(xiàn)對以上測試點的檢測。
[0004]現(xiàn)已有的測試工具只針對單一規(guī)范,通用性不足。一般根據(jù)ISO 7816-4規(guī)范和特定智能卡操作系統(tǒng)設(shè)計測試用例,不涉及各行業(yè)規(guī)范,例如對金融、社??y試不夠全面。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種智能卡的測試方法和裝置,要解決的技術(shù)問題是如何提高測試的通用性。
[0006]為解決上述技術(shù)問題,本發(fā)明提供了如下技術(shù)方案:
[0007]—種智能卡的測試方法,包括:
[0008]輸出預(yù)先存儲的指令信息,其中所述指令信息為用于測試智能卡的指令信息;
[0009]接收外部利用所述測試指令信息編輯得到的測試代碼;
[0010]利用所述測試代碼對所述智能卡進行測試。
[0011]其中,所述利用所述測試代碼對所述智能卡進行測試,包括:
[0012]當(dāng)同時對至少兩個智能卡發(fā)送測試代碼時,向所述至少兩個智能卡中的第一智能卡發(fā)送測試代碼時,其中所述測試代碼包括第一智能卡的標(biāo)識信息;
[0013]以及,接收所述第一智能卡反饋的測試結(jié)果,其中所述測試結(jié)果包括所述第一智能卡的標(biāo)識信息。
[0014]其中,在接收所述第一智能卡反饋的測試結(jié)果之后,還包括:
[0015]根據(jù)所述第一智能卡的反饋結(jié)果,獲取所述至少兩個智能卡中的第二智能卡的測試指令;
[0016]向所述至少兩個智能卡中的第二智能卡發(fā)送測試代碼時,其中所述測試代碼包括第二智能卡的標(biāo)識信息;
[0017]以及,接收所述第二智能卡反饋的測試結(jié)果,其中所述測試結(jié)果包括所述第二智能卡的標(biāo)識信息。
[0018]其中,在利用所述測試代碼對所述智能卡進行測試之前,還包括:
[0019]讀取智能卡連接的讀卡器的接口的類型信息;
[0020]根據(jù)讀卡器的類型,確定所述測試代碼的發(fā)送策略;
[0021 ] 根據(jù)所述發(fā)送策略,通過所述讀卡器發(fā)送所述測試代碼。
[0022]—種智能卡的測試裝置,包括:
[0023]輸出模塊,用于輸出預(yù)先存儲的指令信息,其中所述指令信息為用于測試智能卡的指令信息;
[0024]接收模塊,用于接收外部利用所述測試指令信息編輯得到的測試代碼;
[0025]測試模塊,用于利用所述測試代碼對所述智能卡進行測試。
[0026]其中,所述測試模塊包括:
[0027]第一發(fā)送單元,用于當(dāng)同時對至少兩個智能卡發(fā)送測試代碼時,向所述至少兩個智能卡中的第一智能卡發(fā)送測試代碼時,其中所述測試代碼包括第一智能卡的標(biāo)識信息;
[0028]第一接收單元,用于接收所述第一智能卡反饋的測試結(jié)果,其中所述測試結(jié)果包括所述第一智能卡的標(biāo)識信息。
[0029]其中,所述測試模塊還包括:
[0030]獲取單元,用于在接收所述第一智能卡反饋的測試結(jié)果之后,根據(jù)所述第一智能卡的反饋結(jié)果,獲取所述至少兩個智能卡中的第二智能卡的測試指令;
[0031]第二發(fā)送單元,用于向所述至少兩個智能卡中的第二智能卡發(fā)送測試代碼時,其中所述測試代碼包括第二智能卡的標(biāo)識信息;
[0032]第二接收單元,用于接收所述第二智能卡反饋的測試結(jié)果,其中所述測試結(jié)果包括所述第二智能卡的標(biāo)識信息。
[0033]其中,所述裝置還包括:
[0034]讀取模塊,用于在利用所述測試代碼對所述智能卡進行測試之前,讀取智能卡連接的讀卡器的接口的類型信息;
[0035]確定模塊,用于根據(jù)讀卡器的類型,確定所述測試代碼的發(fā)送策略;
[0036]其中,所述測試模塊根據(jù)所述發(fā)送策略,通過所述讀卡器發(fā)送所述測試代碼。
[0037]本發(fā)明提供的實施例,通過輸出預(yù)先存儲的指令信息,允許用戶使用腳本語言所支持的內(nèi)部指令組合新的外部指令,使能夠根據(jù)不同的應(yīng)用場景或者行業(yè)規(guī)范,設(shè)計不同的測試腳本對智能卡操作系統(tǒng)進行測試,解決了以前測試工具只支持單一規(guī)范和通用性不足的缺陷。
【附圖說明】
[0038]圖1為本發(fā)明提供的智能卡的測試方法實施例的流程圖;
[0039]圖2為本發(fā)明提供的智能卡的測試裝置實施例的結(jié)構(gòu)圖。
【具體實施方式】
[0040]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對本發(fā)明作進一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0041]圖1為本發(fā)明提供的智能卡的測試方法實施例的流程圖。圖1所示方法包括:
[0042]步驟101、輸出預(yù)先存儲的指令信息,其中所述指令信息為用于測試智能卡的指令信息;
[0043]步驟102、接收外部利用所述測試指令信息編輯得到的測試代碼;
[0044]步驟103、利用所述測試代碼對所述智能卡進行測試。
[0045]本發(fā)明提供的實施例,通過輸出預(yù)先存儲的指令信息,允許用戶使用腳本語言所支持的內(nèi)部指令組合新的外部指令,使能夠根據(jù)不同的應(yīng)用場景或者行業(yè)規(guī)范,設(shè)計不同的測試腳本對智能卡操作系統(tǒng)進行測試,解決了以前測試工具只支持單一規(guī)范和通用性不足的缺陷。
[0046]下面對本發(fā)明提供的方法作進一步說明:
[0047]舉例來說,現(xiàn)在測試工具提供以下幾個函數(shù)
[0048]*ADD Pl [IN],P2 [IN],P3 [OUT],將兩個 16 進制的數(shù) Pl,P2 相加,結(jié)果放入 P3
[0049]*HT0D Pl [IN],P2 [OUT],將16進制的數(shù)Pl轉(zhuǎn)換為10進制的數(shù)P2
[0050]*DT0H Pl [IN],P2 [OUT],將10進制的數(shù)Pl轉(zhuǎn)換為16進制的數(shù)P2
[0051]如果用戶需要做兩個十進制數(shù)的加法,則必須先調(diào)用DTOH將10進制數(shù)轉(zhuǎn)換為16進制數(shù),然后通過ADD做加法,最后通過HTOD再將結(jié)果轉(zhuǎn)換為10進制數(shù),比較麻煩,用戶可以編寫一個ADDH指令放到工具/Iib目錄下,然后直接調(diào)用*ADDH Pl [IN],P2 [IN],P3 [OUT]將兩個10進制數(shù)相加,具體ADDH指令編寫方式如下:
[0052]ADDH.ts
[0053]#define ADDH pi[in], p2[in], p3[out]
[0054]*DT0H$pl, $pl
[0055]*DT0H$p2, $p2
[0056]*ADD$pl, $p2, $p3
[0057]*HT0D$p3, $p3
[0058]完成上述文件編寫后,用戶就可以直接調(diào)用*ADDH Pl [IN], P2 [IN], P3 [OUT] 了,該指令就是用戶通過內(nèi)部指令編寫的新外部指令。
[0059]在實際應(yīng)用中,可以更新本地存儲的指令信息,方便用戶開發(fā)新的測試代碼。
[0060]隨著技術(shù)的發(fā)展,目前需要多卡同時操作的應(yīng)用場景,因此允許測試工具同時對多張卡片發(fā)送指令,且能相互共享卡片返回數(shù)據(jù)。
[0061]其中,所述利用所述測試代碼對所述智能卡進行測試,包括:
[0062]當(dāng)同時對至少兩個智能卡發(fā)送測試代碼時,向所述至少兩個智能卡中的第一智能卡發(fā)送測試代碼時,其中所述測試代碼包括第一智能卡的標(biāo)識信息;
[0063]以及,接收所述第一智能卡反饋的測試結(jié)果,其中所述測試結(jié)果包括所述第一智能卡的標(biāo)識信息。
[0064]進一步的,在接收所述第一智能卡反饋的測試結(jié)果之后,還包括:
[0065]根據(jù)所述第一智能卡的反饋結(jié)果,獲取所述至少兩個智能卡中的第二智能卡的測試指令;
[0066]向所述至少兩個智能卡中的第二智能卡發(fā)送測試代碼時,其中所述測試代碼包括第二智能卡的標(biāo)識信息;
[0067]以及,接收所述第二智能卡反饋的測試結(jié)果,其中所述測試結(jié)果包括所述第二智能卡的標(biāo)識信息。
[0068]發(fā)送給不同卡片數(shù)據(jù)有不同的指令,例如給卡片A發(fā)送則為*APDUA
[0069]給卡片B發(fā)送指令則為*APDUB,界面上也提供了打開讀卡器A,B,C的相對應(yīng)按鈕。
[0070]共享卡片的返回數(shù)據(jù)的主要應(yīng)用場景為多卡