曾誠
摘 要:本文基于銀行新核心系統的特點及多種黑盒測試方法的優缺點,提出組合策略的方法解決系統測試覆蓋性的痛點并進行了相關論述。
關鍵詞:核心系統;黑盒測試;覆蓋性
一、新一代核心系統簡述
在二十一世紀初期,許多銀行的核心系統有很大比例的業務無法純粹依靠系統進行完成,仍需要手工做賬,無法做到辦公信息化、電子化以及智能化。這種純手工或者半手工的方式大大的消耗了人力資源,并且還存在不小的操作風險。現今隨著云計算、區塊鏈、物聯網、人工智能等新鮮技術的不斷涌現,近年來國內銀行紛紛進行新一代核心系統建設,借鑒互聯網企業的相關經驗探索分布式IT架構及構建企業級業務架構,旨在提高自身管理效能,提升管理效率以達到電子化、信息化和智能化辦公。
無論對于哪家銀行,核心系統的更新升級都是一項龐大復雜的系統工程,它具有建設周期長、成本高以及涉及要素面廣等特征。從需求分析到項目開發再到系統測試,都是系統建設中不可缺少的環節,本文著重研究系統測試這一重要環節,針對黑盒測試,研究其對于系統的覆蓋性是否全面,旨在為新核心項目建設提供啟示作用,能夠進一步提高銀行業核心系統建設水平并推動銀行業信息化、電子化和智能化建設穩步向前發展。
二、黑盒測試方法簡述
黑盒測試也有另一個稱法,叫做功能測試,顧名思義,它是測試系統中的每項功能是否正常運行。所謂黑盒,也就是將系統看作一個無法打開的黑匣子,不考慮內部的結構也不考慮內部的算法,只關注系統的輸入輸出,核查系統功能是否按照其需求說明書來正確使用。
黑盒測試可以簡單的分為劃分等價類、邊界值分析法、錯誤推測法、因果圖法以及場景法等,不同的測試方法具有不同的測試特點。劃分等價類著重于輸入數據的集合,邊界值分析重點關注對于邊界值的劃分,錯誤推測依賴測試人員的經驗和判斷,因果圖強調輸入條件間的互相組合,場景法基于系統中的不同流程所組成的場景。
黑盒測試十分適合功能測試,核心點就在于對照需求說明書來測試系統相關功能,但黑盒測試的缺點也相應明顯,它無法毫無遺漏的進行測試,同時系統中的一些bug或故障無法通過黑盒測試進行檢測,黑盒測試主要依賴需求說明書的正確性,如果說明書本身有遺漏或者冗余,黑盒測試都無法進行甄別,這個問題也是黑盒測試的痛點,在下一節中會詳細描述。
三、黑盒測試覆蓋性痛點
在黑盒測試過程中,一個需求會相應對應數個功能點,而一個功能點又對應數個測試案例(n個正案例和m個反案例)。多數的黑盒測試方法都能夠使其需求覆蓋度達到100%,但顯然需求覆蓋率并不能作為一個測試充分的佐證,因為就算在某個需求點中,將其對應的功能點都測試完畢,仍然會有疏漏,測試還遠遠不能結束。
(1)輸入正確的用戶名、密碼以及驗證碼,最終成功登陸
(2)輸入錯誤的用戶名、正確的密碼及驗證碼,最終無法登陸
從以上測試中,我們可以看到第二個測試明顯沒有遍歷完所有的錯誤可能性,比如錯誤的密碼和錯誤的驗證碼以及它們各自的排列組合。盡管沒有遍歷完所有可能性,但從需求覆蓋率的角度來講,依舊覆蓋全了所有的功能點,那么此項需求的測試覆蓋度就會變為100%。無法考慮到測試的每一種可能,但從需求覆蓋度的數據來看,又已經將所有功能點覆蓋,這項數據容易讓測試人員掉以輕心,誤以為已經完成測試工作,這是黑盒測試的通病,也是本文希望解決的核心問題。
四、銀行新一代核心系統黑盒測試覆蓋性解決方法
在第二節中說到,黑盒測試十分適合功能性測試,但在銀行新一代核心系統中,測試需求的種類繁多,大致可分為界面、流程、功能三大類,而每大類下面又會衍生許多小類,甚至在某些特殊的功能點(比如支付中的反洗錢測試)會遍歷十幾道崗位,所以在核心系統中的黑盒測試非常容易產生疏漏,稍不注意就會發生測試不完善的情況。
針對不同的系統特點應使用不同的黑盒測試方法。新一代核心系統界面復雜、流程繁瑣且測試必須達到“安全保生產”的效力,故可以使用組合策略的方法來解決黑盒測試覆蓋性不完整的痛點。
所謂組合策略,就是將幾種不同的測試方法進行綜合考量,通過組合的方式來降低黑盒測試過程中的疏漏,從而達到提升其測試覆蓋性的目的。
以下是筆者針對銀行新一代核心系統而選取的測試組合,在往后實際的應用過程可供參考:
(1)在測試初期,我們應首選將輸入、輸出條件進行等價類劃分,這樣才能夠框定測試案例的范圍,既減少了工作量也提高了測試效率。
(2)等價類劃分完畢后,應重點分析輸入的邊界值,大部分系統中錯誤率最高的就是邊界值,這是應著重考慮的部分。
(3)與此同時,我們也需要利用錯誤推測法去進行相關測試,這一步驟主要依賴測試人員的經驗進行查漏補缺,將某些系統中容易產生的錯誤作為遺漏補充進行再一次測試。
(4)參照系統的相關邏輯,核查已編測試案例的邏輯覆蓋程度,針對前期擬定的測試覆蓋性標準進行測試補充
(5)系統的功能說明書里如果有輸入條件的特意說明,那么應該在等價劃分類的時候,多參考借鑒因果圖法或判定表驅動法。
(6)最后在系統的整個測試過程中,都需要時刻把握好場景法,在系統清晰的業務流中綜合各種測試方法并進行針對性使用。
銀行新一代核心系統具有功能繁瑣、界面復雜、業務流程清晰以及安全風險容忍度低等特點,在對其進行的黑盒測試中非常容易產生遺漏的情況,利用組合策略的黑盒測試方法可提高系統的測試覆蓋性。
本文基于銀行新核心系統的特點及多種黑盒測試方法的優缺點,提出組合策略的方法解決系統測試覆蓋性的痛點,但終歸只是理論上的論述說明。紙上得來終覺淺,絕知此事要躬行,希望在后來人的不斷測試實踐中,對該方法的不妥之處也不斷進行修正,爭取早日探索出最完善、最高效的黑盒測試方法。