智慧卡的測試方法
2023-05-27 22:07:16 1
專利名稱:智慧卡的測試方法
技術領域:
本發明涉及一種數據處理方法,尤其涉及一種智慧卡的測試方法。
背景技術:
隨著計算機技術的發展,軟體的應用越來越廣泛,大到金融業、工商業,小到家用電器、手機SIM卡,軟體的影響無處不在。軟體的功能也日益增加,造成軟體的複雜度越來越高,由軟體故障引發的故障也越來越多。美國空軍統計F/A-18飛控系統在20,000小時的實驗中,軟體故障為309次,硬體故障為271次,因此可見對於軟體的測試已成為一項非常重要的工作。
現有的軟體功能測試方法很多是通過捕獲回放機制生成腳本並執行測試。捕獲的對象通常是GUI用戶界面上的元素。換言之就是測試人員手工操作被測軟體,完成一定的應用流程,測試工具記錄這一過程,生成測試腳本,可以自動回放腳本並檢查操作完成的情況。測試人員也可以編輯修改腳本來開發新的測試用例。代表性的測試工具如InterActive公司的WinRunner,以及IBM Rational的Robot。
具體到智慧卡行業,當廠商生產出用戶所需的智慧卡後需要對智慧卡進行測試,以保證智慧卡能夠滿足用戶的需求。目前的測試模式通常是測試人員根據測試需求編寫測試腳本,對智慧卡進行測試,但由於測試的覆蓋度不夠或測試人員與開發人員的習慣不同,測試通過的智慧卡仍有可能在最終用戶的使用現場出現問題,這無疑給廠商和用戶都造成損失。特別是智慧卡升級換代的時候,由於缺少有效的回歸測試方法,上述問題時有發生。
發明內容
針對上述現有技術中的問題和不足,本發明的目的是提出一種智慧卡的測試方法,能夠提高測試的覆蓋度,避免產品由於測試不足而產生故障。
為了解決上述問題,本發明提出一種智慧卡的測試方法,包括(1)生成測試卡;(2)使用已有的智慧卡與終端設備進行通信時,獲得發送給智慧卡的指令和智慧卡的返回數據;(3)根據所述步驟(2)得到的指令和返回數據,生成測試例,所述測試例包括測試時發送到測試卡的輸入以及測試卡的預期輸出;(4)將所述輸入發送到測試卡,並監測測試卡的返回數據,如果所述測試卡的返回數據與所述的預期輸出相同,則測試成功,如果不相同則測試失敗。
作為優選,為了擴大測試範圍以確保測試的可靠性,所述測試例為多個輸入及輸入對應的預期輸出組成的序列。
作為優選,所述步驟(1)具體為根據用戶所需的智慧卡的文件結構、數據結構和相關密鑰,建立卡片結構,生成智慧卡。
作為優選,所述步驟(2)具體為使用已有的智慧卡與終端設備進行通訊,並監測智慧卡與終端設備之間通信的數據流,並將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據,這樣可以使測試更符合用戶的使用習慣,使測試的可靠性更強。
作為優選,所述步驟(2)具體為使用已有的智慧卡與終端設備進行通訊,並監測智慧卡的I/O埠獲得智慧卡與終端設備之間通信的數據流,並將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。由於智慧卡的I/O埠數據流必須符合ISO7816規範,因此能夠將數據還原為發送到智慧卡的指令和智慧卡返回的數據。
作為優選,步驟(2)具體為使用已有的智慧卡與終端設備進行通訊,並監測智慧卡的I/O埠,進行周期採樣獲得智慧卡與終端設備之間通信的數據流,並將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。
作為優選,當步驟(2)中所述的指令是需要另一步驟的輸出進行計算才能獲得時,所述步驟(3)中所述的輸入包含一變量,該變量代替需要對另一步驟的輸出計算後獲得的數據;步驟(3)中所述的預期輸出用一個變量代替。
作為優選,代替預期輸出的變量根據測試過程中前一條指令的執行結果確定的輸入變量的值確定預期輸出。
作為優選,當步驟(2)中所述的指令與其前後的指令都沒有關聯時,步驟(3)中所述的輸入為步驟(2)中所述的指令;步驟(3)中所述的預期輸出為步驟(2)中所述的返回數據。
本發明提出的智慧卡的測試方法,使測試更符合最終用戶的使用習慣,同時能夠快速生成大量測試用例,並依據測試例序列對測試卡進行測試,避免由於測試覆蓋度不夠而造成測試通過的升級產品在用戶使用中出現問題。
圖1是智慧卡I/O埠傳輸的數據幀的格式;圖2是本發明提出的智慧卡的測試方法優選實施例流程圖。
具體實施例方式
下面結合附圖對本發明作進一步的詳細描述。
本發明優選實施例流程如圖所示,包括以下步驟(1)生成測試卡;(2)使用已有的智慧卡與終端設備進行通信時,獲得發送給智慧卡的指令和智慧卡的返回數據;(3)根據所述步驟(2)得到的指令和返回數據,生成測試例,所述測試例包括測試時發送到測試卡的輸入以及測試卡的預期輸出;(4)將所述輸入發送到測試卡,並監測測試卡的返回數據,如果所述測試卡的返回數據與所述的預期輸出相同,則測試成功,如果不相同則測試失敗。
作為優選,所述的步驟(3)中的實施例為多個輸入及輸入對應的預期輸出組成的序列,這樣能夠保證測試的覆蓋範圍更廣,避免經過測試的卡在用戶的實際使用中出現故障。
作為優選,所述步驟(1)具體為根據用戶所需的智慧卡的文件結構、數據結構和相關密鑰,建立卡片結構,生成智慧卡,這樣生成的智慧卡結構更符合用戶的需求,生成測試卡的方式有很多種,在此不一一說明。
作為優選,所述步驟(2)具體為使用已有的智慧卡與終端設備通信(例如可以到用戶的使用現場),並監測智慧卡與終端設備之間通信的數據流,將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回碼或返回值。
作為優選,所述步驟(2)中可以通過監測智慧卡的I/O埠,並進行周期採樣,以獲得智慧卡與終端設備之間通信的數據流,並將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。智慧卡對每條輸入的指令都應有返回碼,有些還具有返回值。接觸式智慧卡通常有VCC、GND、CLK、I/O、RST等觸點,數據通過I/O(輸入/輸出埠)在終端和智慧卡之間以異步半雙工方式進行雙向傳送,I/O管腳的數據傳輸符合ISO7816規範的要求,因此可以對I/O管腳進行信號採集,並將信號還原,就可以得到指令和相應數據,包括從設備發送到卡片的指令、數據以及卡片的應答。按照ISO7816規範,終端向智慧卡提供一個用作數據交換的時序控制時鐘信號,數據在I/O上傳輸的字符幀的格式如圖1所示,是由一個字符由10個連續位組成,其中包括·1個低電平狀態的起始位;·組成數據字節的8個數據位;·一個奇偶校驗位。
在I/O上使用的位持續時間被定義為一個基本時間單元,稱為etu。起始位由接收端通過對I/O周期採樣測得,採樣時間應小於0.2etu。校驗位的用途一個字符中的邏輯『1』位的數目必須是偶數,8個數據位和奇偶校驗位自身均作為校驗計算位,但起始位不作校驗計算。校驗不通過,則該數據幀是錯誤數據,直接丟棄此數據。
作為優選,所述步驟(2)中可以監測智慧卡I/O埠的數據流,通過周期採樣獲得智慧卡與終端設備之間通信的數據流,將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。
通過上述方法獲得的發送到智慧卡的指令和智慧卡的返回數據,是用戶在實際使用中的指令和返回數據,將指令和返回數據作為測試例對測試卡進行測試,相比較現有技術中完全有測試人員編寫測試腳本對測試卡進行的方式,可以確保測試過程更加接近用戶的使用習慣,測試的可靠性更強。在此需要說明,除監測智慧卡I/O埠外,獲得智慧卡與終端設備間數據流的方法有很多種,在此不一一說明。
其中,發送到智慧卡的指令兩類,一類是指令與其前後的指令都沒有關聯,另一類指令需要把上一條指令的返回值或部分返回值加以計算,把計算結果作為這次指令要發送的數據或部分數據。
對於第一類指令可以直接作為測試用例中的輸入,返回碼、返回值作為期望輸出。因此,步驟(3)中所述的輸入為步驟(2)中所述的指令;步驟(3)中所述的期望輸出為步驟(2)中所述的返回數據。
對於第二類指令,轉化為測試用例時輸入和期望輸出需要用變量代替。因此,步驟(3)中所述的輸入包含一變量,所述的預期輸出為一變量;只有在測試過程中才能依據前一條指令的執行結果確定變量的值,進而判斷卡片返回值是否正確。
我們以外部認證為例說明第二類指令的處理過程,包括以下步驟(A)設備發送取隨機數指令到卡片,取得8位元組隨機數rnd1;(B)設備用相應的密鑰對rnd1進行des加密運算,產生鑑別數據d1;(C)設備向卡片發出外部認證命令,送d1到卡內;(D)卡片收到d1後,用卡內相應密鑰對d1進行des解密運算,產生8位元組鑑別數據d2。卡片比較rnd1和d2,若一致則表示認證通過,否則認證失敗。其中,設備發送取隨機數指令0084000008卡片返回值de3b0cf15367c503卡片返回碼9000進行加密運算後,設備發送外部認證指令00820000080f7d7fe835e6370c卡片返回值無卡片返回碼9000轉化為測試用例的過程為將0084000008作為期望輸入;de3b0cf15367c503是隨機數,不能用作期望輸出,用變量rnd1代替;9000表示取隨機數執行成功,作為期望輸出;00820000080f7d7fe835e6370c中的0f7d7fe835e6370c是對rnd1進行des加密計算的結果,用變量d1代替,把0082000008+d1作為期望輸入;9000表示外部認證執行成功,作為期望輸出。
以上對本發明的具體實施方式
進行了詳細的解說。對於本技術領域的一般技術人員來說,在不背離本發明所述方法的精神和權利要求範圍的情況下對它進行的各種顯而易見的改變都在本發明的保護範圍之內。
權利要求
1.一種智慧卡的測試方法,其特徵在於,所述方法包括以下步驟(1)生成測試卡;(2)使用已有的智慧卡與終端設備進行通信,獲得發送給智慧卡的指令和智慧卡的返回數據;(3)根據所述步驟(2)得到的指令和返回數據,生成測試例,所述測試例包括測試時發送到測試卡的輸入以及測試卡的預期輸出;(4)將所述輸入發送到測試卡,並監測測試卡的返回數據,如果所述測試卡的返回數據與所述的預期輸出相同,則測試成功,如果不相同則測試失敗。
2.根據權利要求1所述的智慧卡的測試方法,所述測試例為多個輸入及輸入對應的預期輸出組成的序列。
3.根據權利要求1或2所述的智慧卡的測試方法,其特徵在於,所述步驟(1)具體為根據用戶所需的智慧卡的文件結構、數據結構和相關密鑰,建立卡片結構,生成智慧卡。
4.根據權利要求1或2所述的智慧卡的測試方法,其特徵在於,所述步驟(2)具體為使用已有的智慧卡與終端設備進行通訊,並監測智慧卡與終端設備之間通信的數據流,並將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。
5.根據權利要求1或2所述的智慧卡的測試方法,其特徵在於,所述步驟(2)具體為使用已有的智慧卡與終端設備進行通訊,並監測智慧卡的I/O埠獲得智慧卡與終端設備之間通信的數據流,並將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。
6.根據權利要求1或2所述的,智慧卡的測試方法,其特徵在於,所述步驟(2)具體為使用已有的智慧卡與終端設備進行通訊,並監測智慧卡的I/O埠,進行周期採樣獲得智慧卡與終端設備之間通信的數據流,將數據流中的數據信號還原為發送到智慧卡的指令和智慧卡的返回數據。
7.根據權利要求1或2所述的智慧卡的測試方法,其特徵在於,當步驟(2)中所述的指令與其前後的指令都沒有關聯時,步驟(3)中所述的輸入為步驟(2)中所述的指令;步驟(3)中所述的期望輸出為步驟(2)中所述的返回數據。
8.根據權利要求1或2所述的智慧卡的測試方法,其特徵在於,當步驟(2)中所述的指令是需要另一步驟的輸出進行計算才能獲得時,所述步驟(3)中所述的輸入包含一變量,該變量代替需要對另一步驟的輸出計算後獲得的數據;步驟(3)中所述的預期輸出用一個變量代替。
9.根據權利要求8所述的智慧卡的測試方法,其特徵在於,所述代替預期輸出的變量根據測試過程中前一條指令的執行結果確定的輸入變量的值確定預期輸出。
全文摘要
本發明公開了一種智慧卡的測試方法,針對現有智慧卡測試方法中會出現產品由於測試不足而產生故障提出一種方法,包括(1)生成測試卡;(2)使用已有的智慧卡與終端設備進行通信,獲得發送給智慧卡的指令和智慧卡的返回數據;;(3)根據所述步驟(2)得到的指令和返回數據,生成測試例;(4)將所述輸入發送到測試卡,並監測測試卡的返回數據,如果所述測試卡的返回數據與所述的預期輸出相同,則測試成功,如果不相同則測試失敗。本發明提出的智慧卡的測試方法,使測試更符合最終用戶的使用習慣,同時能夠避免由於測試覆蓋度不夠而造成測試通過的升級產品在用戶使用中出現問題。
文檔編號H04B17/00GK1791258SQ200510135180
公開日2006年6月21日 申請日期2005年12月29日 優先權日2005年12月29日
發明者景濤 申請人:北京握奇數據系統有限公司