黃薇薇
(上海外服杰浦企業管理有限公司,上海 200120)
在計算機網絡技術發展伊始階段,軟件測試技術還未在國內興起,為了提升軟件質量,各個企業機構需要靠人工測試軟件產品。人工測試是國內典型的傳統測試方法,是由測試人員自己編寫測試案例,并保留測試結果。人工測試不具備測試的科學性和緊密性,并且要受到人員和時間的約束,工作負擔重,冗余性高,人工測試者會迭代進行手動回歸測試,具有代價昂貴,魯棒性差的問題。不斷地進行迭代測試也給測試人員帶來很大的心理壓力,進而容易造成測試結果前后差異性大的問題,而且測試耗費的時間較長,精度較低。
在信息化時代,各個行業系統應用軟件的規模在不斷地擴展,繁瑣程度也在加大,很多軟件機構開始將重點放在軟件測試中,對其測試的要求也越來越高。但仍舊有部分中小軟件企業還滯留在人工測試階段。而引進軟件測試的企業也僅僅是利用測試工具進行較為簡單的錄制。只有稀少的專業的大型軟件企業建立專門的軟件質量控制系統,針對自家企業的軟件特點設計專門的軟件測試框架。雖然國內軟件測試的數量在擴大,但仍舊有很多不足,隨著軟件企業數量的不斷增多,軟件行業市場競爭也在不斷加大。要想在國內市場立穩腳跟就需要將先進的軟件測試理念引入到對系統軟件開發和研制過程中,由此提升國內軟件產品的設計質量。
銀行網絡系統是一個較為復雜的系統,并且具有并發請求規模大的特點,要求系統要具有特別高的穩定性,否則會形成大規模的網絡事故,然而常規的軟件測試手段難以支持系統的測試需求,這就需要依據銀行軟件工程具有的特征對銀行系統軟件工程框架進行分析。文章主要從如下幾個方面表述銀行軟件工程框架。
2.1.1 軟件工程目標
軟件工程的目標是要確保系統軟件具有開銷適中性、正確性和可用性。其中,所謂正確性是指軟件產品可以達到理想功能的程度。可用性是指軟件具有的基本性能能夠滿足用戶所用文檔的數量。對開銷適中的程度定義是軟件開發和運行的全部開銷可滿足用戶需求的程度。而這些目標的完成在理論和實際操作過程中都會有許多瑕疵,而這些瑕疵會影響其軟件工程的質量。
2.1.2 軟件工程過程
形成一個能夠完全滿足工程目標的軟件產品需要一個全面的軟件工程過程,其過程主要包含開發、運作、維護過程。該過程包含了需求、設計、實現、判定、維護活動。在這其中,需求是由問題和需求分析共同組成,利用問題分析對需求進行定義,將該過程稱為軟件需求約束,再由需求分析形成功能約束。設計活動泛指(詳細和概要)設計。概要設計是建立在總體軟件系統結構中,并且需要包含子系統、模塊和其各個層次的說明、對各個模塊的接口進行定義。詳細設計是需要對各個模塊進行說明,對模塊的數據結構進行闡述。而實現活動是需要將設計結果變換成可執行的程序代碼。并將確認活動穿插在對軟件開發過程中,進行設計后的確認,進而保障開發出的產品可以滿足銀行系統的需求。維護活動涵蓋了軟件使用過程之后的拓展、修改和完善技術。
2.1.3 銀行軟件工程的原則
該原則是工程設計、設計支持和管理必須要遵守的原則。將其使用壽命分為很多個階段,而且各個階段的任務是不相聯系的,在使用壽命的各個階段都要采用相對應的管理技術來監督軟件的開發過程。
銀行系統性能測試系統要具備下面幾個特征:
①要采用國內最為先進的軟件性能測試工具。
②在其業務操作中,可用依據銀行系統的特點,自主開發出新型的性能測試框架,并將數據、業務、腳本三者相互分離。
③維護響應性高,可進行實時響應系統變更,填補新軟件數據包上線前的空白需求。
④操作復雜度低,其操作人員在不熟悉框架的情況下進行性能測試。
⑤具有全面的測試記錄信息,有助于搜索系統性能的薄弱點。
⑥對銀行系統日志可用有效地分析。
借鑒LoadRunner思想對銀行系統性能測試框架進行設計,先明確銀行系統功能模塊的模擬過程,由此提出銀行系統性能測試框架設計的優化方案。
2.2.1 銀行系統功能模塊的模擬
基于LoadRunner的銀行負載模擬系統的基本原理是將軟件測試工具LoadRunner作為客戶端調度工具來驅動事物腳本,由此形成很多虛擬用戶,在網絡環境下連接待測服務器端,模擬主要行業具有代表性的應用所處理的負載狀態。模擬系統由腳本生成模塊、負載發生器、監測控制報告模塊、中心控制模塊和其人機交互接口組成。圖1為基于LoadRunner的銀行負載模擬系統拓撲圖。

圖1 基于LoadRunner的銀行負載模擬系統拓撲
所謂腳本生成模塊是在建立客戶端和服務器端間的事務處理制度的基礎上,模擬實際用戶對服務器操作和訪問來編寫腳本,可以反復操作;負載發生模塊的作用是形成很多的虛擬用戶,利用虛擬用戶進行具有代表性的處理、交易、訪問等流程,由此來模擬實際用戶,并且從研究中發現所獲取的連接信息和其實際用戶發出的信息相吻合;監測控制報告模塊最大的作用是在負載發生模塊形成虛擬用戶和待測系統相銜接的時候,利用LoadRunner控制臺對部分重要的數據點進行記錄,并監聽和監測虛擬用戶的運行情況和其時間。
2.2.2 基于LoadRunner的銀行系統性能測試框架優化設計方案的提出
基于LoadRunner負載模擬系統的測試步驟是采用LoadRunner軟件測試工具調度執行測試腳本。因此,要對腳本的代碼結構進行優化,加強腳本代碼的執行效率,對腳本的運行模式進行選擇。
負載測試系統要最大限度在待測試服務器上形成巨大的壓力,當受到客戶端資源約束時,可將網絡上具有一定配置的 PC 機作為負載發生器,運行虛擬腳本,形成銀行系統的虛擬用戶。值得一提的是在進行正式的負載測試前,測試專業人員需要將不同程度的負載科學合理地調配給指定的負載發生器,也可以定義為不同類型或者性能的負載發生器需要配備相應數量的虛擬用戶,這樣防止了負載發生器資源出現枯竭的現象。
系統魯棒性測試是在給系統不斷加載的狀態下,促使軟件應用連續運行一段時間,測試其系統在這樣的狀態下能不能夠持續穩定運行。這也是銀行系統進行實際運行時所必須要進行的測試,其要實現的目標是考量系統穩定運行的時間,從宏觀的角度上來分析,在大規模壓力下進行長時間測試,如果系統在測試中始終處于穩定的狀態,可以判斷系統具有長時期穩定運行的優勢,在進行銀行系統測試的過程中,需要實時監測系統的運行情況,并掌握銀行其資源利用率的變化趨勢。
銀行網絡系統具有繁瑣性高,并發請求規模大的特點,因此要求系統具有特別高的穩定性,需要進行系統軟件測試,但是傳統的軟件測試手段難以支持系統的測試需求。針對這類問題,本文先分析了軟件測試項目背景和其行業狀態,給出了銀行軟件工程開發特點,通過對銀行系統性能測試框架的需求分析,給出銀行系統性能測試框架的設計優化方案和測試架構,結合LoadRunner的思想設計實現了LoadRunner銀行的負載模擬系統,為保障銀行系統穩定運行創造了有利條件。
[參考文獻]
[1]杜洪波,郭光,高峰,等.Android平臺惡意軟件檢測系統設計與實現[J].軟件導刊,2015(12):104-106.
[2]陳銳忠,魏理豪,梁哲恒.基于UML建模的軟件測試系統設計[J].電子設計工程,2016(21):57-59.