1.“云測試”簡介
云測試是基于云計算的一種新型測試方案,云計算通過網絡以按需、易擴展的方式向用戶交付所需的資源,包括基礎設施、應用平臺、軟件功能等服務。
云計算包含三種不同服務類型:SaaS、PaaS和IaaS。SaaS(Software as a Service,軟件即服務)指的是通過瀏覽器,以服務形式提供給用戶應用程序;PaaS (Platform as a Service,平臺即服務)指的是以服務形式提供給開發人員應用程序開發及部署平臺,讓其利用此平臺來開發、部署和管理SaaS應用程序。平臺一般包含數據庫、中間件及開發工具,所有都以服務形式通過互聯網提供;IaaS (Infrastructure as a Service,基礎架構即服務)指的是以服務形式提供服務器、存儲和網絡硬件。這類基礎架構一般是利用網格計算架構建立虛擬化的環境,因此虛擬化、集群和動態配置軟件也被涵蓋在IaaS之中。
從云計算的服務類型來區分,基于云計算技術的云測試屬于PaaS層。它是軟件測試工具(包括功能測試工具、性能測試工具等)服務商提供一個測試平臺,軟件開發企業在其平臺上進行相關自動化測試、不再在本地計算機上安裝和使用這些工具。這種無須本地安裝和配置測試環境,在遠程測試平臺上進行測試的方式就叫云測試。
云測試是一種利用云優勢的測試方法,主要用來降低測試所耗時間或者模擬應用的真實流量。此外,為了滿足高流量web應用的擴展需求,測試需要具有擴展性。
Matt Heusser提到,過去非常流行測試實驗室,占用了許多空間和各種機器。
實驗室面積數百平方英尺,包含5-20臺計算機。每一臺計算機配置不同組合的系統軟件。我們不得不安裝、測試,然后可能為了下一次測試而重裝機器。
如今情況大有不同。在類似VMware Fusion的工具的幫助下,我們可以在同一臺機器上運行不同的軟件配置。同樣,在同一臺物理設備上也可以運行若干服務器的實例。因此,創建測試環境就像輸入一行命令那樣簡單。為了減少測試執行的時間,Matt建議使用分布式計算方法。
想象一下,把測試集合劃分成十幾個(或者一百個)測試,分配到15臺計算機上,每臺計算機執行一個測試,反饋結果,然后執行下一個。如果使用虛擬化工具,可以從云托管提供商以極低的價格租用處理器時間和空間。一次測試周期花費的時間只取決于最慢的那個測試。
憑借例如模式驅動自動化測試的方法,我們可以在很短時間內并發執行各種測試場景。
Jim Ensell認為云對敏捷開發產生了積極的影響。
據Jim介紹,開發人員和QA經理會經常希望利用云資源來多平臺測試、并發運行單元測試和功能測試、有效地執行負載測試。這些測試特別適合公共云,因為它們會大規模使用云資源,并且隨著時間推移有不同的需求變化。而且,云資源的定價模式也非常適合。
Devcentral提到如今Web應用的擴展性需要通過類似擴展的測試環境來測試。感謝云資源,公司可以避免耗費成本來搭建測試基礎設施。
自動化的應用互聯網擴展也可以采取同樣的方式,以較低的成本用于互聯網擴展測試解決方案。因此,你所需的只是一個能夠部署在云中的負載生成客戶端,一些云計算環境,和一種控制這些分布式客戶端的方法,通過這種方式可以生成必要的擴展負載讓應用和基礎設施達到極限。
但是,云測試存在一些潛在問題。
比如,測試人員可能會像開發團隊一樣提問:“如果云出現故障了怎么辦?”其他重要的問題還包括備份策略、修復策略和從測試數據丟失中恢復的機制。
盡管有一些問題,云提供了測試的強大平臺。關鍵元素在于定義需求,并找到辦法以較低的成本有效地利用巨大的資源。
2.“云測試”的必要性
在企業的信息化建設過程中,通常需要對軟件全生命周期進行系統化的測試,確定系統過程度量和質量度量,保證企業信息系統有序可控的設計、開發和運行,并實現對軟件全生命周期的質量控制和過程管理。同時許多應用系統的上線運行、升級改造、運行維護都需要進行大量且頻繁的系統測試。在日常的測試工作中,出現因測試資源不足而推遲測試時間、環境工具配置復雜而延長測試周期的情況。測試任務重、成本高、時間緊、人員和軟硬件資源缺乏成為當前需首要解決的問題。
針對當前存在的問題,利用云計算技術可以實現企業內多個團隊的測試平臺共享。在建設測試基礎設施方面,云測試可實現巨大節省,將前期的高額投入分攤到多個測試用戶上,無需擔心大量的硬件、軟件和人力資源成本。
云測試提供一整套測試環境,測試人員登錄到該測試環境,就可以立即展開測試。這將軟硬件安裝、環境配置、環境維護的代價轉移給云測試提供者,極大地減少了測試環境搭建時間,如機器和網絡準備、操作系統安裝、各種測試工具軟件安裝等,提高了測試效率;在云測試平臺上進行性能測試,可以開啟更多的客戶端,獲得更加強大的運算能力,能夠盡早發現和應對意料之外的流量高峰,讓測試軟件獲得巨大的性能改善。
云測試不但可以提供完整的測試環境,還可以提供許多附加服務,如提供測試用例、測試數據、自動測試服務等。相比提供虛擬化的測試環境,此類服務更專注于特定的業務領域,提供了稀缺的專業技能,附加值更高。
3.大型企業信息系統中的“云測試”應用
(1)選擇云配置
國家標準與技術研究院(NIST)提出一套關于云的定義,該定義提出了4種不同的云配置:
公共云:公共云的云服務通常遍布整個因特網,能夠服務于幾乎不限數量的、擁有相同基本架構的客戶。如Cloud Testing企業能提供多種瀏覽器的平臺,一般的用戶在本地用Selenium把自動化測試腳本編寫好,然后上傳到企業網站,就可以在其平臺上運行Selenium腳本。
私有云:這種類型的云針對單個機構特別定制,例如一些金融機構或政府機構。私有云都會采用一些虛擬化操作系統和網絡技術,因此能夠降低使用服務器和網絡設備的數量,或者使這些設備的管理更為明晰。
社區云:社區云專為一系列互不相連的、嚴格界定的機構而設立,如供應鏈或是多個政府機構的聯合體等使用實例。
原文轉自:http://www.anti-gravitydesign.com