智能卡的自動(dòng)化測試平臺(tái)設(shè)計(jì)
PC/SC規(guī)范包含大量Scard為前綴的API,可以在 winscard.h中找到其原型。應(yīng)用程序需要包含win—scard.1ib,所有函數(shù)的正常返回值都是SCARD—S—SUCCESS,在這些函數(shù)中常用的只有幾個(gè)。與智能卡的訪問流程如下:
(1)初始化函數(shù)中調(diào)用SCardEstablishContext,建立資源管理器的上下文,獲得設(shè)備的連接句柄,若返回SCARD— S— SUCCESS,則調(diào)用成功;調(diào)用ScardLis—tReaders獲得系統(tǒng)中安裝的讀卡器列表,調(diào)用成功則獲取聯(lián)機(jī)的讀卡器名字。
(2)在響應(yīng)函數(shù)中調(diào)用ScardConnect與卡片建立連接,此時(shí)能與卡片通信。
(3)與卡片連接后通過調(diào)用SCardTransmit來發(fā)送命令,得到由卡片返回的數(shù)據(jù)。
(4)卡片處于連接狀態(tài)時(shí),可以調(diào)用SCardRecon—nect函數(shù)使卡片復(fù)位。
(5)完成了與卡片的命令發(fā)收后,調(diào)用SCardDis—connect函數(shù)斷開與智能卡的連接。
項(xiàng)目已經(jīng)實(shí)現(xiàn)以上功能的編程接口,而且利用類的方法進(jìn)行了封裝。
3 測試平臺(tái)的使用
3.1 測試流程
腳本的制定還是使用人工方式,測試人員通過測試平臺(tái)完成測試。自動(dòng)化測試不需要人工干預(yù),縮短了測試時(shí)間。因而測試過程采用人工測試和自動(dòng)化測試相結(jié)合的方法進(jìn)行。
用戶可以編寫測試腳本,快速發(fā)送測試命令和收集測試數(shù)據(jù),可以單次執(zhí)行或者循環(huán)執(zhí)行,當(dāng)滿足終止條件時(shí),腳本執(zhí)行結(jié)束,生成測試報(bào)告。圖5為測試流程圖。
3.2 功能測試
測試平臺(tái)能夠以APDU為基本單元完成針對(duì)智能卡的功能測試,下面分別對(duì)其進(jìn)行介紹。
3.2.1 測試基本單元
測試平臺(tái)與智能卡通信的基本單元是APDUL9 。應(yīng)用層以APDU為單位進(jìn)行有序的數(shù)據(jù)交換,應(yīng)用層交換的每一步都以命令應(yīng)答對(duì)組成。APDU的命令應(yīng)答對(duì)由以下部分組成:命令A(yù)PDU包含一個(gè)必備的四字節(jié)頭(CLA,INS,P1,P2)和可選的命令體(Lc,Data,Le)。命令頭為命令的編碼,Lc為體內(nèi)數(shù)據(jù)(data)長度,Data為發(fā)送的數(shù)據(jù),Le為應(yīng)答APDU數(shù)據(jù)字段的最大字節(jié)數(shù)。應(yīng)答APDU由可選長度體和兩字節(jié)狀態(tài)字SW1一SW2組成。其中,體內(nèi)的字節(jié)數(shù)由命令A(yù)PDU 的Le指出。Data為卡片接受命令A(yù)PDU后返回的數(shù)據(jù)。尾部狀態(tài)字指出卡的處理狀態(tài)。其中,61xx和9000為正常處理,6lxx的含義SW2指出仍然有效的應(yīng)答字節(jié)數(shù),9000代表正常處理。
3.2.2 單元測試
圖5 測試流程圖
同樣,智能卡內(nèi)部程序也是以APDU為單位實(shí)現(xiàn)的,因此單元測試的對(duì)象就是APDU。發(fā)送一個(gè)APDU給智能卡,通過智能卡內(nèi)部程序執(zhí)行完后返回狀態(tài)字,判斷執(zhí)行結(jié)果的正確與否。命令之間存在著相互依賴關(guān)系,因此命令之間通常要相互配合才能完成測試任務(wù)。
3.2.3 集成測試
集成測試主要是通過命令之問有序地執(zhí)行完成智能卡的功能測試,根據(jù)不同的測試需要可以對(duì)測試腳本進(jìn)行分類,例如FLASH 的讀/寫,加密模塊的測試等。按照需要整理好相應(yīng)的測試腳本后就可以在測試平臺(tái)上運(yùn)行,通過腳本與智能卡程序的互測,達(dá)到測試目的。測試平臺(tái)支持自動(dòng)化測試,所以可以在測試平臺(tái)上不間斷地執(zhí)行測試腳本,測試人員不需要實(shí)時(shí)跟蹤,只需要關(guān)心最后的測試結(jié)果,通過測試結(jié)果可以發(fā)現(xiàn)問題,解決問題。
4 結(jié) 語
該系統(tǒng)已經(jīng)通過測試,并且得到初步驗(yàn)證。由于針對(duì)智能卡的測試項(xiàng)很多,通常需要多種測試工具的軟件和硬件設(shè)備交互使用,測試人員要熟悉各種軟件工具,相應(yīng)地降低了工作效率。如果能將各種工具軟件集成在一起,形成一個(gè)多功能的測試平臺(tái),支持多種通信接口的讀卡器,支持多種腳本格式,那么這將是下一步的工作重點(diǎn)。
評(píng)論