銀行應用的特點如下:
1、多層功能來支持數千併發的用戶會話
2、大規模集成 ,通常一個銀行應用集成了其他應用 如賬單支付功能和交易賬號
3、複雜的業務流程
4、實時和批量處理
5、高速率的每秒事務數
6、安全事務
7、健壯的記錄部分用於追蹤每天的事務
8、強大的審計用於解決客戶問題
9、海量儲存系統
10、災害管理
上面列出的十點是銀行系統最重要的特點。
銀行應用有很多涉及執行操作的層。例如,一個銀行應用應該有:
● Web服務器和最終用戶不同瀏覽器的交互
● 中間層校驗web服務器的輸入和輸出
● 數據庫儲存數據和過程
● 事務處理器應該是高性能的主機或其他老系統 每秒能處理大量的事務
如果我們談及到銀行應用測試,要求一套涉及到多種軟件測試技術的端到端的測試方法來保證:
1、完全覆蓋所有銀行工作流和業務需求
2、應用的功能方面
3、應用的安全方面
4、數據集成
5、併發
6、用戶體驗
測試銀行應用涉及到的典型階段顯示在下面的流程圖,我們等下會逐個討論。
1、需求收集
需求收集階段涉及功能規格說明書或使用案例的需求文檔。收集每個客戶的需要作爲需求並由銀行專家或業務分析來輸出文檔。編寫需求文檔涉及多個學科的專家,因爲銀行業務本身具有多個分領域,並且一個完整的銀行應用會集成所有的。例如一個銀行應用可能包含不同模塊用於轉賬,信用卡,報告,貸款賬戶,賬單支付,交易等。
2、需求評審
可交付的需求收集要相關人士評審,如質量保證工程師,開發經理和同行業務分析。他們交叉檢查既不存在業務流程或新流程違規。
3、業務場景準備
在這個階段質量保證工程師們從需求文檔(功能規格說明書或使用案例)提取業務場景;業務場景是這樣提取的所有需求都能覆蓋。業務場景是沒有詳細步驟的高級場景,進一步這些業務場景由業務分析來評審確認所有的業務需求都符合,並且比起評審低級的詳細測試用例,評審高級的場景對於業務分析來說更容易。
4、功能測試
在這階段功能測試被執行,通常被執行的軟件測試活動例如:
測試用例準備:
在這個階段測試用例從業務場景中提取,一個業務場景帶出若干正面測試用例和負面測試用例。通常在這階段用到的工具有Microsoft Excel,Test Director 或 Quality Center。
測試用例評審:
由同行的質量保證工程師評審。
測試用例執行:
測試用例執行可以試手工的或自動的,用到的工具如QC, QTP或其他。
5、數據庫測試
銀行應用涉及執行在UI層面和數據庫層面複雜的事務,因此數據庫測試跟功能測試一樣重要。數據庫本身是完全分離的層因此它由數據庫專家們實行,它使用的技術像
1)數據加載
2)數據庫遷移
3)測試數據庫架構和數據類型
4)規則測試
5)測試存儲過程和功能
6)測試觸發器
7)數據完整性
6、安全測試
安全測試通常是測試周期中最後的一個階段因爲完善功能和非功能性是着手安全測試的入口準則。 安全測試是整個應用測試周期中主要階段之一,這個階段保證應用按聯邦(這裏指政府吧)和行業標準完成。安全測試周期保證應用沒有任何會向入侵者或攻擊者暴露敏感數據的互聯網弱點並按標準完成,如OWASP。
在這個階段主要工作涉及整個應用的掃描,利用如IBM Appscan或 HP WebInspect (兩款最流行工具)的工具來實現。
掃描一完成就會公佈過濾誤報後的掃描報告並且剩下的弱點會報告給開發團隊根據嚴重程度修復。
其他用於安全測試的手動工具有:Paros Proxy, Http Watch, Burp Suite, Fortify tools等。
作爲上述階段的一部分,可能有不同的階段涉及集成測試和性能測試。
當今情況大部分銀行應用項目使用:Agile/Scrum(敏捷開發), RUP和持續集成的方法,還有工具包如Microsoft’s VSTS and Rational Tools。
上面提到的RUP,RUP代表Rational Unified Process(統一軟件開發過程)是一種有IBM提出的交互軟件開發方法,開發和測試活動有4個階段組成。
4個階段是:
i)初始階段;
ii)細化階段;
iii)構造階段;
iv)交付階段 RUP廣泛的涉及IBM Rational工具。
在這篇文章中我們討論了一個銀行應用可以複雜到什麼程度還有測試應用所涉及到的典型階段。除此之外我們還探討了目前包括開發方法和工具IT行業的趨勢走向。