關於智慧卡的自動化測試平臺設計

2021-01-07 RFID世界網

  引 言

  隨著智慧卡在金融、電信、移動通信、醫療保險、付費電視等領域應用的迅速增長,其可靠性要求越來越高,而針對智慧卡模塊的測試已經成為必不可少的質量保證手段。自動化測試不需要人工幹預,能提高測試效率,受到更多重視和應用。在發展自動化測試的過程中,一個高效的自動化測試平臺是其基本保障。根據智慧卡的應用現狀和市場需求,本設計用TCL語言和C語言聯合編程的方法,以PC/SC為編程接口,實現了智慧卡的測試平臺,能夠對智慧卡進行質量和性能的測試。

  1 測試系統結構

  具有測試功能的系統結構如圖1所示。測試系統一般由測試平臺、讀/寫器和智慧卡三個部分組成。測試平臺運行測試腳本,並對從智慧卡返回的結果進行處理。智慧卡內部有被測程序,響應測試平臺發來的命令,返回測試數據。讀/寫器提供測試平臺和智慧卡的接口。這裡的研究重點是測試平臺。


  2 測試平臺的設計思路

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


圖2是測試平臺的軟體結構。

 


圖3界面程序

  2.1 界面程序

  界面程序分為三層,頂層為腳本層,用於支持ATP語言。ATP並不是一種全新的語言,是從TCL語言口 擴展而來,針對ATP開闢的命令集,它包括TCL基本命令和應用程式相關的擴展命令。TCL基本指令的使用方法可以參考文獻[1,2],擴展命令是TCL專門針對智慧卡的測試而擴展的。

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

  頂層和中間層說明了TCI 即是一種腳本語言也是一個解釋器。底層是接口程序,提供與通信軟體程序的接口,負責發送命令和返回狀態。


圖4顯示了TCI 與應用程式的調用關係。

  TCL的標準命令 是TCL自帶的,而與應用程式相關的特殊命令需要用C代碼去擴展,下面詳細介紹如何擴展TCL命令。使用TCL之前,應用程式必須首先創建TCL解釋器創建標準的命令解釋器,然後可以調用Tcl—CreateCommand過程使用用戶自定義命令來擴展解釋器,它的原型是:
Tcl—CreateCom mand (interp,cmdName,proc,cli—entData,deleteProc)其中:interp為創建的解釋器;cmdName為創建的命令名字;proc為與命令相對應的函數;clientData為一個字長的值,通常指向一個專用數據結構;deleteProc為註銷命令的函數名,如果其為空,則在註銷命令前不調用任何函數。調用Tcl—CreateCommand時,擴展命令name就會和name—tcl聯繫起來;執行name命令時,會進入n am e— tcl函數處理name命令。

  創建完程序自定義命令後,應用程式進入死循環,等到命令後就傳遞給解釋器。調用Tcl—Eval(interp,script),通過script的內容知道命令的類型後,選擇在相應的過程函數中進行計算。

  通信軟體程序的執行就是在過程函數裡面被調用,這樣就實現了界面程序與通信軟體程序的接口。

  2.2 通信軟體程序

  通信軟體程序遵循PC/SC規範 。PC/SC規範是由PC/SC工作組提出的。PC/SC工作組是一個主要由智慧卡廠商和計算機廠商組成的委員會,主要成員有微軟、蘋果、雅斯拓、金普斯、英飛凌、菲利普等。PC/SC規範是一個基於Windows平臺的標準用戶接口(API)。它獨立於硬體設備,使得應用程式的開發人員不必考慮由於硬體改變而引起的應用程式變更,從而降低了軟體開發成本。

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

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

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

  (3)與卡片連接後通過調用SCardTransmit來發送命令,得到由卡片返回的數據。

  (4)卡片處於連接狀態時,可以調用SCardRecon—nect函數使卡片復位。

  (5)完成了與卡片的命令發收後,調用SCardDis—connect函數斷開與智慧卡的連接。

  項目已經實現以上功能的編程接口,而且利用類的方法進行了封裝。

  3 測試平臺的使用

  3.1 測試流程

  腳本的制定還是使用人工方式,測試人員通過測試平臺完成測試。自動化測試不需要人工幹預,縮短了測試時間。因而測試過程採用人工測試和自動化測試相結合的方法進行。

  用戶可以編寫測試腳本,快速發送測試命令和收集測試數據,可以單次執行或者循環執行,當滿足終止條件時,腳本執行結束,生成測試報告。圖5為測試流程圖。

  3.2 功能測試

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

  3.2.1 測試基本單元

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

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

  3.2.2 單元測試


圖5 測試流程圖

  同樣,智慧卡內部程序也是以APDU為單位實現的,因此單元測試的對象就是APDU。發送一個APDU給智慧卡,通過智慧卡內部程序執行完後返回狀態字,判斷執行結果的正確與否。命令之間存在著相互依賴關係,因此命令之間通常要相互配合才能完成測試任務。

  3.2.3 集成測試

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

  4 結 語

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

1

相關焦點

  • 智慧卡作業系統的測試技術
    引 言     具有穩定、可靠的卡內作業系統是智慧卡正常工作的基礎,智慧卡作業系統控制外界與智慧卡之間的通信,管理卡片的存儲空間,並且在卡內對於各種命令進行處理,所以在COS 開發過程中有必要對COS 進行充分且全面的測試。
  • 接口自動化測試與Tesla自動化測試平臺
    引言我們今天要講的tesla,不是電動汽車,而是字節跳動內部的服務端自動化測試平臺——Tesla。在服務端測試中,接口測試是非常重要的。 關於接口測試接口的定義如下:軟體系統中,不同的組成部分的銜接約定。
  • 做好自動化測試,少不了這麼強大的平臺!
    9.缺點:基於瀏覽器的操作可能存在漏洞,相對沒有桌面軟體便捷穩定,抓包困難,暫時不適合做枚舉測試。  無論選擇框架還是平臺,歸根到底只是幫助我們更好完成自動化工具,自動化測試體系的核心資產是測試用例,是測試覆蓋率,而不是無用的炫技的代碼堆砌出來的東西。
  • 臺灣欽揚邀您相約2016亞洲智慧卡展
    2016亞洲智慧卡技術與採購展覽會,是一個關於智慧卡完整產業鏈、RFID(無線射頻識別)技術、智慧卡、電子標籤生產解決方案、智慧卡讀寫器開發新技術、多功能卡應用技術、非接觸的支付技術、短距離通訊技術及其智慧卡技術在電信、移動、公交、社保、金融、公安、校園、石油、物流、製造業、數位電視、智能建築、公用事業等一卡通領域的全面解決方案和採購洽談的國際盛會。
  • 實戰 | UI 調度自動化測試平臺(基於 Python)
    測試開發之 UI 自動化測試平臺最佳實踐,進階學習文末加群!
  • ​序|自動化測試概述
    UI層自動化基於UI層的自動化測試框架要複雜很多,從平臺種類來講,有Windows,Linux,Android,Ios,Web,還有最新的小程序等等,下面會簡單的和大家捋一遍主流UI層自動化框架的原理、架構以及跨平臺能力。AppiumAppium是一款開源的自動化測試工具,支持IOS、Android、Windows和Mac應用。
  • 自動化測試框架結構圖
    點擊上方"AllTests軟體測試",設為星標第一時間關注技術乾貨!
  • 什麼是自動化測試?
    二、 自動化測試的基本流程以及注意事項如圖1所示,自動化測試的基本流程主要包含需求分析,自動化測試計劃設計,用例設計,自動化測試框架設計與開發,腳本開發,環境搭建,整體聯調運行等。1) 需求分析:分析哪些點需要進行自動化,在需求分析階段參與進來,在被測代碼開發階段輸出依賴點,保證自動化開發時效率更高,代碼改動更小;2) 用例設計:建議先根據測試點設計所有用例,然後分別查看是否可以實現自動化,最後正向補充可能遺漏的自動化場景;3) 自動化測試框架設計與開發:自動化測試框架與軟體架構類似,定義了在使用該套腳本時需要調用哪些文件
  • Testin雲測試:全平臺自動化測試能力,編寫效率翻兩番,維護成本降低...
    陳冠誠表示:「隨著企業數位化發展,應用軟體和系統的功能呈指數級增長,軟體更新迭代頻率也越來越高,通過增加有限的手工測試人員已無法滿足業務需求。為了保證軟體和系統的質量和測試效率,自動化測試在其中扮演著越來越重要的角色。」
  • 世博新語:「智慧卡」英語怎麼說
    香港在智慧卡的推廣和應用上一直走在世界前列,現在世博香港館裡,遊客也能體驗智慧卡帶來的方便生活,出行、上網、身份驗證,小小一張智慧卡都可以搞定。說到「智慧卡」,英語(論壇)中是怎麼表述的呢?我們知道「人工智慧」是artificialintelligence,那麼「智慧卡」是不是什麼intelligent card之類?其實不是哦,這種叫做smart card:  A smart card is a pocket-sized card with embeddedintegrated circuits.
  • 自動化測試基礎篇:Selenium 框架設計(POM)
    Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。本文介紹selenium的框架設計。自動化測試框架1.什麼是自動化測試框架簡單來說,自動化測試框架就是由一些標準,協議,規則組成,提供腳本運行的環境。
  • 基於自動化用例的精準測試探索
    , 黑盒測試佔據了大部分的測試,即便是接口測試,也是基於場景的用例設計,這種測試方法完全依賴於測試人員的能力,經驗和業務熟悉度,而網際網路行業的一大特點就是人員流動性高,這使得線上質量經常是「靠天吃飯」。
  • 2020年十大優秀的自動化測試工具
    Katalon StudioKatalon Studio是功能強大且全面的自動化解決方案,用於測試API,Web,移動和桌面應用程式測試。它還為這些類型的測試提供了豐富的功能集,並支持包括Windows,macOS和Linux在內的多個平臺。
  • AI吃雞遊戲,自動化測試
    軟體測試有一個經典的環節,叫設計測試用例。什麼意思呢?簡單來說,你不是要花式折騰程序嗎,花式虐狗還得先寫一本《花式虐狗手冊》呢,測試用例就是花式折騰程序的手冊。測試用例可不好設計,測試用例最希望的目標是做到路徑全覆蓋,也就是把程序所有可能的流程都測一遍。
  • 為什麼需要前端自動化測試呢?
    接下來我們進入正題,向大家介紹前端自動化測試前端自動化測試的種類共四類:單元測試單元測試是最基礎的自動化測試,用來檢測項目當中的最小可測單元,例如工具函數、基礎組件等集成測試在單元測試的基礎上,不同功能集成在一起,驗證整體功能ui測試並不是只對ui設計效果的驗證
  • 自動化測試學習路線
    當然呢,我很能理解小白的想法,因為平時經常和一些剛入門自動化測試的同行交流,也很深入的了解到他們的一些困惑。大部分小白想的無非是以下幾點問題:1.自動化測試好學嗎?2.不學/不寫代碼能做自動化測試嗎?3.怎樣學習自動化測試?4.學自動化測試要先學習哪個方向?學ui自動化?還是接口自動化?好像App自動化也比較火?要麼再來個小程序自動化?
  • Appium 必須掌握的移動端自動化測試框架
    移動應用在企業中的地位越來越重要,為了更好將產品推向市場,企業對移動軟體測試的要求越來越高,為了完成大量的高強度移動端的測試需求,掌握高校的移動自動化測試工具則成為每一個軟體測試工程師必備的要求。這裡為大家詳細介紹一下Appium——一款軟體測試工程師必須掌握的開源測試自動化框架。
  • 自動化測試面試題
    你比較熟悉那種自動化測試工具?2. 你在你以前工作中是如何使用自動化測試工具的?3. 介紹一下你在利用自動化測試工具的過程中遇到的一些問題4. 你是如何計劃自動化測試的?5. 自動化測試能提高測試效率嗎?6. 什麼是data-driven automoation(數據啟動自動化)?7. 測試自動化的主要特徵有哪些?8.
  • 技術中臺之DevOps自動化測試實踐
    Devops作為技術中臺的重要組成部分之一,其下「自動化測試」功能也是不可或缺的一環,如何結合DevOps自身提供的自動化測試功能,做好DevOps的接口自動化呢?首先要先了解DevOps為自動化測試提供了哪些功能,如何使用該功能進行自動化測試,以及如何設計測試框架等等,本文將會為大家一一解答。
  • 如何成為軟體自動化測試工程師
    功能自動化測試崗位,必須掌握的技能包括:功能用例設計、自動化工具使用、自動化腳本開發語言、自動化測試框架。功能用例設計是在理解業務的基礎上,運用各種用例設計方法,設計測試軟體的功能用例。常用的用例設計方法包括:邊界值法,等價類法,判定表法,因果圖法,流程分析法等。測試不同類型的軟體時,需要使用不同的自動化測試工具。常見的自動化工具,包括:1、用於測試桌面應用的工具。例如:QTP。