<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  關(guān)于智能卡的自動(dòng)化測試平臺設計

                  文章出處:http://psychicreadingswithdeb.com 作者:王景存 ,蘇 鵬&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年10月08日

                  [文章內容簡(jiǎn)介]:傳統的智能卡測試平臺需要人工干預,嚴重影響測試效率,因此難以滿(mǎn)足智能卡行業(yè)的測試需求。針對這個(gè)問(wèn)題,在此提出一種新的解決方案。該方案以PC/SC為編程接口,實(shí)現了測試平臺與智能卡的通信,利用擴展的TCL解釋器定義了一種新的測試語(yǔ)言ATP,它包含TCL內置命令和應用程序的相關(guān)命令。測試人員可以利用ATP語(yǔ)言編寫(xiě)測試用例,在此平臺上完成對智能卡的自動(dòng)化測試。該方案已經(jīng)得到實(shí)際驗證。

                      引 言

                      隨著(zhù)智能卡在金融、電信、移動(dòng)通信、醫療保險、付費電視等領(lǐng)域應用的迅速增長(cháng),其可靠性要求越來(lái)越高,而針對智能卡模塊的測試已經(jīng)成為必不可少的質(zhì)量保證手段。自動(dòng)化測試不需要人工干預,能提高測試效率,受到更多重視和應用。在發(fā)展自動(dòng)化測試的過(guò)程中,一個(gè)高效的自動(dòng)化測試平臺是其基本保障。根據智能卡的應用現狀和市場(chǎng)需求,本設計用TCL語(yǔ)言和C語(yǔ)言聯(lián)合編程的方法,以PC/SC為編程接口,實(shí)現了智能卡的測試平臺,能夠對智能卡進(jìn)行質(zhì)量和性能的測試。

                      1 測試系統結構

                      具有測試功能的系統結構如圖1所示。測試系統一般由測試平臺、讀/寫(xiě)器和智能卡三個(gè)部分組成。測試平臺運行測試腳本,并對從智能卡返回的結果進(jìn)行處理。智能卡內部有被測程序,響應測試平臺發(fā)來(lái)的命令,返回測試數據。讀/寫(xiě)器提供測試平臺和智能卡的接口。這里的研究重點(diǎn)是測試平臺。

                      2 測試平臺的設計思路

                      測試平臺軟件由兩個(gè)部分組成,即界面程序和通信軟件程序,如圖2所示。界面程序提供一個(gè)友好的圖形畫(huà)面,接受用戶(hù)指令,如腳本輸入,按鈕響應等。界面將用戶(hù)的任務(wù)轉換為內部指令,然后由通信軟件程序具體實(shí)施,而通信軟件程序負責與USB讀卡器通信。下面分別介紹界面程序和通信軟件程序的實(shí)現原理。

                      2.1 界面程序

                      界面程序分為三層,頂層為腳本層,用于支持ATP語(yǔ)言。ATP并不是一種全新的語(yǔ)言,是從TCL語(yǔ)言口 擴展而來(lái),針對ATP開(kāi)辟的命令集,它包括TCL基本命令和應用程序相關(guān)的擴展命令。TCL基本指令的使用方法可以參考文獻[1,2],擴展命令是TCL專(zhuān)門(mén)針對智能卡的測試而擴展的。

                      中間層是根據應用需求而擴展的TCI 解釋器,它包含TCI 標準庫和與底層接口程序有關(guān)的TCL擴展庫。ATP的基本部分由TCL語(yǔ)言解釋器調用TCL標準庫來(lái)執行;ATP的擴展部分由擴展的TCL解釋器調用TCL擴展庫執行。

                      頂層和中間層說(shuō)明了TCI 即是一種腳本語(yǔ)言也是一個(gè)解釋器。底層是接口程序,提供與通信軟件程序的接口,負責發(fā)送命令和返回狀態(tài)。


                      TCL的標準命令 是TCL自帶的,而與應用程序相關(guān)的特殊命令需要用C代碼去擴展,下面詳細介紹如何擴展TCL命令。使用TCL之前,應用程序必須首先創(chuàng )建TCL解釋器創(chuàng )建標準的命令解釋器,然后可以調用Tcl—CreateCommand過(guò)程使用用戶(hù)自定義命令來(lái)擴展解釋器,它的原型是:

                  Tcl—CreateCom mand (interp,cmdName,proc,cli—entData,deleteProc)其中:interp為創(chuàng )建的解釋器;cmdName為創(chuàng )建的命令名字;proc為與命令相對應的函數;clientData為一個(gè)字長(cháng)的值,通常指向一個(gè)專(zhuān)用數據結構;deleteProc為注銷(xiāo)命令的函數名,如果其為空,則在注銷(xiāo)命令前不調用任何函數。調用Tcl—CreateCommand時(shí),擴展命令name就會(huì )和name—tcl聯(lián)系起來(lái);執行name命令時(shí),會(huì )進(jìn)入n am e— tcl函數處理name命令。

                      創(chuàng )建完程序自定義命令后,應用程序進(jìn)入死循環(huán),等到命令后就傳遞給解釋器。調用Tcl—Eval(interp,script),通過(guò)script的內容知道命令的類(lèi)型后,選擇在相應的過(guò)程函數中進(jìn)行計算。

                      通信軟件程序的執行就是在過(guò)程函數里面被調用,這樣就實(shí)現了界面程序與通信軟件程序的接口。

                  第1頁(yè)第2頁(yè)

                      2.2 通信軟件程序

                      通信軟件程序遵循PC/SC規范 。PC/SC規范是由PC/SC工作組提出的。PC/SC工作組是一個(gè)主要由智能卡廠(chǎng)商和計算機廠(chǎng)商組成的委員會(huì ),主要成員有微軟、蘋(píng)果、雅斯拓、金普斯、英飛凌、菲利普等。PC/SC規范是一個(gè)基于Windows平臺的標準用戶(hù)接口(API)。它獨立于硬件設備,使得應用程序的開(kāi)發(fā)人員不必考慮由于硬件改變而引起的應用程序變更,從而降低了軟件開(kāi)發(fā)成本。

                      PC/SC規范包含大量Scard為前綴的API,可以在winscard.h中找到其原型。應用程序需要包含win—scard.1ib,所有函數的正常返回值都是SCARD—S—SUCCESS,在這些函數中常用的只有幾個(gè)。與智能卡的訪(fǎng)問(wèn)流程如下:

                      (1)初始化函數中調用SCardEstablishContext,建立資源管理器的上下文,獲得設備的連接句柄,若返回SCARD— S— SUCCESS,則調用成功;調用ScardLis—tReaders獲得系統中安裝的讀卡器列表,調用成功則獲取聯(lián)機的讀卡器名字。

                      (2)在響應函數中調用ScardConnect與卡片建立連接,此時(shí)能與卡片通信。

                      (3)與卡片連接后通過(guò)調用SCardTransmit來(lái)發(fā)送命令,得到由卡片返回的數據。

                      (4)卡片處于連接狀態(tài)時(shí),可以調用SCardRecon—nect函數使卡片復位。

                      (5)完成了與卡片的命令發(fā)收后,調用SCardDis—connect函數斷開(kāi)與智能卡的連接。

                      項目已經(jīng)實(shí)現以上功能的編程接口,而且利用類(lèi)的方法進(jìn)行了封裝。

                      3 測試平臺的使用

                      3.1 測試流程

                      腳本的制定還是使用人工方式,測試人員通過(guò)測試平臺完成測試。自動(dòng)化測試不需要人工干預,縮短了測試時(shí)間。因而測試過(guò)程采用人工測試和自動(dòng)化測試相結合的方法進(jìn)行。

                      用戶(hù)可以編寫(xiě)測試腳本,快速發(fā)送測試命令和收集測試數據,可以單次執行或者循環(huán)執行,當滿(mǎn)足終止條件時(shí),腳本執行結束,生成測試報告。圖5為測試流程圖。

                      3.2 功能測試

                      測試平臺能夠以APDU為基本單元完成針對智能卡的功能測試,下面分別對其進(jìn)行介紹。

                      3.2.1 測試基本單元

                      測試平臺與智能卡通信的基本單元是APDUL9 。應用層以APDU為單位進(jìn)行有序的數據交換,應用層交換的每一步都以命令應答對組成。APDU 的命令應答對由以下部分組成:

                      命令APDU 包含一個(gè)必備的四字節頭(CLA,INS,P1,P2)和可選的命令體(Lc,Data,Le)。命令頭為命令的編碼,Lc為體內數據(data)長(cháng)度,Data為發(fā)送的數據,Le為應答APDU數據字段的最大字節數。應答APDU 由可選長(cháng)度體和兩字節狀態(tài)字SW1一SW2組成。其中,體內的字節數由命令APDU 的Le指出。Data為卡片接受命令APDU 后返回的數據。尾部狀態(tài)字指出卡的處理狀態(tài)。其中,61xx和9000為正常處理,6lxx的含義SW2指出仍然有效的應答字節數,9000代表正常處理。

                      3.2.2 單元測試

                      同樣,智能卡內部程序也是以APDU為單位實(shí)現的,因此單元測試的對象就是APDU。發(fā)送一個(gè)APDU給智能卡,通過(guò)智能卡內部程序執行完后返回狀態(tài)字,判斷執行結果的正確與否。命令之間存在著(zhù)相互依賴(lài)關(guān)系,因此命令之間通常要相互配合才能完成測試任務(wù)。

                      3.2.3 集成測試

                      集成測試主要是通過(guò)命令之問(wèn)有序地執行完成智能卡的功能測試,根據不同的測試需要可以對測試腳本進(jìn)行分類(lèi),例如FLASH 的讀/寫(xiě),加密模塊的測試等。按照需要整理好相應的測試腳本后就可以在測試平臺上運行,通過(guò)腳本與智能卡程序的互測,達到測試目的。測試平臺支持自動(dòng)化測試,所以可以在測試平臺上不間斷地執行測試腳本,測試人員不需要實(shí)時(shí)跟蹤,只需要關(guān)心最后的測試結果,通過(guò)測試結果可以發(fā)現問(wèn)題,解決問(wèn)題。

                      4 結 語(yǔ)

                      該系統已經(jīng)通過(guò)測試,并且得到初步驗證。由于針對智能卡的測試項很多,通常需要多種測試工具的軟件和硬件設備交互使用,測試人員要熟悉各種軟件工具,相應地降低了工作效率。如果能將各種工具軟件集成在一起,形成一個(gè)多功能的測試平臺,支持多種通信接口的讀卡器,支持多種腳本格式,那么這將是下一步的工作重點(diǎn)。

                  第1頁(yè)第2頁(yè)

                  本文關(guān)鍵詞:智能卡,自動(dòng)化測試,TCL
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>