1. 功能測試方法與技術
第三方支付服務系統的功能測試目的是在測試環境下,從適合性和準確性兩方面考慮,測試《檢測規范》中規定的業務功能處理及相關要求,采用的測試方法為黑盒測試方法。
適合性方面建議采用功能分解的方法,將每一個功能加以分解,確保各個功能被全面地檢測;準確性方面建議采用如等價類劃分、邊界值分析、猜錯法、因果圖等方法,確保功能測試的充分性。
● 等價類劃分法
等價類劃分法是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的。等價類劃分有兩種不同的情況:有效等價類和無效等價類。有效等價類是指對于程序的規格說明來說是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能。無效等價類就是那些對程序的規格說明不合理的或無意義的輸入數據所構成的集合。
● 邊界值分析方法
邊界值分析法是用于對輸入或輸出的邊界值進行測試的一種黑盒測試方法。在功能測試中,針對功能說明中的輸入輸出域,進行邊界值和極限值的設計和測試。使用邊界值分析方法設計測試用例,首先,應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。其次,應選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。
● 猜錯法
采用逆向思維方式,結合以往測試經驗和直覺設計軟件在功能和流程上可能存在的各種錯誤,從而有針對性地設計測試用例的方法,進行容錯性測試?;舅悸肥橇信e出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。例如,輸入數據和輸出數據為0的情況。
● 因果圖方法
等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關系。如果在測試時必須考慮輸入條件的各種組合,則可能的組合將是天文數字,因此必須考慮采用一種適合于描述多種條件的組合、相應產生多個動作的形式來進行測試用例設計,這就需要利用輸入條件的邏輯模型,即因果圖。
2. 風險監控測試方法
風險監控測試主要驗證支付服務業務系統的賬戶及交易風險,在實際測試中,我們采用的方法有以下幾種:
● 檢測非金融機構在相關風險管理制度中是否完整、明確地描述賬戶風險事件類型和相應的風險控制措施;
● 通過行為記錄、日志檢查、賬戶資金變更跟蹤等手段進行風險分析;
● 檢測對賬戶的人工操作是否保證處理過程中的職責分離;
● 檢測非金融機構在相關風險管理制度中是否明確定義各類交易監控和交易審核規則;
● 通過實際交易或查看交易監控與交易審核規則,以及相關記錄驗證交易監控與交易審核的實時性;
● 通過報表查詢測試交易記錄的正確性;
● 通過檢測交易監控系統對風險交易和異常交易的識別,檢測其對異常事件的預警能力;
● 檢測風險管理體系中是否支持人工對規則進行維護。
3. 性能測試策略與方法
與其他應用系統的性能測試一樣,規范的第三方支付系統性能測試同樣需要經歷測試準備、測試實施和測試總結等過程。
● 性能需求分析
因各家非金融機構支付服務系統的用戶規模不同,所以央行并未對第三方支付系統性能檢測環境和性能指標進行硬性規定,性能指標的確認依據主要來自于系統需求文檔中對性能的約定或用戶性能需求的調研。
性能需求的主要調查內容包括:系統實際使用的用戶數量、正常情況下系統的平均使用用戶數、高峰時段的在線用戶量、可預期生命周期內系統的用戶增長情況、一年的業務量及日交易量、壓力解除后系統自恢復時間要求等。
● 性能測試策略
根據非金融機構支付服務系統的業務特點,對其性能的測試大致可分為兩類:一類是包含數據寫操作和數據查詢操作的并發測試性能(如:支付、交易明細查詢等);另一類是大數據量處理性能(如:日終批處理等)。
并發測試策略的主要內容應包括:并發用戶數、性能指標要求(包括響應時間、系統資源占用)等;對大數據量計算性能測試策略的制定過程中,需要關注的是對批處理交易數據量的要求。
● 性能測試點選取分析
按照央行的定義,第三方支付服務包含互聯網支付、預付卡的發行與受理、銀行卡收單、移動支付等,而無論采用哪種支付方式,四種支付平臺實質上都是買賣雙方交易過程中的“中間件”,它的核心功能就是通過提供的支付網關為交易雙方提供支付、充值等交易服務,并記錄雙方的交易數據。對其測試點的選擇可以典型交易、復雜業務流程、頻繁的用戶操作、大數據量處理等為總體指導原則,圍繞支付、交易管理、資金結算、對賬處理等核心業務進行選取。
在互聯網絡支付系統中,我們將重點選取支付、交易明細查詢等操作進行測試;預付卡部分重點選取聯機消費、聯機余額查詢等操作進行測試,脫機交易類來說重點選取脫機消費文件處理等操作進行測試;銀行卡收單部分重點選取消費、日終批處理等操作進行測試;遠程移動支付部分重點選取支付、交易明細查詢等操作進行測試;近場移動支付部分中對于聯機交易類來說重點選取聯機消費、聯機余額查詢等操作進行測試,脫機交易類來說重點選取脫機消費文件處理等操作進行測試。
● 性能測試方法
第三方支付系統性能測試可以選擇常見的商用性能測試軟件進行,但需要注意的是由于交易過程通常需要調用銀行接口與協約銀行進行數據交換,因此在測試腳本編輯過程中需要用模擬接口來替換真實的銀行接口來測試支付平臺的真實性能。預付卡和銀行卡收單其交易數據的來源均為POS機,平臺的整體結構如圖1所示。性能測試中只能用開發的工具或編制的腳本來模擬發送報文到POS前置服務器進行并發測試,具體可通過Socket協議編寫報文發送腳本的過程進行實現。
原文轉自:http://www.anti-gravitydesign.com