閔嘯
(中國船舶重工集團公司第七二三研究所 江蘇省揚州市 225011)
軟件測試是軟件開發(fā)活動的重要組成環(huán)節(jié),其主要作用在于檢驗軟件的功能水平,分析軟件的安全性、完整性與可投用性。因此,可將軟件測試視為軟件質(zhì)量的“把關(guān)者”,其可靠與否將直接影響到軟件的開發(fā)效果與應(yīng)用價值。但從目前來看,傳統(tǒng)的軟件測試技術(shù)已逐漸落后于社會發(fā)展,尋找“云時代”下的新型軟件測試手段勢在必行。據(jù)此,我們有必要對基于云計算技術(shù)的軟件測試展開探究討論。
對于“基于云計算技術(shù)的軟件測試”這一概念,可分成“軟件測試”與“云計算”兩個部分進(jìn)行解讀。所謂“軟件測試”,就是對軟件的模塊功能、代碼質(zhì)量、數(shù)據(jù)安全等方面進(jìn)行檢測分析,以評估其是否符合開發(fā)設(shè)計的方案要求與效果預(yù)期。一般情況下,發(fā)現(xiàn)系統(tǒng)漏洞、功能錯誤、代碼缺陷、數(shù)據(jù)風(fēng)險的水平越高、范圍越廣,即代表軟件測試的技術(shù)水平或平臺質(zhì)量越優(yōu)秀。而“云計算”,則是大數(shù)據(jù)技術(shù)發(fā)展下的“云時代”產(chǎn)物,其主要通過由多個子服務(wù)器組成的運算系統(tǒng),對海量化的數(shù)據(jù)信息進(jìn)行分布式運算與具體化分析,并在得到相應(yīng)的運算結(jié)果后,對系統(tǒng)、用戶進(jìn)行綜合反饋。同時,隨著新時代的不斷推進(jìn)與信息技術(shù)的持續(xù)融合,云計算逐漸在定義上突破了單一的分布式數(shù)據(jù)計算技術(shù),轉(zhuǎn)而形成了包含分布式計算、并行式計算、虛擬化分析、熱備份冗余、海量數(shù)據(jù)存儲等多種功能于一體的技術(shù)體系,其對數(shù)據(jù)信息的分析能力也隨之有了顯著提升?;诖耍瑢⑸鲜鰞蓚€概念進(jìn)行融合,即可將“基于云計算技術(shù)的軟件測試”定義為:在云計算的虛擬環(huán)境下,通過多種大數(shù)據(jù)分析方法評估測定應(yīng)用軟件開發(fā)質(zhì)量與設(shè)計水平的測試活動[1]。
從目前來看,與傳統(tǒng)時期的測試方法相比,基于云計算技術(shù)的軟件測試主要表現(xiàn)有以下幾點優(yōu)勢:
(1)傳統(tǒng)手工測試方式對測試人員具有較強的素養(yǎng)依賴性,若測試人員缺乏豐富的軟件測試經(jīng)驗與編程開發(fā)知識,或存在消極怠工的負(fù)面情況,將很難在復(fù)雜的測試工作中形成客觀、正確且全面的評估判斷,相應(yīng)的測試結(jié)果也就難以保質(zhì)。與之相比,云計算技術(shù)下的軟件測試工作不會受到人因風(fēng)險影響,測試結(jié)果的可靠性、客觀性與標(biāo)準(zhǔn)性均優(yōu)于傳統(tǒng)時期。
(2)在傳統(tǒng)時期,培養(yǎng)出一個邏輯思維縝密、技術(shù)知識完備、專業(yè)素養(yǎng)優(yōu)秀的測試人員,需要投入大量的人力、物力與資金成本。而受限于軟件程序的結(jié)構(gòu)復(fù)雜性與數(shù)據(jù)海量性,優(yōu)秀的測試人員往往也需要在軟件測試中耗費較多時間與精力。相較之下,云計算技術(shù)采用了分布式計算的數(shù)據(jù)信息處理方式,可實現(xiàn)多個云端服務(wù)器的共同運作,故而能在數(shù)分鐘甚至數(shù)秒內(nèi)實現(xiàn)以萬為單位的軟件數(shù)據(jù)分析。因此,將云計算技術(shù)應(yīng)用到軟件測試的工作實踐中,更具經(jīng)濟性與高效性。
(3)在傳統(tǒng)時期,雖然已有依托程序腳本的自動化、專業(yè)化軟件測試工具出現(xiàn),但其市面價格大多高昂,中、小型企業(yè)單位較難承受。同時,很多軟件開發(fā)項目中僅涉及到幾次甚至一次測試任務(wù),因此相關(guān)自動化測試工具的利用率與其投入成本難達(dá)對等。從這一方面來看,基于云計算技術(shù)的軟件測試平臺搭建成本更低,且具備良好的復(fù)用能力,可在軟件測試活動中表現(xiàn)出更高的投入性價比。
所謂云測試平臺,即為用戶提供出一種以云計算為框架的軟件測試環(huán)境。在此平臺環(huán)境當(dāng)中,用戶可根據(jù)自身的軟件測試需求與具體評估指標(biāo),進(jìn)行云測試方案的自定義編制與云測試任務(wù)的靈活化執(zhí)行?,F(xiàn)階段,常見的云測試平臺有YETI、D-Cloud、Cloud9 等,其均可滿足兼容性測試、數(shù)據(jù)安全測試、響應(yīng)延遲測試、軟件功能測試、數(shù)據(jù)流壓力測試等多種項目的工作需求。
從某種程度上來講,可將云測試工具視為云測試平臺的“拆解構(gòu)件”。通常來講,云測試工具的功能是單一的,即單個工具與壓力測試、兼容性測試等單個軟件測試項目或更細(xì)小的單個評估指標(biāo)相對應(yīng)。用戶在軟件測試活動中使用云測試工具時,通常采取模塊化理念,按軟件開發(fā)與軟件測試的具體需求,對云測試工具進(jìn)行個性化的結(jié)構(gòu)組合與策略調(diào)度,從而構(gòu)建出為軟件對象“量身定制”的測試環(huán)境。其后,再對測試環(huán)境的各項執(zhí)行參數(shù)、算法標(biāo)準(zhǔn)進(jìn)行配置輸入,即可為軟件創(chuàng)造出完備、優(yōu)質(zhì)的測試條件。最后,在各類云測試工具依托云計算技術(shù)完成相應(yīng)的數(shù)據(jù)處理任務(wù)后,即可在短時間內(nèi)進(jìn)行測試報告的自動編制生成,為用戶提供出軟件質(zhì)量的有效評估依據(jù)。同時,將云計算技術(shù)與數(shù)據(jù)整理技術(shù)協(xié)同運用到云測試工具的模塊應(yīng)用當(dāng)中,還可在測試報告生成的同時,實現(xiàn)表格、圖像等可視化資料的同步編制,進(jìn)一步為用戶的軟件評估活動提供便利[2]。
將云計算技術(shù)融合到軟件載體當(dāng)中,為用戶提供出相對系統(tǒng)性、便捷性的軟件測試支持,也是云計算技術(shù)下軟件測試應(yīng)用的常見表現(xiàn)形式。在實踐中,云測試軟件的運作機理與常規(guī)軟件平臺相似,其具有相對固定的模塊架構(gòu),可滿足用戶編寫軟件程序、調(diào)整測試項目的大部分需求。其特殊之處在于軟件的運行環(huán)境并不在本地計算機系統(tǒng)當(dāng)中,而是在云端服務(wù)器上。所以,云測試軟件可在很大程度上突破計算機系統(tǒng)在處理器運行水平、數(shù)據(jù)庫承載能力等方面的限制,獲得更大規(guī)模、更快速度的軟件數(shù)據(jù)分析能力。但需要注意的是,云計算軟件的后臺運行流程、資源分配方式均處于智能化、自動化配置狀態(tài),因此具有不可見性。一旦測試軟件本身存在故障,往往很難及時得到感知與處理。所以,云測試軟件多用于常規(guī)測試項目的任務(wù)執(zhí)行當(dāng)中,如軟件壓力測試、軟件基本性能測試等。
結(jié)合目前軟件開發(fā)與軟件測試行業(yè)的發(fā)展現(xiàn)狀,主要對云測試系統(tǒng)的架構(gòu)設(shè)計提出以下幾點功能需求:
(1)基于云計算技術(shù)的軟件測試系統(tǒng)應(yīng)以云端服務(wù)器為運行環(huán)境,故而需要將瀏覽器作為通道支持。所以,應(yīng)保證系統(tǒng)面向多種常用瀏覽器具備兼容性,具體包括IE 瀏覽器、Fire Fox 瀏覽器、Chrome 瀏覽器等。
(2)應(yīng)盡量保證云測試系統(tǒng)的界面簡潔、模塊清晰,使用戶在登錄系統(tǒng)、觀看系統(tǒng)主界面時,可順利依靠文字或圖像引導(dǎo)完成測試腳本編制、測試程序上傳、測試參數(shù)輸入、測試標(biāo)準(zhǔn)設(shè)置、測試狀態(tài)感知、測試結(jié)果獲取等一系列實踐行為。
(3)為了實現(xiàn)不可見性測試問題的有效規(guī)避,使用戶及時排查測試軟件或測試腳本自身存在的缺陷,應(yīng)在云測試系統(tǒng)中配備出云回放功能,實現(xiàn)測試過程中后臺程序流程、參數(shù)變化的全面呈現(xiàn)。
(4)采取分布式計算、并發(fā)式運行的測試機制,實現(xiàn)不同測試項目、質(zhì)量指標(biāo)的一鍵性操作、同步性測試評估。通過這樣的機制,可大幅節(jié)約軟件測試的耗費時間,使用戶獲得更高水平的系統(tǒng)應(yīng)用體驗。
云測試系統(tǒng)共由用戶交互層、服務(wù)管理層以及資源管理層三個層次組成。其中,用戶交互層主要負(fù)責(zé)用戶的操作引導(dǎo)與信息的界面呈現(xiàn),用戶可在該層中完成系統(tǒng)登錄、腳本上傳、參數(shù)設(shè)置等操作,并直觀獲取到各項測試任務(wù)的報告結(jié)果;服務(wù)管理層主要負(fù)責(zé)所有測試任務(wù)、測試腳本的運行與反饋,并對用戶登入賬戶的服務(wù)權(quán)限進(jìn)行審核與匹配;資源管理層為云測試系統(tǒng)的核心部分。在用戶提交測試項目、測試腳本后,資源管理層可根據(jù)用戶的具體需求,進(jìn)行算法工具、功能模塊等各類資源的協(xié)調(diào)調(diào)配,以支持軟件測試活動的順利完成。
在設(shè)計用戶交互層時,應(yīng)保證系統(tǒng)界面包含賬戶管理、項目管理、腳本管理以及報告管理四個部分。其中,賬戶管理需設(shè)計出注冊、登錄、修改密碼以及注銷四個鍵入功能;項目管理需設(shè)計出項目創(chuàng)建、項目顯示、項目參數(shù)修改、項目刪除以及項目執(zhí)行五個鍵入功能;腳本管理需設(shè)計出腳本呈現(xiàn)、腳本添加、腳本刪除、腳本編制以及腳本參數(shù)存儲五個鍵入功能;報告管理只需設(shè)計出報告生成、報告保存與報告閱讀三個鍵入功能即可。通過這樣的設(shè)計方式,可基本滿足用戶在軟件測試中的界面觀看與按鍵操作需求。
在設(shè)計服務(wù)管理層時,應(yīng)將該層次分為測試管理、費用管理、后臺監(jiān)測以及結(jié)果處理四個部分。其中,測試管理模塊應(yīng)與云端服務(wù)器建立連接,進(jìn)行各項測試任務(wù)的云部署、運計算;費用管理模塊可將虛擬機數(shù)量、計算CPU 使用情況、云端數(shù)據(jù)庫占用情況、測試時長等作為指標(biāo),進(jìn)行付費標(biāo)準(zhǔn)的合理設(shè)置;后臺監(jiān)測模塊可以Timer 類循環(huán)指令為核心,進(jìn)行云端服務(wù)器數(shù)據(jù)庫、虛擬磁盤、CPU 等部位參數(shù)的動態(tài)采集與存儲,直至軟件測試項目結(jié)束時同步停止;結(jié)果處理模塊應(yīng)配置出多種云計算工具與數(shù)據(jù)整理工具,從而依托后臺檢測模塊導(dǎo)入的海量數(shù)據(jù),實現(xiàn)軟件測試報告的編制生成,并進(jìn)一步轉(zhuǎn)化呈現(xiàn)出表格、圖像等信息載體[3]。
在設(shè)計資源管理層時,應(yīng)保證該系統(tǒng)層次對虛擬機、云端數(shù)據(jù)庫、虛擬磁盤等軟件測試的處理機構(gòu)具備導(dǎo)向能力,以實現(xiàn)各方資源的動態(tài)調(diào)度與靈活運用,為軟件測試項目的完成提供充足資源保障。
總而言之,基于云計算技術(shù)的軟件測試方法及工具在很大程度上解決了傳統(tǒng)時期人工測試、自動化測試在投入成本、耗費時間、性價比、人因風(fēng)險等方面的避免問題,具有高度的應(yīng)用價值與推廣前景。在軟件開發(fā)與軟件測試的實踐應(yīng)用中,相關(guān)人員要根據(jù)實際的軟件測試項目需求,進(jìn)行云測試工具的科學(xué)選用與合理配置,以獲取到全面、準(zhǔn)確的測試報告,為軟件程序調(diào)整、軟件漏洞修復(fù)、信息安保強化等后續(xù)工作提供可靠的評估依據(jù)。