基于云計算的軟件測試服務

發表于:2012-07-12來源:博客園作者:liangshi點擊數: 標簽:云計算;測試服務
James A. Whittaker在《探索式軟件測試》中展望了“軟件測試的未來”,其中提到了基于云計算的軟件測試服務。受大師的啟發,我也斗膽展望一下云計算在軟件測試領域的應用(簡稱“云測試”)。本文的許多想法只是推測或遐想,未經深思熟慮和廣泛調研,想必包含許

  James A. Whittaker在《探索式軟件測試》中展望了“軟件測試的未來”,其中提到了基于云計算的軟件測試服務。受大師的啟發,我也斗膽展望一下云計算在軟件測試領域的應用(簡稱“云測試”)。本文的許多想法只是推測或遐想,未經深思熟慮和廣泛調研,想必包含許多錯誤,權當是拋磚引玉吧。

  在走上“云”之前,先審視一下本地(local)測試環境的現狀。

  硬件快速發展,性價比持續升高。目前,高端的移動CPU已經支持4個內核(8個硬線程)、8M二級緩存,其配置與若干年前的工作站無異。再過一兩年,主流的筆記本電腦都將具備此等計算能力,這意味著任何一個開發者都可以擁有真正的“移動工作站”。企業也可以用至強等“廉價”硬件,用相對小的花費,搭建測試實驗室。

  虛擬化技術日趨成熟。利用現有的操作系統虛擬化技術,可以在一臺物理主機上構建出多臺虛擬機。而且,Intel和AMD加強了x86 CPU對虛擬化的支持,使得虛擬化軟件更加高效,虛擬機的性能有了很大的提高。

  虛擬化管理快速發展。主流的虛擬化軟件開發商都提供了完整的虛擬機管理軟件,能夠在一個界面中管理虛擬機及其宿主物理機。構建一個由虛擬機的組成的測試環境非常方便,而且維護代價相對物理機要低很多。

  測試工具將內建虛擬化。Microsoft Visual Studio 2010所提供的Test Manager就是一個基于虛擬機的測試管理、運行、診斷工具。測試人員定指定拓撲結構后,它能夠生成由虛擬機組成的測試環境。測試人員在該環境中執行測試用例,它可以記錄執行的軌跡(注冊表訪問、系統日志訪問、屏幕錄像等),為進一步的診斷提供線索。

  許多測試將依賴于模擬器。隨著iPhone、iPad等移動設備的爆發式流行,許多開發者已經將注意力投向移動平臺。他們一般使用廠家提供的模擬器來開發、測試、調試軟件。對于他們,模擬器就是整個測試環境。

  可見,隨著硬件和虛擬化技術的發展,測試人員利用本地的計算能力很容易構建出強大的測試環境。對于個體開發者和小型企業,筆記本電腦的計算能力可能已經足夠;對于具備一定規模的企業,小型機房就能提上百臺不同軟硬件配置的虛擬機和不同網絡拓撲的測試環境。

  那么,本地測試有什么困難,使得云計算可以一展身手呢?

  軟件價格昂貴。Microsoft Test Manager使用虛擬機搭建測試環境,每臺虛擬機需要單獨的許可證;Test Manager是客戶端-服務器架構,服務器要許可證,每個客戶端也要許可證。不只是Microsoft,其他的商業測試軟件也是如此(例如,商業性能測試工具根據虛擬用戶數收取費用),這些都是不菲的開銷。目前,軟件開發者的困境是購買了昂貴的軟件,卻使用寥寥,待兩三年后新版本上市,又要破費升級。利用云計算技術,可以將先期的高額投入,分攤到多個測試用戶上,降低使用門檻。例如,公共云可以利用虛擬桌面將測試環境提供給企業或個人,私有云可以實現公司內多個團隊的測試平臺共享。

  難以獲得超大規模的計算能力。在某些情況下,需要模擬出上百萬個虛擬用戶以進行性能和壓力測試。對于小型企業或個人,他們的硬件難以提供如此規模的計算能力。此時,他們可以租用云測試服務,以獲得強大的運算能力。

  許多應用基于云計算,利用云計算來進行測試順理成章。當前,許多開發者將其應用部署在Windows Azure、Google App Engine等云計算平臺上,一些端到端的功能測試、性能測試、容量測試也可以在“云”上完成。例如,微軟可以考慮提供Windows Azure應用的性能測試服務。它接受開發者提供測試用例(用MSTest、NUnit等指定測試框架編寫)和測試參數(如虛擬用戶數、帶寬設置、瀏覽器設置等),在云上運行測試,并返回詳細的測試報告。測試報告除了包括常見的性能指標,還可以提供Windows Azure的特有信息,例如:“您現在租用的計算能力最多支持1000個并發用戶,根據最近三個月的服務日志,您的并發用戶數將在一個月后超過1000人,建議您提高計算能力至XX,以滿足業務發展的需要”。

  運行環境配置復雜。大部分軟件受到運行環境的影響。以一個需要訪問互聯網的應用程序為例,它能否正常運行受到以下因素影響:防火墻配置、本地網絡配置、企業防火墻配置、本地安全性設置、注冊表設置、UAC配置、同時運行的其他的應用程序等。參數的組合呈現爆炸性增長。即便有虛擬化軟件輔助,在短時間內也難以完成相應的配置測試。云測試服務商可以預先構建好大量配置各異的虛擬測試環境,提供詳細的配置說明,推薦給測試人員。測試人員可以選擇少數典型的測試環境,自行實施配置測試,也可以將測試用例提交給云,讓測試并發地運行在大量的測試環境中,以在短時間內獲得大量的測試反饋。

  缺乏測試積累。許多軟件缺乏測試用例,在模糊測試(Fuzzy Testing)、安全性測試等需要專家經驗的領域尤其如此。云測試服務商可以預先準備海量的測試用例以租用給測試人員。例如,它可以為Office兼容性測試提供大量的Office文檔:包含大量格式、圖片和宏的真實文檔(抹去用戶信息)、包含攻擊指令的惡意文檔、包含特殊符號與格式“極限”文檔(旨在考察排版引擎的健壯性)等。相比提供虛擬化的測試環境,此類服務專注于特定的測試領域,提供了稀缺的專業技能,附加值更高。

  歸納以上幾點可知,云測試的最大優勢在于立即可用、裝配完備和專家服務。

  立即可用。云測試提供一整套測試環境,測試人員利用虛擬桌面等手段登錄到該測試環境,就可以立即展開測試。這將軟硬件安裝、環境配置、環境維護的代價轉移給云測試提供者(公共云的經營者或私有云的維護團隊)。以現在的虛擬化技術,在測試人員指定硬件配置、軟件棧(操作系統、中間件、工具軟件)、網絡拓撲后,創建一套新的測試環境只要數2~4個小時。如果測試人員可以接受已創建好的標準測試環境,那么他可以立即登錄。

  裝配完備。云測試不但可以提供完整的測試環境,還可以提供許多附加服務。對于測試機,它可以提供還原點,以便測試人員將虛擬機重置到指定狀態。對于測試執行,它可以監控被測試程序程序的一舉一動,例如注冊表訪問、硬盤文件讀寫、網絡訪問、系統日志寫入、系統資源占用率、內存映像序列化、屏幕錄像等。將這些信息與測試用例一起展現出來,可以幫助測試人員發現問題,定位錯誤。對于大規模的測試,云測試可以提供多臺測試客戶機,他們從主控機上下載測試用例,執行并匯報測試結果,主控機將結果匯總后報告給測試人員。實際上,這些功能已經被各種工具所實現,云測試平臺的任務是整合它們,提供統一、完備的功能。這樣,測試人員就可以將精力最大限度地投入到專屬的測試領域中,而不是與各種工具搏斗。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97