1測試的含義與種類
測試是銀行業乃至整個金融行業面臨的最大挑戰之一。測試有很多種類,包括性能測試、壓力測試、功能測試、容錯測試、界面測試、安全測試等等,每個測試類型中都有自己的測試方法,比如白盒測試、灰盒測試、黑盒測試等,測試人員運用這些測試方法保證金融產品能夠正確滿足客戶的需求、產品設計流程的正確。但是誰負責承擔測試角色,是設計出產品的開發人員,還是產品的項目經理,還是具備計算機基礎知識的測試人員,或者說金融背景出身的業務人員等?這些一直是學者們討論與爭論的焦點,本文將從實際業務的角度和定性分析的角度探析獨立測試的重要性。
2第三方機構獨立測試的重要性
所謂的第三方機構獨立測試,就是指在測試過程中扮演測試角色的人員是由經濟和管理上獨立于開發機構的組織進行的。他們在經濟資源和測試工作上不受開發機構的控制,而是單獨的職能部門,專門負責產品與產品關聯性的測試工作,因此他們測試的結果往往更具有客觀性和可靠性,具有其他機構擔任測試角色時所無法比擬的優勢。
第一,獨立的第三方測試機構是由專門的測試隊伍構成,其目標就是為了在投產前發現產品缺陷來進一步提高產品的質量。早期開發人員在設計產品的同時會兼顧測試的角色,他們不單是程序編碼人員,還是程序檢測人員、程序維護人員等,這種多重身份不僅會給程序員增加工作負擔,還會使他們的目標變得矛盾而不可協調。作為開發人員總是希望自己的產品是優良的、無缺陷的、能夠滿足用戶需求的;但是作為程序檢測人員總是希望自己能發現更多的缺陷,產品的設計過程是有漏洞的。如果程序員既承擔開發的角色又承擔測試的角色,則其目標難以統一并且不協調,既希望自己的產品是完美的又希望測試過程能發現更多的缺陷,最終的結果難免會出現偏差,工作目標變得矛盾而不統一。所以,研發人員開發出的金融產品,不應該由自己負責測試工作,而是應該由專門的測試人員測試,這樣測試的目標不再是矛盾而不可協調的,而是希望在測試的過程中暴露出產品更多的缺陷與漏洞。
第二,金融產品的使用用戶分類繁多,比如按資產規模、受教育程度、風險偏好程度分類等等,不同類型的客戶對產品的需求是不統一的。比如:風險偏好高的客戶會偏向于風險高的金融產品,而風險偏好低的客戶會偏向于風險低的金融產品;對于資產規模較高的客戶可能偏向理財產品(增值產品),而資產規模較低的客戶可能偏向于基本的儲蓄產品(保值產品)。多樣化的客戶群體、多樣化的產品需求下,如果開發人員既設計金融產品又測試軟件程序,測試任務不但繁重,而測試的重點可能會在程序的代碼編碼上,設計出的產品難免功能單一化、簡單化。相反,如果測試由獨立的第三方機構測試,測試人員的重點就放在測試工作上,從客戶的角度出發去驗證產品是否符合自己的要求,從柜員的角度出發驗證產品設計流程是否合理。而測試員作為產品最直接的體驗者,在測試的同時體驗產品的功能,再將體驗結果反饋至開發人員,比如產品界面展現是否合理、用戶操作是否方便等。
第三,測試參與人員角色的多樣化,意味著測試人員在測試過程中應該做到測試與業務融合。最初開發人員擔任測試人員,其專業背景比較單一,可能局限在計算機專業,導致對產品的業務背景與設計原理了解不是很透徹。而如今參與測試的人員專業背景越來越多樣化,包括金融相關專業、計算機相關專業、會計相關專業等。在測試的過程中,由這些具有多樣化專業背景的測試人員測試,可以拓寬思路,設計出更多有實際意義的測試案例,測試案例也可以更加貼近真實的業務運用。相反,如果由程序員擔任測試角色,其專業知識可能局限在計算機知識,而不了解產品背后真正的含義,在這樣的情況下,測試只能從代碼的正確性驗證產品的質量,而不能更好地站在使用者的角度去檢驗金融產品功能是否正確。
第四,由于第三方測試機構在其經濟和管理上具有獨立性,所以可以充分發揮自己的測試角色,對產品以及產品之間的關聯性做出驗證。在產品設計成功后,測試人員應該盡早介入測試工作,了解項目的需求說明書。測試方法可以簡單地分為靜態測試、動態測試,而靜態測試貫穿在整個測試過程中。在項目啟動前期,測試人員應該認真審查項目的文檔資料,其中包括軟件需求說明書等,在分析文檔的過程中,應當注意文檔設計思路是否正確、是否有遺漏的地方,而測試員還可以在這個過程中提前學習項目的流程,包括項目中新加功能、刪除功能、修改功能,這些都是在測試中需要特別注意第地方;動態測試,是靜態測試的補充,在測試過程中發揮極其重要的角色,指的是通過運行軟件程序來驗證產品的質量。在動態測試過程中,獨立的測試人員可以發揮自己的想象設計多樣化的測試案例,測試中可以用等價類劃分法、邊界值分析法、錯誤猜測法等去驗證產品設計的正確性。比如存款金額輸入項,在測試過程中開發人員可以輸入負數(邊界值法)或者特殊字符,驗證程序運行過程中是否有正確的提示。
3結語
軟件測試保證產品的質量,而專業的測試是提升軟件質量的重要手段,也是金融業防范風險的重要途徑。承擔軟件測試角色的人員,應該是第三方專業化的測試團隊,在經濟與管理上獨立于開發機構,充分發揮自己的測試角色。不但可以在測試過程中利用多種測試方法如靜態測試、動態測試、功能測試、性能測試、壓力測試、容錯測試等,保證產品的質量;還可以從產品使用者的角度驗證產品是否滿足需求;同時對產品設計提出優化與建議反饋至開發部門,在開發部門的再次設計與修改后,再對產品做出功能性驗證。在這種循環模式下,開發人員與第三方測試機構既是相互補充也是相互制約的,這種彼此制衡的關系不但有利于產品的穩定,還可以提升產品的質量甚至提升客戶的滿意度,讓金融行業的創新與穩定都得以保證。
所以測試的角色應該由第三方獨立機構扮演,利用他們資源上、專業上、技能上等方面的優勢,設計出更多精細化并且符合業務場景的測試案例,并及時將測試情況反饋至開發部門進行維護與調整,以此保證金融產品的質量與穩定性和靈活性。
作者:陳林軼 蘭秋穎 單位:中國工商銀行數據中心(北京)