隨着金融行業的業務不斷增長,金融交易模式的不斷變化,金融機構對信息化的要求也愈來愈高,高質量的金融軟件對於金融機構來講顯得尤其重要。如何保證金融行業軟件的質量,對金融行業軟件的
測試人員來講,也提出了更高的要求。如下針對金融行業軟件的測試作出了具體的分析:
1金融行業軟件特徵分析
金融行業軟件系統具備集中度高、規模龐大、數量多、系統之間關聯性強、業務複雜、需求變化快等特色,如何有效可行的實現
軟件測試和軟件質量控制,是對金融行業軟件測試人員提出的基本要求。
1.1金融行業軟件的業務特色
以金融行業軟件的典型表明銀行系統軟件爲例:通常的銀行系統軟件都有一個核心繫統,核心系統主要涉及帳務的處理、清算、計息等。銀行的其它業務系統都會直接或間接的與核心系統進行交互,主要處理一些涉及業務的流程以及系統管理、用戶管理等輔助功能。
此外,銀行的業務系統也種類繁多。好比:ACE/櫃面、網上銀行、
電話銀行、呼叫中心、信貸、資產託管、資金風險分析及風險控制系統、外匯買賣、基金、期貨、黃金、匯票、信用卡業務以及其它衍生業務等等。各個系統之間均可能有着密切的聯繫,之間也會涉及到不一樣系統之間的接口。
所以,在測試過程當中,除了對銀行的核心繫統、業務系統進行測試以外,還會涉及對接口的測試,而
接口測試每每須要測試人員構造必定的測試環境與測試數據來模擬各系統之間的交互。
1.2金融行業軟件的複雜性特色
就銀行系統軟件來講,自己就具備複雜性的特色。首先,銀行軟件具備不一樣的客戶羣,如我的用戶、企業用戶、銀行內部管理人員、業務人員等,所以,銀行軟件會有針對不一樣客戶所使用的版本或權限控制。此外,對於不一樣的服務方式,如櫃檯、電話銀行、網上銀行等,都必須開發出不一樣的軟件。其次,銀行業務種類繁多,業務邏輯也很是複雜,對業務處理要求有很高的安全性和實時性,這些都要藉助複雜的
技術才能實現。所以,對於測試而言,軟件的複雜性也增長了測試的複雜性,對測試者來講要求有至關的經驗和
測試技術的支持。
另外,因爲銀行業務的快速發展,當舊的銀行軟件系統沒法知足業務處理的要求時,就必須開發新的系統,對於從新開發的新系統來講,舊系統的用戶數據必須保證能在新系統中正常使用,這就涉及到了新舊版本的數據移植問題,因爲新舊系統之間數據字典存在差別,數據移植後可否正常,就須要對新舊數據進行比對性測試。比對測試過程每每會涉及
數據庫的應用及比對工具的開發使用。
2金融行業軟件測試的現狀
根據某項調查,金融企業應用系統的數量,中小銀行應用系統數量廣泛在100個左右,有一半銀行超過100個應用系統;雖然保險行業應用系統數量相對較少,但大部分保險公司擁有10―50個應用系統;並且這些數量還有進一步上漲的趨勢。調查數據也代表,金融行業IT部門的測試能力目前遠遠低於金融機構對測試的要求[3]。即便是IT成熟度比較高的企業,也難以覆蓋全部應用系統的測試需求。金融企業的測試須要和信息科技部門的測試能力之間存在必定的差距。
3金融行業軟件測試方法及範圍分析
如下主要從
功能測試、接口測試、數據移植測試、
性能測試、安全性測試、風險監控測試、文檔審覈幾個方面來闡述金融行業軟件的測試方法及範圍[4]。如下劃分主要爲了更清晰瞭解金融行業軟件測試所包含的範圍,本次分析不涉及
白盒測試的內容,主要針對涉及金融行業軟件業務特性的測試方法及範圍進行闡述。
3.1功能測試
功能測試,主要是對軟件的功能進行的驗證,對於金融行業軟件來講,功能測試主要進行如下功能的驗證:
3.1.1業務驗證測試
驗證業務系統的功能是否正確實現,測試其業務處理的準確性。
1)業務流程測試
金融行業軟件測試首先關注的是業務的正確性,業務流程要合理、業務處理正確無誤,這些每每須要測試人員具有必定的金融軟件測試經驗,才能更好的判斷業務流程設計是否合理,是否知足客戶實際需求,以及業務流程處理過程當中可能會涉及到的異常,一般經過正常案例和異常案例來驗證業務流程的完整性和正確性。業務流程除了驗證流程的正確性,一般對於涉及金額、資金、庫存等數據及業務流程中生成的
記錄是否正確性也是測試的重點。
2)帳務處理
對於銀行來講,帳務處理爲核心系統功能,也是這類軟件測試的重點,帳務處理不只涉及到資金,還與交易過程相關,在測試系統對帳時,必須對帳務處理流程有清晰的認識,對於帳務處理過程當中帳務是否處理正確、是否出現錯帳、是否須要進行調帳等案例都要能進行完整的案例設計來覆蓋測試點,這一塊的測試通常須要有經驗的測試人員來進行測試。
3)清算
銀行系統清算過程涉及的東西較多,如資金清算、庫存清算、計費、計息、對帳、登賬、報表生成等複雜的過程,同時涉及的數據量也是很是的大,對於大型系統來講更是如此數據檢查的工做量也很大,一樣測試人員須要對清算的全過程有清晰的瞭解。
4)報表
對於銀行系統來講,報表是直接呈現給用戶最直接的結果,而對一個銀行系統來講,報表的數量通常都較龐大,極可能涉及到幾十張報表,所以對報表的檢查也是測試的重點,這須要測試人員對銀行系統涉及的業務很是熟悉,能判斷報表的設計是否合理,報表數據是否正確等。
3.1.2客戶端測試
客戶端主要針對的是軟件界面功能的測試,根據功能劃分通常涉及如下幾類:
1)系統管理類
系統管理主要包括系統參數管理、用戶管理、角色管理、權限分配等,測試也包含相應的業務邏輯及頁面測試,如查詢功能的測試、顯示風格、驗證客戶端頁面顯示數據是否正確等。
2)數據查詢類
主要驗證數據查詢結果客戶端顯示是否正確。
3)其它涉及業務操做的功能界面
主要針對客戶端界面的錄入、查詢等功能進行測試。
客戶端測試還會對界面的友好性、提示信息的合理性等進行測試。
3.2接口測試
對於銀行來講,一般行內系統和與銀行外對接的系統是獨立開發的,行內與行外系統採用的數據庫、通信協議等均可能存在差別;而且對於銀行來講,還可能存在多個系統,如:網上銀行、ACE/櫃面、電話銀行、呼叫中心、信貸、資產託管、資金風險監控分析系統等,而且各個系統之間可能關聯特別緊密,存在許多交互;所以,在測試中會涉及到相關係統接口的測試,這時一般須要構造對接系統的測試環境、數據、業務等來模擬對接系統。
接口測試中,因爲一方系統在測試過程當中不可見,所以一般須要進行環境的模擬,好比開發模擬軟件來模擬被測試系統與所交互的系統之間的通信,而且在測試過程當中一般須要測試人員本身組報文,經過模擬發送器收發發送報文來進行測試,並經過後臺檢查報文轉換是否正確,經過數據庫來驗證數據是否正確。一般來講,接口的測試測試人員主要跟後臺和數據庫打交道,而不多經過客戶端來操做,所以要求測試人員對數據庫知識、對應的
操做系統命令以及一些中間件具備必定的熟悉程度才能更好的進行測試。
接口測試通常在功能測試階段完成,功能測試計劃中應包含接口測試。
3.3數據移植測試
對於銀行來講,軟件產品常常存在更新換代或升級的狀況,新系統的運行環境和舊系統可能不一致。所以,爲了保證系統的順利運行,在新系統研發出來,準備上線以前,須要把原來舊系統的客戶歷史數據移植過來,這就涉及到了數據移植問題。數據移植並非簡單的數據遷移,由於新舊系統之間數據字典是不一樣的,爲了保證移植結果的正確性,須要對新舊數據庫的數據進行比對,一般能夠經過人工方法或開發比對工具進行比對。
舉例來講,舊系統採用的SQLSERVER的數據庫,而新系統採用
Oracle的數據庫;而且就係統可能存在50張數據表,新系統可能有200張數據表,並且,新系統的數據表結構與舊系統可能徹底不同,或者新舊系統的某張表可能對應另外一個系統的幾張表,這樣在數據移植測試中就要進行幾方面的測試。好比,兩個數據庫可能存在有差別的地方,如數據類型不一樣,位數不一樣,在數據移植過程當中對這部分就應該作詳細的檢查。此外,表結構的不一樣,在作數據移植檢查時,須要得到新舊版本的數據字典,而且對移植過來對應的全部字段數據是否移植正確作檢查。
數據移植測試每每須要測試人員有足夠的耐心,能仔細進行比對,發現存在的問題。數據移植測試通常在功能測試階段完成,功能測試計劃中應包含數據移植的測試。
3.4性能測試
性能測試的目的主要是驗證業務系統是否知足業務需求的多用戶併發操做,是否知足業務性能需求,評估壓力解除後的自恢復能力,測試系統性能極限。
隨着金融行業軟件的規模愈來愈大、處理能力要求愈來愈高,進行性能測試成爲金融軟件測試中必不可少的一個環節。金融行業軟件通常在投入使用時,須要接受大批量的業務,而且對於業務的響應處理時間也有很高的要求,這對於應用程序自己、操做系統、中心數據庫服務器、中間件服務器以及網絡設備的承受力都是一個嚴峻的考驗。任一個環節的問題均可能給用戶帶來巨大的商業損失。所以,如何保證在壓力狀況下系統能正常運行是金融行業軟件質量保證的關鍵,同時也是測試人員最需關注的重點。
在性能測試過程當中,經過性能測試工具來模擬與真實環境接近的狀況,如經過測試程序在同一時間內或某一段時間內,向系統發送預期數量的交易請求、測試系統在不一樣壓力狀況下的效率,得到必定的參數(如:(如內存、CPU、緩存、系統響應時間、最大吞吐率、事務平均處理時間),以及系統能夠承受的壓力狀況,進行鍼對性的測試與結果分析,找到影響系統性能的瓶頸,以便對系統進行優化。
3.5安全性測試
安全性測試的目的主要是評估業務系統在
網絡安全、主機安全、應用安全、數據安全、運行維護安全、電子認證安全、業務連續性等方面的能力及管理措施,評價其業務系統的安全防控和安全管理水平。
對於金融行業軟件來講,安全性有着重大的意思,尤爲對於網絡日益發達的今天,大量的金融類交易都是經過網絡來實現,確保信息的安全,對安全性測試提出了更高的要求。如客戶數據的安全、資金的安全;銀行主機的安全,應用程序的安全以及網絡安全,某一個環節出現問題都會給系統帶來巨大的風險。安全性測試主要檢查出軟件存在的安全隱患,肯定安全等級,以期獲得整改。
一般用的安全性檢查手段及檢查點如:跨站攻擊、弱點攻擊、管理界面泄露、敏感信息泄露、跨站點請求僞造、惡意上傳等。
對於安全性測試來講,通常須要專業的工具做爲支持,由於,大多數的安全性測試都會交給具備必定資質的第三方評測機構來進行。
3.6風險監控測試
主要目的是評估業務系統的風險監控、預警和管理措施,測試其業務系統異常交易、大額交易、非法卡號交易、密碼錯誤交易等風險的監測和防範能力以及系統資源佔用的監控。
對於銀行的較大型系統來講,通常都會專門開發對應的風險監控系統,一類風險監控主要是對系統的交易、資金、等狀況進行監控;另外一類則是對主機資源狀況進行監控,對於交易、資金類的風險監控測試時主要是根據風險監控需求來驗證監控結果是否符合需求描述;對於系統資源類的測試主要關注被監控主機的資源佔用狀況是否合理。
風險監控測試通常在功能測試階段或性能測試階段完成,功能測試或性能測試計劃中應包含風險監控的測試。
3.7文檔審覈
目的主要是驗證業務系統的用戶文檔、開發文檔、管理文檔等是否完整、有效、一致,是否符合相關標準並聽從更新控制和配置管理的要求。
文檔審覈最基本的原則是軟件實現必須按照用戶需求文檔來進行設計和實現。對於需求文檔審覈來講,文檔必須覆蓋用戶全部需求點的描述;對於開發文檔,如概要設計文檔、數據庫設計文檔,設計和實現原則應根據需求而定;此外各種管理文檔審覈包括對項目工期的定義、項目人員的安排與任務分配、項目具體執行的定義等等。在實際應用中,因爲用戶需求存在常常性的變更已經增長,文檔也會存在相應的變動,審覈部分也包括對變動部份內容的審覈。可是目前金融行業軟件沒有一個嚴格的規範來進行約束,所以,在文檔審覈和實際的開發、測試操做環節都不能獲得真正的落實,對測試質量環節也形成了相應的影響。
3.8自動化測試
現階段實施的
自動化測試與手工測試相比較,就是採用程序模擬手工測試的過程。在自動化測試過程當中,原來由手工控制的操做,如今由程序來控制,再也不進行手工干預[5]。自動化測試主要用於功能測試,測試過程包括腳本的錄製、編寫及回放。
4金融行業軟件測試工具分析
金融行業軟件測試與其它應用軟件測試流程基本一致,測試過程也涉及到必定的測試工具的使用,如下是金融行業軟件經常使用的軟件測試工具:
4.1黑盒測試工具
4.2性能測試工具
經常使用於金融系統軟件,適用於各類體系架構的自動負載測試工具
LoadRunner,它能預測系統行爲並優化系統性能。
對於性能測試來講,不少狀況下,商業化的軟件不必定能知足性能測試的需求,所以不少時候,須要開發必定的性能測試軟件來進行鍼對性的測試。
4.3測試管理(測試流程管理、缺陷跟蹤管理、測試用例管理)工具
經常使用測試管理工具備:QC、TD、ClearQuest等,主要對測試計劃、測試用例、測試實施進行管理,並進行缺陷跟蹤管理。
5金融軟件測試模式分析
在金融機構內部組織業務測試以前,軟件必須通過完整的
系統測試、性能測試及安全性測試等才能交付金融機構的業務部門進行業務測試,測試模式能夠有如下幾種模式:
5.1軟件開發方進行的內部系統測試、性能測試和安全性測試
開發方內部進行的測試與本文第三部分描述的軟件測試方法與範圍分析基本一致,下面主要就第三方測試的模式進行分析。
5.2第三方測試機構進行的系統測試、性能測試和安全性測試
5.2.1第三方測試的優勢
第三方測試是指由獨立的軟件評測機構,根據
項目管理方或用戶的委託,對被測軟件所進行的科學、公正、客觀的綜合測試及評測活動。在軟件工程的整個流程中,用戶對於軟件的質量很是關注,但用戶自己沒有足夠的能力對軟件進行測量的評估,這時,就須要引入一個專業的評測機構,來對軟件的質量進行客觀的評測。第三方測試不一樣於
軟件開發方的內部測試或用戶的業務測試,強調由獨立於用戶和開發方的軟件評測機構來承擔測試任務,其目的在於保證測試的公正性與客觀性。第三方測試主要適用於對行業應用軟件的測試及評估。基於以上第三方測試的優勢及目前金融機構測試人員與金融系統測試需求的不平衡性,目前,在金融行業,專業評測機構的第三方測試已經顯示出諸多的優點,並獲得愈來愈多的應用,如在人行支付系統、商業銀行的一些應用系統,都曾引入第三方測試,並得到了很好的效果。
相對於內部測試來講,第三方測試具體有如下幾個優勢:
1)隨着系統規模的日益龐大,軟件開發方很難投入足夠的人力、物力來參與測試工做。同時,開發方也缺少專業的測試工具以及經驗豐富的測試人員;只有第三方機構才具備這樣的實力來完成測試任務。
2)第三方測試以合同的形式制約了測試方,保證了測試工做在一開始就具備客觀性。
3)第三方可以經過系統需求來理解整個系統,並從軟件工程的角度把握系統,能專業、公正的評價系統中出現的問題。4)第三方機構的權威性能更好的協調第三方、用戶以及開發方三者之間的關係。
5.2.2第三方測試的應用
第三方測試機構在測試技術方面通常具備行業內較爲專業的測試技術以及較爲領先的測試技術、對於被測試項目來講具備技術測試層面的優越性。可是另外一方面,第三方測試的管理具備必定的複雜性,整個測試活動的實施,不但須要較強能力的軟件測試人員,更須要獲得用戶及軟件開發方的支持,才能確保測試人員對被測軟件有較深的認識,確保軟件測試的最終質量。
此外第三方測試在整個測試活動中,須要判斷開發方的軟件是否知足用戶的需求,提交最終的測試報告,對所測試軟件給出公正、客觀的評測結果。
5.2.3第三方測試經常使用的測試工具
不管做爲內部測試或第三方測試,都必須採用一些自動化的測試工具來進行測試的管理和執行。經常使用的第三方測試的測試工具主要包含如下幾類:
1)測試管理工具
如:TestDirector、QualityCenter、ClearQuest。
2)性能測試工具
如:LoadRunner及第三方本身開發的性能測試工具。
3)自動化測試工具
如:QARun、QTP
5.2.4第三方測試目前存在問題及發展前景
首先,第三方測試做爲用戶和開發方都放心的測試或評測機構,在客戶需求日益增長的狀況下,具備良好的發展前景。可是,第三方測試機構所提供的是測試服務,只涉及人工費用,在競爭壓力比較大的環境下,價格戰不可避免。
6結束語
本文針對金融行業軟件的測試現狀、測試方法及範圍、測試工具、以及測試模式進行了分析,提出了適用於金融行業軟件測試的具體方案及實用技術。但隨着新的設計模式及開發方法的不斷涌現,現有的測試理論及技術必須作出與之相對應的改進才能知足不斷變化的用戶需求。