Atm機軟件系統(tǒng)自動測試方法
【專利摘要】本發(fā)明提供ATM機軟件系統(tǒng)自動測試方法,能降低成本。其包括以下步驟:一種ATM機軟件系統(tǒng)自動測試方法,ATM機與銀行主機相連接,來測試ATM機的軟件系統(tǒng),ATM機軟件系統(tǒng)自動測試方法包括以下步驟:報文格式定義步驟,對報文的格式進行定義,報文是ATM機和銀行主機之間交換與傳輸?shù)臄?shù)據的單元,報文的格式包括與組成各類報文的各字段有關的信息及各字段的排列順序;報文接收步驟,銀行主機從ATM機接收ATM機處理測試數(shù)據后生成的報文;報文校驗步驟,根據在報文格式定義步驟定義的報文的格式,校驗在報文接收步驟中生成的報文的完整性、報文類型的正確性及報文字段的正確性;及測試報告生成步驟,根據在報文校驗步驟中進行校驗的結果,生成測試報告。
【專利說明】ATM機軟件系統(tǒng)自動測試方法
【技術領域】
[0001]本發(fā)明涉及一種ATM機軟件系統(tǒng)自動測試方法,能降低測試成本。
【背景技術】
[0002]ATM機是銀行開展業(yè)務的重要工具,大量ATM機被用來取代人工服務,保證ATM機的軟件系統(tǒng)質量對于銀行而言至關重要。通常,ATM機廠商在對ATM機的軟件系統(tǒng)進行測試時需要將ATM機連接至客戶銀行的主機上,利用ATM機與銀行主機的交互來測試ATM機的軟件系統(tǒng),這樣不僅占用銀行資源,影響銀行正常業(yè)務開展,增加了測試成本,而且,也使得銀行后臺系統(tǒng)處于因測試故障而被破壞的風險之中。
[0003]另外,各銀行主機的系統(tǒng)不同,測試所使用的參數(shù)也不同,例如,ATM機處理測試數(shù)據后生成報文并將該報文反饋給銀行主機時的報文的格式不同,所以目前的ATM機軟件系統(tǒng)的測試需要針對各銀行來制定各自專用的測試方法及程序,所以即使對同一類型的ATM機進行測試時,都需要針對不同銀行而重新調試,增加了測試成本。
【發(fā)明內容】
[0004]本發(fā)明的目的在于提供一種ATM機軟件系統(tǒng)自動測試方法,能降低測試成本。
[0005]本發(fā)明的ATM機軟件系統(tǒng)自動測試方法,所述ATM機與銀行主機相連接,來測試ATM機的軟件系統(tǒng),所述ATM機軟件系統(tǒng)自動測試方法包括以下步驟:
[0006]報文格式定義步驟,對報文的格式進行定義,所述報文是所述ATM機和所述銀行主機之間交換與傳輸?shù)臄?shù)據的單元,所述報文的格式包括與組成各類報文的各字段有關的信息及所述各字段的排列順序;
[0007]報文接收步驟,所述銀行主機從所述ATM機接收所述ATM機處理測試數(shù)據后生成的報文;
[0008]報文校驗步驟,根據在所述報文格式定義步驟定義的報文的格式,校驗在所述報文接收步驟中生成的報文的完整性、報文類型的正確性及報文字段的正確性;及
[0009]測試報告生成步驟,根據在所述報文校驗步驟中進行校驗的結果,生成測試報告。
[0010]根據本發(fā)明的ATM機軟件系統(tǒng)自動測試方法,還可以用虛擬機來代替真實的銀行主機,這樣能夠使得測試不再占用銀行資源,避免影響銀行正常業(yè)務的開展,降低了成本,減少了風險。
[0011]另外,根據本發(fā)明的ATM機軟件系統(tǒng)自動測試方法,通過對報文的格式進行定義,可以用同一測試方法和測試程序針對不同銀行進行ATM機的軟件系統(tǒng)的測試,能夠降低成本。
【專利附圖】
【附圖說明】
[0012]圖1是本發(fā)明的實施方式的流程圖。
[0013]圖2是本發(fā)明的實施方式中的報文格式的示意圖。[0014]圖3是本發(fā)明的實施方式中的報文字段與ATM機的軟件模塊對應關系的示意圖。
[0015]圖4是本發(fā)明的實施方式中的報文長度字段數(shù)據與報文實際長度的示意圖。
[0016]圖5是本發(fā)明的實施方式中的報文類型字段數(shù)據的示意圖。
[0017]圖6是本發(fā)明的實施方式中的卡號字段數(shù)據示意圖。
[0018]圖7是本發(fā)明的實施方式中的日期字段數(shù)據示意圖。
[0019]圖8是本發(fā)明的實施方式中的營業(yè)網點字段數(shù)據示意圖。
[0020]圖9是本發(fā)明的實施方式中的測試報告示意圖。
【具體實施方式】
[0021 ] 以下,參照【專利附圖】
【附圖說明】本發(fā)明的【具體實施方式】。
[0022]為了便于說明,若沒有特別說明,圖4至圖8中的報文的數(shù)據皆為十六進制。
[0023]首先,參照圖1所示的流程圖來說明本發(fā)明的ATM機軟件系統(tǒng)自動測試方法。
[0024]如圖1所示,本發(fā)明的ATM機軟件系統(tǒng)自動測試方法,ATM機與銀行主機相連接來測試ATM機的軟件系統(tǒng)。首先,定義各類報文的報文格式(步驟S101)。其中,報文(的)格式是基于ATM機與銀行主機間交換和傳輸?shù)臄?shù)據進行定義的,可以通過自動化方式實現(xiàn),也可以通過人工方式實現(xiàn)。
[0025]所謂“報文”是指ATM機與銀行主機之間交換與傳輸?shù)臄?shù)據的單元,即一次性要發(fā)送的數(shù)據塊,由若干字段組成。所謂“字段”是組成報文的數(shù)據單元。所謂“報文格式”是對組成該類報文的所有字段的形式化描述,包括與組成報文的各字段有關的信息和各字段的排列順序。有關各類報文的報文格式,將在以后參照圖2更詳細地進行說明。
[0026]通過該定義報文格式步驟,可以使得定義后的報文的格式,對于不同銀行的銀行主機而言是兼容的,這樣可以降低成本。
[0027]接著,如圖1所示,銀行主機從ATM機接收ATM機處理測試數(shù)據后由ATM機生成的報文(步驟S102)。在此,銀行主機也可以不是真實的主機,而是虛擬機。若是虛擬機則可以降低成本,減少風險。
[0028]然后,基于步驟SlOl中定義的報文格式,校驗步驟S102中生成的報文的完整性(步驟 S103)。
[0029]然后,判斷報文的完整性的校驗是否通過(步驟S104)。在判斷為校驗未通過時(步驟S104中為“否”),跳轉到步驟S108。在判斷為校驗通過時(步驟S104中為“是”),接著基于步驟SlOl中定義的報文格式,校驗步驟S102中生成的報文類型的正確性(步驟S105)。
[0030]然后,判斷報文類型的正確性的校驗是否通過(步驟S104)。在判斷為校驗未通過時(步驟S106中為“否”),跳轉到步驟S108。在判斷為校驗通過時(步驟S106中為“是”),接著基于步驟SlOl中定義的報文格式,校驗步驟S102中生成的報文字段的正確性(步驟
5107)。
[0031]最后,基于步驟S103、步驟S105、步驟S107的校驗結果,生成測試報告(步驟
5108)。
[0032]以下,參照圖2?圖9說明圖1所示的ATM機軟件系統(tǒng)自動測試方法的一個實施例,但本發(fā)明不限于該實施例。[0033]在圖1所示的步驟SlOl中,定義報文格式。圖2是以列表的方式(可根據需要用其他方式)示出了在ATM機上進行支付操作的類型為“支付”的報文的報文格式的實例。如圖2所示,在字段的列表中,包括字段序號、字段名稱、字段類型、字段最大長度、字段最小長度、字段正則式、字段默認值、子字段數(shù)、字段標志位等項目。
[0034]在圖1所示的步驟S102中,銀行主機接收ATM機處理測試數(shù)據后生成的報文。圖3示出了 ATM機生成的報文的各字段與ATM機的各模塊之間的對應關系的一個例子。
[0035]其中,ATM機生成的報文字段中的報文長度字段對應于ATM機系統(tǒng)模塊中的報文長度計算模塊,報文類型字段對應于報文類型查詢模塊,報文其他字段對應于其他字段生成模塊。其中,報文其他字段包括外設數(shù)據字段(包括表示銀行卡號、密碼等需要通過外部I/o設備獲取的數(shù)據的字段,外部I/O設備包括鍵盤/觸摸屏、讀卡器、點鈔機等安裝在ATM機上用于用戶對ATM機進行操作的設備等)、日期數(shù)據字段(此類數(shù)據通過訪問操作系統(tǒng)相關接口獲得)、預置數(shù)據字段(此類字段通過訪問ATM機預置的配置文件獲得),分別對應于外設數(shù)據讀取模塊、日期數(shù)據獲取模塊、配置文件訪問模塊。
[0036]在步驟S103中,校驗步驟S102中生成的報文的完整性。以下,參照圖2和圖4說明校驗報文完整性的具體例子。
[0037]首先,在報文格式的定義中查找報文長度字段,獲得報文長度字段的位置和長度。在此,以圖2為例說明其處理過程。(I)遍歷步驟SlOl中定義的報文格式中的所有字段定義,找到具有長度字段標識的字段定義。如圖2所示,字段1-1為報文長度字段。(2)根據如上獲得的報文長度字段取得報文長度字段的起始位置和長度。如圖2所示,根據字段1-1定義,該字段長度為Ilen = 2 ;根據字段1_1定義,該字段是報文第I字段的第I子字段,故該字段的起始位置為此前所有報文字段數(shù)據長度之和(第一位為第O位),即plen = O。
[0038]接著,計算步驟S102中生成的報文的長度1,I為報文的實際長度,即報文包含的字節(jié)數(shù)。如圖4所示,報文的實際長度I = 224(十進制)。
[0039]然后,根據之前獲得的報文長度字段的位置和長度,獲得步驟S102中生成報文的報文長度字段的數(shù)據I’。如圖4所示,I’ =OxEO(十六進制)= 224(十進制)。
[0040]比較報文的實際長度I和長度字段數(shù)據I’。若I = I’,則報文完整性的校驗結果為通過;若I幸I’,則報文完整性的校驗結果為不通過。如圖4所示,I = 224 = 1’,因此報文完整性校驗結果為通過。也就是說,在圖1的步驟S104的判斷為“是”。
[0041]在步驟S105中,校驗ATM機生成的報文類型的正確性。以下,參照圖2和圖5說明校驗報文類型的正確性的具體例子。
[0042]首先,在報文格式定義(圖2)中查找報文類型字段,獲得報文類型字段的位置和長度。在此,以圖2為例說明其處理過程。(I)遍歷步驟SlOl中定義的報文格式中的所有字段定義,找到具有類型字段標示的字段定義,如圖2所示,字段2為報文類型字段。(2)根據(I)中獲得的報文類型字段取得報文類型字段的起始位置和長度。如圖2所示,根據字段2定義,報文類型字段的長度為Ityp = 4 ;根據字段2定義,該報文類型字段是報文第2字段,故該字段的起始位置為此前所有報文字段數(shù)據長度之和(第一位為第O位),即ptyp=8。
[0043]接著,獲得步驟S102中生成的報文的類型字段的數(shù)據t。如圖5所示,報文頭的字段長度為8,所以緊接著報文頭中的報文長度字段“E0”、報文規(guī)則字段“O”、報文結果字段“O”、保留字段“0000”之后的“0200”是報文類型的數(shù)據,t = 0200。
[0044]然后,遍歷步驟SlOl中定義的報文格式中的所有報文類型(如圖5最下方所示的表格),若存在與之前獲得的數(shù)據(t = 0200)相同的報文類型,則類型校驗結果為通過;若不存在與之前獲得的數(shù)據(t = 0200)相同的報文類型,則類型校驗結果為不通過。如圖5所示,在下方的表格中存在代表支付操作的報文類型碼0200,故報文類型校驗結果為通過。也就是說,在圖1的步驟S106的判斷為“是”。
[0045]在步驟S107中,校驗ATM機生成的報文字段的正確性。以下,參照圖2和圖6?圖8說明校驗報文字段的正確性的具體例子。
[0046]首先,根據步驟S105中獲得的報文類型數(shù)據,從步驟SlOl中定義的報文格式中查找報文類型相同的報文的報文格式。
[0047]接著,遍歷所獲得的報文格式中的字段列表,校驗步驟S102中生成的報文的字段數(shù)據。以下,舉例說明校驗每個字段的處理過程。(I)根據當前被校驗字段的定義取得字段的位置和長度。(2)根據當前被校驗字段的位置和長度,從步驟生成的報文中獲得字段數(shù)據d。(3)判斷當前字段屬于外部輸入數(shù)據字段、日期數(shù)據字段或預設數(shù)據字段(預設數(shù)據字段是指根據ATM機所處的位置而預先設定的字段,例如區(qū)域代碼、網點代碼等,此類字段不需要通過特殊的計算過程獲得,而只是預先設定并存儲在特定位置,ATM機在生成報文時直接取得并添加到報文中),并取得該字段在當前測試中應具有的數(shù)據d’,作為判斷基準。若當前字段屬于輸入數(shù)據字段,則d’為當前執(zhí)行的測試案例數(shù)據對應字段的數(shù)據;若當前字段屬于日期數(shù)據字段,則d’為當前操作系統(tǒng)日期數(shù)據;若當前字段屬于預置數(shù)據字段,則d’為配置文件中對應字段的數(shù)據。(4)比較數(shù)據d與數(shù)據d’,若d與d’相同,則當前字段的正確性校驗通過,跳轉到步驟S107中的(I)開始下一字段校驗過程,當所有字段校驗結束且全部通過時,結束步驟S107,且報文字段校驗結果為通過。若d與d’不同,則當前字段的正確性校驗不通過,同時結束步驟S107,且報文字段校驗結果為不通過。
[0048]步驟S107中的校驗字段的正確性的處理過程(I)?(4)是循環(huán)處理,遍歷報文格式的字段列表,校驗各個字段數(shù)據的正確性。
[0049]圖6是步驟S107的一個例子。如圖6所示,當前被校驗字段為卡號字段,屬于外部輸入數(shù)據字段。首先,遍歷步驟SlOl中的報文格式中的所有字段定義,找到具有卡號字段標識的字段定義。如圖2所示,字段8為卡號字段;根據字段8的定義,該字段長度Icrd=15。根據字段8的定義,該字段是報文第8字段,故該字段的起始位置為此前所有報文字段數(shù)據長度之和(第一位為第O位),即pcrd = 48。如圖6所示,利用卡號字段的起始位置和長度獲得實際報文中卡號字段數(shù)據d = 011785332860861 ;此測試案例的卡號字段數(shù)據d,= 011785332860861 ;故d = d,,因此此字段校驗結果為通過。
[0050]圖7是步驟S107的一個例子。如圖7所示,當前被檢測字段為交易日期字段,屬于日期數(shù)據字段。首先,遍歷步驟SlOl中的報文格式中的所有字段定義,找到具有交易日期字段標識的字段定義。如圖2所示,字段6為交易日期字段;根據字段6的定義,該字段長度Idat = 4 ;根據字段6的定義,該字段是報文第6字段,故該字段的起始位置位置為此前所有報文字段數(shù)據長度之和(第一位為第O位),即pdat = 40。如圖7所示,利用交易日期字段的起始位置和長度獲得實際報文中交易日期字段數(shù)據d = 1215 ;此測試案例執(zhí)行當日操作系統(tǒng)日期為12月15日,故d’ = 1215,因此此字段校驗結果為通過。[0051]圖8是步驟S107的一個例子。如圖8所示,當前被校驗字段為網點代碼字段,屬于預置數(shù)據字段。首先,遍歷步驟SlOl中的報文格式中的所有字段定義,找到具有網點代碼標識的字段定義。如圖2所示,字段11-3位網點代碼字段;根據字段11-3的定義,該字段長度Icod = 4 ;根據字段11-3的定義,該字段是報文第11字段第3子字段,故該字段的起始位置為此前所有報文字段數(shù)據長度之和(第一位為第O位),即pcod = 189。如圖8所示,利用網點代碼字段的起始位置和長度獲得實際報文中網點代碼字段數(shù)據d = 0558 ;預置配置文件中的網點代碼數(shù)據d’ = 0558 ;故d等于d’,因此此字段校驗結果為通過;
[0052]在步驟S108中,生成的測試報告。以下,參照圖9說明測試報告的具體例子。
[0053]首先,有關校驗結果信息,存在如下4種情況:
[0054](I)報文完整性校驗不通過,未進行報文類型正確性校驗和報文字段正確性校驗;同時還包括步驟S102中生成報文的實際長度和該報文中長度字段數(shù)據;
[0055](2)報文完整性校驗通過,報文類型正確性校驗不通過,未進行報文字段正確性校驗;同時還包括步驟S102中生成報文的應具有類型數(shù)據和該報文中類型字段實際數(shù)據;
[0056](3)報文完整性校驗和報文類型正確性校驗都通過,報文字段正確性校驗不通過;同時還包括步驟S102中生成報文中校驗不通過字段的應具有數(shù)據和報文中該字段實際數(shù)據;
[0057](4)報文完整性校驗、報文類型正確性校驗和報文字段正確性校驗都通過。
[0058]其次,有關ATM機對應模塊錯誤的提示信息,根據圖3中報文字段與ATM軟件系統(tǒng)模塊的對應關系,具體為:
[0059](I)報文長度計算模塊存在錯誤:報文完整性校驗不通過時,測試報告包含此信息;
[0060](2)報文類型查詢模塊存在錯誤:報文類型正確性校驗不通過時,測試報告包含此信息;
[0061](3)其他字段生成模塊存在錯誤:報文字段正確性校驗不通過時,測試報告包含此信息,具體為:
[0062]①外部設備數(shù)據讀取模塊存在錯誤:外部輸入數(shù)據字段(包括表示銀行卡號、密碼等需要通過外部I/o設備獲取的數(shù)據的字段,外部I/O設備包括鍵盤/觸摸屏、讀卡器、點鈔機等安裝在ATM機上用于用戶對ATM機進行操作的設備)的正確性校驗不通過時,測試報告包含此信息,具體為:
[0063]讀卡器數(shù)據讀取模塊存在錯誤:銀行卡號字段正確性校驗不通過時,測試報告包含此信息;同時還包括正確的銀行卡號數(shù)據和步驟S102中生成報文中銀行卡號字段的實際數(shù)據;
[0064]鍵盤/觸摸屏數(shù)據讀取模塊存在錯誤:密碼字段/轉入賬戶卡號字段/取款金額字段/轉賬金額字段正確性校驗不通過時,測試報告包含此信息:同時還包括正確的密碼字段/轉入賬戶卡號字段/取款金額字段/轉賬金額字段數(shù)據和步驟S102中生成報文中密碼字段/轉入賬戶卡號字段/取款金額字段/轉賬金額字段的實際數(shù)據;
[0065]點鈔機數(shù)據讀取模塊存在錯誤:存款金額字段正確性校驗不通過時,測試報告包含此信息;同時還包括正確的存款金額字段數(shù)據和步驟S102中生成報文中存款金額字段的實際數(shù)據;[0066]②日期數(shù)據獲取模塊存在錯誤:交易日期字段正確性校驗不通過時,測試報告包含此信息;同時還包括正確的交易日期字段數(shù)據和步驟S102中生成報文中交易日期字段的實際數(shù)據;
[0067]③配置文件訪問模塊存在錯誤:對應預置配置文件中數(shù)據的字段正確性校驗不通過時,測試報告包含此信息,同時還包括配置文件中對應字段的數(shù)據和步驟S102中生成報文中該字段的實際數(shù)據;
[0068](4) ATM機各模塊正常:報文完整性校驗、報文類型正確性校驗和報文字段正確性校驗都通過時,測試報告包含此信息。
[0069]若圖1所示的步驟S103、步驟S105、步驟S107中的各項校驗結果均為通過,則最終測試報告內容如圖9所示。
[0070]以上,參照圖1?圖9流程圖說明了本發(fā)明的ATM機軟件系統(tǒng)自動測試方法及其具體實施例,但本發(fā)明不限于此,可以在本發(fā)明的主旨的范圍之內進行各種改變。
[0071]例如,圖1的流程圖中的校驗報文的完整性、報文類型的正確性及報文字段的正確性的順序是可以根據需要進行改變的。而且,報文格式也不限于圖2和說明書中舉例說明的那樣,可以根據需要來定義。
【權利要求】
1.一種ATM機軟件系統(tǒng)自動測試方法,所述ATM機與銀行主機相連接,來測試ATM機的軟件系統(tǒng),所述ATM機軟件系統(tǒng)自動測試方法包括以下步驟: 報文格式定義步驟,對報文的格式進行定義,所述報文是所述ATM機和所述銀行主機之間交換與傳輸?shù)臄?shù)據的單元,所述報文的格式包括與組成各類報文的各字段有關的信息及所述各字段的排列順序; 報文接收步驟,所述銀行主機從所述ATM機接收所述ATM機處理測試數(shù)據后生成的報文; 報文校驗步驟,根據在所述報文格式定義步驟定義的報文的格式,校驗在所述報文接收步驟中生成的報文的完整性、報文類型的正確性及報文字段的正確性;及 測試報告生成步驟,根據在所述報文校驗步驟中進行校驗的結果,生成測試報告。
2.如權利要求1所述的ATM機軟件系統(tǒng)自動測試方法,其中, 所述銀行主機是虛擬機。
3.如權利要求1或2所述的ATM機軟件系統(tǒng)自動測試方法,其中, 在所述報文校驗步驟中,對在所述報文接收步驟中生成的報文的實際長度和從在所述報文格式定義步驟中定義的報文的格式而得到的作為校驗基準的報文長度進行比較,當所述報文的實際長度和所述作為校驗基準的報文長度相同時,報文的完整性的校驗為通過,當所述報文的實際長度和所述作為校驗基準的報文長度不同時,報文的完整性的校驗為不通過。
4.如權利要求1或2所述的ATM機軟件系統(tǒng)自動測試方法,其中, 在所述報文校驗步驟中,當在所述報文格式定義步驟中定義的報文的格式中所含的報文類型存在從在所述報文接收步驟中生成的報文中提取的報文類型時,報文類型的正確性的校驗為通過,當在所述報文格式定義步驟中定義的報文的格式中所含的報文類型不存在從在所述報文接收步驟中生成的報文中提取的報文類型時,報文類型的正確性的校驗為不通過。
5.如權利要求1或2所述的ATM機軟件系統(tǒng)自動測試方法,其中, 在所述報文校驗步驟中,對在所述報文接收步驟中生成的報文的各字段的數(shù)據和作為校驗基準的各字段的數(shù)據進行比較,當所述報文的各字段的數(shù)據和所述作為校驗基準的各字段的數(shù)據相同時,報文字段的正確性的校驗為通過,當所述報文的各字段的數(shù)據和所述作為校驗基準的各字段的數(shù)據不同時,報文字段的正確性的校驗為不通過。
6.如權利要求1或2所述的ATM機軟件系統(tǒng)自動測試方法,其中, 在所述報文格式定義步驟中定義的報文的格式,對于不同銀行的銀行主機而言是兼容的。
【文檔編號】G06F11/36GK103514092SQ201210228902
【公開日】2014年1月15日 申請日期:2012年6月29日 優(yōu)先權日:2012年6月29日
【發(fā)明者】王冠, 姜可 申請人:日立(中國)研究開發(fā)有限公司