高 翔,侯昌平,朱杰媛
(南京國電南自電網自動化有限公司,江蘇 南京 210003)
隨著當前信息科技的快速發展,軟件開發領域競爭逐漸激烈,市場對軟件質量的要求不斷提高。軟件系統測試需要一種新的技術提高其測試質量并降低其成本,而傳統軟件的測試已不能滿足當前測試的需要。因此,通過分析自動化軟件系統測試的需求,并充分考慮今后在測試中的變化因素,開發了一套利用云服務為平臺對自動化軟件進行測試的專用系統,使自動化測試具備了快捷、可靠以及易于掌握等優勢,降低了運營成本,加強了軟件在實際測試時的監控水平[1]。
云服務自動化軟件系統測試是針對確保軟件開發質量而研究的一套系統,結合了云服務的優勢,能夠提供給用戶更加安全、快捷以及方便的軟件測試型服務。云服務自動化軟件系統測試流程如圖1所示。

圖1 系統總體業務示意圖
傳統自動化的測試存在的問題主要有以下3個方面。第一,客戶與管理層無法在測試過程中進行實時跟蹤。第二,測試工作人員必須手動安裝和部署測試環境,并記錄測試Bug,以便系統開發完成后進行驗證測試。第三,在傳統測試中,不能快捷方便地保存信息數據和文檔[2]。因此,需要利用云服務優勢開發設計一套自動化管理測試系統,使得用戶可以通過瀏覽器使用和訪問云端的自動化軟件測試系統。該系統能夠解決測試工作人員必須手動安裝和部署測試環境的問題,并且能夠實時反饋自動測試的結果,節約了測試軟件的成本。
1.2.1 云服務系統功能分析
云服務系統功能是把云計算的資源提供給用戶進行使用,功能包括實時信息反饋、實時資源監控以及配置設備管理等。
1.2.2 自動化系統測試的功能分析
系統測試必須支持自動化系統測試的執行、管理、發布以及結果匯總等過程,而且必須具有測試結果自動獲得、提交測試簡單以及測試結果能夠回放與對比等功能,從而使測試管理人員與負責的工作人員能夠快速便捷地維護測試的項目[3]。需要注意,運行系統是在公司云環境下工作,所以系統安全特別重要。本系統通過災備設計、角色劃分以及管理權限限制功能等達到系統安全的目的。
1.2.3 非供能系統分析
非供能系統的功能需求包含系統性能需求、環境客戶端需求以及環境系統需求等。系統性能需求是從系統性能屬性方向出發,對系統移植性、使用性、可靠性以及安全性等方面進行規范。環境客戶端的需求包含系統人機互動上的環境方面需求,如瀏覽器的環境、客戶端平臺操作環境等[4]。環境系統需求包含服務器底層的技術性指標,如硬盤、內存以及處理器等硬件設備在性能上的需求。

表1 硬件的環境需求
2.1.1 虛擬化的資源設計方案
通過對虛擬化的資源研究分析,虛擬化的資源設計方案選用KVM技術虛擬化桌面。硬件虛擬的方案結構如圖2所示。在硬件設施基礎上,利用Hypervisor管理器將宿主資源虛擬成虛擬的硬件,并且要進行虛擬運行實證。Hypervisor是在操作平臺與物理服務器之間運行的中間層軟件,能夠許可多個平臺操作與共享應用硬件,并且能夠協調被訪問服務器所有的虛擬機與物理設備,也被稱作VMM虛擬機的監視器設備[5]。

圖2 虛擬化硬件方案
2.1.2 服務云端訪問的設計
服務云端訪問的功能是把自動化的測試功能通過服務形式供給用戶使用。本設計把自動化系統測試設計成B/S結構,因此用戶只要將瀏覽器定為客戶端出入URL訪問地址,輸入正確的密碼和用戶名登錄,就能夠使用自動化系統測試服務進行相關的操作。系統設計的界面為扁平化方案,重點突出了易操作和界面簡潔的特點。
自動化服務測試流程包括測試反饋結果、執行測試、設計測試、任務測試創建以及測試需求等過程。第一,客戶登錄的同時要提交對測試的要求。第二,測試經理有權限登錄和查看各項測試的要求,以便能夠依據要求創建相應的任務書和制定相應的計劃,并將測試任務合理分配給相應的工程師及設計師。第三,測試設計師有權限登錄和查看相關任務,以便能夠依據測試計劃設定運行參數配置、設計測試場景、組織測試數據以及建立測試腳本等。第四,系統能夠自動發送測試的內容任務,能夠調動主機上傳測試腳本并執行測試。第五,測試工程師在測試過程中依據實際情況對測試參數進行修定,并對測試中存在的缺陷加以管理。第六,完成系統測試后,測試經理與用戶能夠在系統里查看結果,并且能夠打印報告。
本文依據測試任務處理的虛擬調度實現具體模型調度的算法。首先需要確定云服務調度資源函數目標,其中能夠完成全部調度任務測試最大的數量和各個虛擬機完成任務所用的最短平均時間分別為:

式中,n為云服務數;i為任務;task為任務i完成的時間;j為虛擬機;tij為完成虛擬任務共用時間;tasknum為完成任務總數。完成任務時間由兩部分組成,一部分為任務列表等待時間,另一部分為任務物理執行時間。模型算法約束的條件:

式中,xj為虛擬完成任務總數;Cij為任務資源利用率;hj為剩余資源利用率;i0為任何任務;taski為任務時間;deadline為任務結束時間。式(3)表示全部虛擬機需要任務完成總數不大于任務表中任務的總數,任務的隊列常常會出現一些丟失,不能完成任務;式(4)表示虛擬機任務分配資源的利用率與物理機資源剩余利用率的比較;式(5)表示針對任何任務測試,分配于物理機占有資源的利用率在0~1;式(6)表示所有任務完成的最終時間。
3.2.1 功能登錄的實現
功能登錄與系統登錄的功能相同,主要是確保系統安全,對用戶身份進行權限認證和登錄記錄,為用戶進入云服務自動化軟件系統測試提供安全的驗證與權限。用戶登錄需要輸入密碼與用戶名,調用Login啟動其登錄服務,隨后利用Loginchecko檢查用戶權限與角色,通過后登錄到云服務自動化軟件系統測試相應界面。如果登錄失敗,將自動退出。
3.2.2 自動化功能測試功能的實現
自動化功能測試功能的實現是在測試開源Testlink系統管理的基礎上,以設計、分析以及需求實施二次系統的開發。其中,Testlink使用Smarty引擎模板把HTML代碼與PHP代碼實施邏輯分離,通過后臺進行程序修改,與前端的人員互不影響。具體的實施方案分為兩個方面。一方面,將所有的導航目錄放于界面頂部的導航欄里,方便用戶進行相應的選擇。用戶可以不用多次在主頁與選擇頁面進行切換。另一方面,同一界面的設計風格,模塊頁面展示使用面板divclass樣式,面板內均設有按鈕,樣式為button dass,表控件使用input class樣式。
本文通過分析云服務自動化軟件系統測試需求,研究開發了云服務自動化軟件測試系統,完成了對自動化功能系統的測試。在設計云服務自動化軟件系統測試過程里,系統具有操作簡潔和易懂的優點。