雲測試
基於雲計算的新型測試方案
雲測試(Cloud Testing),是基於雲計算的一種新型測試方案。服務商提供多種平台,多種瀏覽器的平台,一般的用戶在本地用Selenium把自動化測試腳本編寫好,然後上傳到他們網站,然後就可以在他們的平台上運行Selenium腳本。
雲測試提供一整套測試環境,測試人員利用虛擬桌面等手段登錄到該測試環境,就可以立即展開測試。這將軟硬體安裝、環境配置、環境維護的代價轉移給雲測試提供者(公共雲的經營者或私有雲的維護團隊)。以現在的虛擬化技術,在測試人員指定硬體配置、軟體棧(操作系統、中間件、工具軟體)、網路拓撲后,創建一套新的測試環境只需幾個小時。如果測試人員可以接受已創建好的標準測試環境,那麼他可以立即登錄。
雲測試不但可以提供完整的測試環境,還可以提供許多附加服務。對於測試機,它可以提供還原點,以便測試人員將虛擬機重置到指定狀態。對於測試執行,它可以監控被測試程序的一舉一動,例如註冊表訪問、硬碟文件讀寫、網路訪問、系統日誌寫入、系統資源佔用率、內存映像序列化、屏幕錄像等。將這些信息與測試用例一起展現出來,可以幫助測試人員發現問題,定位錯誤。對於大規模的測試,雲測試可以提供多台測試客戶機,他們從主控機上下載測試用例,執行並彙報測試結果,主控機將結果匯總後報告給測試人員。實際上,這些功能已經被各種工具所實現,雲測試平台的任務是整合它們,提供統一、完備的功能。這樣,測試人員就可以將精力最大限度地投入到專屬的測試領域中,而不是與各種工具搏鬥。
最高級的測試服務是提供專業知識的服務。這些知識可以通過測試用例、測試數據、自動測試服務等形式提供。例如,許多應用需要讀取文件,雲測試可以提供針對文件讀取的模糊測試。測試人員將被測試的應用程序提交給雲,雲將其部署到多台測試機上。在每一台測試上,應用程序要讀取海量的文件,每一個文件都是特意構造的攻擊文件。一旦棧溢出、堆溢出等問題被發現,立即保存應用程序的內存映像。一段時間后,測試人員將獲得雲測試返回的測試結果:一份詳細的分析報告和一大堆內存映像文件。
每個企業都在追求成本最低和利潤最大化。軟體測試作為研發生產過程的一部分也有降低成本的要求,即使用最少的機器購買最少的測試軟體來完成軟體測試工作。利用雲測試可實現巨大節省,不需要購買或準備很多的個人電腦,購買和安裝各類測試用軟體,也不再需要部署複雜的網路。只需要列出測試目的、環境的要求、虛擬機台數、何時間斷租用即可,實現按需支付。例如購買一套自動化測試軟體至少花8000元錢,測試中只需要使用2個月,但如果按800元/月租用該軟體雲測試平台,只需要支付1600元。同時隨著企業軟體版本和技術的發展,依賴的測試軟體或環境亦需要升級換代,又會產生升級和維護費用。而在雲測試環境中這些因素都無須企業考慮,交由提供雲測試服務的供應商完成即可。
用雲測試這種方式,極大地減少了測試環境搭建時間,如機器和網路準備、操作系統安裝、各種測試工具軟體安裝等都將節省,只需提前將需要的配置環境告之雲測試服務商,到時間直接使用即可。由於是基於網路上的應用,當測試中遇到軟體使用上等問題時,亦可獲得雲測試服務商遠程快速支持,而很少會出現停滯甚至停止測試現象。
目前有幾個提供雲測試服務的公司,在此簡單介紹一下:
性能測試
以SAAS服務模式對客戶的被測系統進行整體應用系統性能測試。通過雲端分佈的壓測機,按需生成高達百萬級的虛擬用戶。雲測匯性能測試平台可直接在線編輯腳本、定義測試場景、實時查看壓力測試結果。
Testin雲測試是首家面向全球提供免費App真機自動化雲測試服務平台,基於雲端部署超過300款、3000部主流智能移動設備,可實現自定義終端進行批量自動化兼容適配測試以及功能、性能、穩定性測試。已累計幫助移動開發者測試App應用700多萬次。極大的減少大量重複、枯燥的人力測試工作;節省測試終端的租用、購買成本。
2011年獲得IDG千萬美元投資;2012年加入IBM Smartcamp ;2012創業家全球訓練營和微軟雲加速計劃, 12月獲得“微軟雲加速器雲業務成長獎”和“微軟雲加速器成長之星獎”。
Testin特性
真機測試:終端雲 節省測試設備購買租賃成本
Testin雲測試基於雲端部署超過300款3000多部主流的Pad、Phone、Touch、Smart TV等智能移動設備,實時上架最新終端,免去測試終端的購買、租賃等諸多煩惱。
自動化測試:高效率 節省測試人員成本及時間
徹底告別原始的人工測試,5分鐘內自動完成安裝/卸載、啟動/運行、UI適配等枯燥手工測試,保障App應用高質量快速迭代,按期發布最新版本。
雲測試:雲測試 服務全球移動網際網路開發者
7×24小時不間斷服務,全球任何國家和地區均可在線選擇真機進行App應用與終端之間的自動化兼容適配測試及功能測試,一鍵提交,自動出具規範化的測試報告。
測試類型
1)兼容測試
①安裝卸載測試:測試App在指定終端上是否可正常安裝、正常卸載,準確定位錯誤原因。
②遍歷測試:自動識別App可執行的功能,在一定時間內遍歷App的不同功能界面,通過截圖記錄操作路徑 並輸出日誌、定位異常現象。
③運行穩定性測試:類似Monkey的隨機性壓力測試,測試App運行期的穩定性。
④UI適配測試:測試App的UI與目標終端的屏幕是否適配,記錄是否存在渲染失敗、錯位、黑邊框、黑白屏等現象。
2)性能測試
①啟動時間檢測:檢測App在終端上首次啟動時間。
②內存、CPU耗用檢測:檢測App在終端上運行時不同時段佔用內存、CPU情況。
③流量耗用檢測:檢測App在終端上運行時的網路流量消耗情況。
④電池溫度檢測:檢測App在終端上運行時,對終端的電池溫度等性能指標的影響情況。
3)功能測試
①自定義腳本測試:上傳自定義腳本,腳本中給出準確的測試方法,能自動定位錯誤及反饋出錯原因,能在結果報告中呈現測試過程出現的bug並提供重現步驟。利用JUnit快速定位代碼錯誤,幫助您正確改善產品質量。
②執行結果判定:比對每個用例的測試結果,未通過用例給出準確的日誌分析。
③支持Robotium、淘寶Athrun框架:支持Robotium、淘寶Athrun框架編寫的自動化測試腳本。
易測雲由國內知名軟體公司東軟出品,是一個專業為安卓APP產品提供適配測試、功能測試、遍歷測試、性能測試等多種服務的真機自動化雲測試服務產品,主要面向所有安卓APP 產品開發者和測試者並為其提供優質、高效的雲測試服務,解決因為安卓平台的碎片化帶來的應用程序測試投入成本高、執行效率低等問題,為APP品質保駕護航!易測雲目前支持Robotium、Athrun、Guerrilla等開源測試框架,並使用基於控制項識別的、東軟自主研發的測試工具Radar,最大化滿足自動化、自定義測試需要,大幅提高測試效率。
服務範圍
(1)適配測試:易測雲提供200+真機設備,包括不同解析度和版本的安卓手機和平板,為開發者提供更加全面的適配測試,且易測雲還可支持APP登錄測試,即可以深度測試APP在登錄之後的各項適配兼容指標。
(2)功能測試:易測雲自主開發的開源測試框架Guerrilla,可以方便測試人員快速書寫測試腳本,同時易測雲也支持基於Robotium和Athrun的測試腳本。易測雲支持手寫腳本和錄製腳本2種腳本生成模式,且易測雲可支持腳本自定義,用戶可根據實際需要對腳本進行編輯、回放、截圖、斷言等任意操作,靈活便捷的腳本處理大大增加了功能測試的易用性和智能性,更符合開發者和測試者的實際需求。用戶只需將處理完畢的腳本一鍵提交到易測雲服務系統,一杯咖啡的時間便可以獲得測試結果。
(3)遍歷測試:深度遍歷應用程序的所有界面,且記錄下遍歷過的所有Activity和控制項,自動生成遍歷路徑,為開發者提供最全面地截圖,路徑和Log日誌,方便定位和分析問題
(4)性能測試:可記錄和測試APP的啟動時間、CPU佔用率、內存佔用值、電池溫度、上傳網路流量、下載網路流量 這六項指標。
除以上4個測試服務,易測雲自主研發的、功能強大的錄製工具 Radar,它幫助易測雲的功能測試變得更加強大,Radar是基於Eclipse的錄製插件,錄製即可生成代碼,可編輯,可自定義截圖和斷言,方便快捷的實現自動化測試,錄製基於控制項識別,支持webview框架,識別率更高。
解決問題
(1)幫助產品解決兼容性、功能、性能等問題,提升APP產品質量
東軟易測云為用戶提供200+台主流的Android真實設備,包括手機和平板電腦,用於執行功能測試、適配測試、遍歷測試和性能測試。用戶很輕鬆的即可在所有這些真實設備上執行測試,並得到詳細的測試結果,從而在應用程序推向市場前解決兼容性、功能和性能等方面的問題,保證產品的高質量。
(2)提高測試腳本的編寫和維護效率
東軟易測云為用戶提供了測試錄製工具Radar,使用該工具可以快速地生成可適用於不同屏幕的測試腳本。在應用程序升級時,測試腳本只需要做少量的改動即可適用於新版本的應用程序,減輕維護測試腳本的工作量。
(3)節省購買設備的費用
1)實現遠程控制真實設備的功能,開發人員可以在登錄易測雲系統后,選擇任何可用的設備進行應用程序的調試,而不需要因為本地沒有這款設備而進行購買,或者放棄應用程序在這款設備上的兼容性。
2)對於自動化功能測試,一般性測試套件,性能數據收集等測試,用戶可以選擇易測雲系統提供的所有設備,而本地不需要擁有這些設備。
(4)節省人力成本
即使有大量的設備,也需要花費大量的時間在每個設備上做重複的測試,以及需要花時間編寫測試腳本。使用東軟易測雲,可以讓測試錄製工具錄製測試腳本,完成後直接上傳到東軟易測雲進行測試。不需要花過多的時間即可得到全部主流真實設備上的測試結果,測試期間,用戶還有很多自由的時間去做其他工作。
這個公司能提供多種瀏覽器的平台,一般的用戶在本地用Selenium把自動化測試腳本編寫好,然後上傳到他們網站,然後就可以在他們的平台上運行Selenium腳本了。該公司優點是:平台和瀏覽器覆蓋得廣,按需付費。Cloud Testing是一個基於UI自動化測試的雲測試平台
keynote公司發布了kite工具,這個感覺比Cloud Testing更加弱一點,該工具是基於桌面的測試軟體,編輯和分析網站性能,給出可視化分析結果,能夠提供性能測試標準給整個web應用生命周期。該工具擁有獨立的瀏覽器,用戶在這個瀏覽器上錄製腳本,然後上傳,可以在keynote公司不同的可用地點中運行測試,查看結果。
SOASTA發布的CloudTest可以測試任何Web應用程序,從功能測試、回歸測試、負載測試,性能測試等。該工具基於瀏覽器運行,並具備較好兼容性。用戶可以在任何時間、任何地點,通過計算機的瀏覽器和網際網路就可以開展測試工作。
這個公司不單隻提供了功能測試,而且還有性能測試。感覺上性能測試應該是利用雲計算的一個非常重要而且有意義的點。貌似這個公司不是那麼開放,沒有太多公開的資料,所以不知道他們是怎麼運作的。看他們的網站的一些成功案例,說的挺好,不過這樣相對於在公網做性能測試,不知道會不會有問題:
1. 帶寬問題,例如雲那段設定的帶寬是1Mb,那麼雲和端之間的帶寬是否能真正達到1Mb呢
2. 安全問題,這些性能測試的腳本不會日後成為攻擊的工具吧
突然覺得,現在做CDN的公司,其實他們可以兼營性能測試,因為他們的伺服器分佈的跟真實情況最接近的,而且也有足夠多的伺服器資源和帶寬。
為大家提供安卓應用程序的測試服務。網站提供多種平台多種型號的安卓測試手機,用戶隨傳隨測;包含多種測試類型,如適配測試、性能測試、功能測試、遍歷測試等;強大的錄製腳本插件;詳細實用的測試報告;以及簡單人性化的操作體驗。
兼容性測試——高效,易用。包括安裝測試,卸載測試,屏幕適應測試
遍歷測試——全面,專業。無需編寫腳本,自動遍歷,頁面截圖,記錄操作路徑
性能測試——全面,細緻。啟動時間,內存佔用,CPU佔用,網路流量
腳本編寫錄製——在線編輯錄製腳本,代碼補全,真機操作
1.
兼容性測試——高效,易用。包括安裝測試,卸載測試,屏幕適應測試
2.
遍歷測試——全面,專業。無需編寫腳本,自動遍歷,頁面截圖,記錄操作路徑
3.
性能測試——全面,細緻。啟動時間,內存佔用,CPU佔用,網路流量
4.
腳本編寫錄製——在線編輯錄製腳本,代碼補全,真機操作
通過雲測試的定義我們看出:凡是測試中需要使用的軟體工具和環境都可進行雲測試,當前適合做雲測試的項目或內容大概有:
硬體環境:測試軟體在不同應用場景下對硬體環境的要求;
軟體環境:操作系統、資料庫、瀏覽器等,測試軟體對不同運行平台的適應性;
適應性軟體:防火牆及防病毒軟體等,測試在安裝不同防火牆及防病毒軟體時,軟體運行可靠性;
功能自動化測試:進行軟體自動化測試;
性能測試:進行軟體性能和壓力測試。
隨著雲計算技術的發展,為軟體測試服務的各種應用亦將得到發展。適合做雲測試的項目也將不斷增多。
內外部測試意味著把整個雲基礎設施當作一個系統來進行測試。其範圍依賴於組織和應用的設置。雲系統可以是單個的,也可以是內部的,或者也可以是多系統的,既有內部也有外部的。測試的一項重要考慮是識別雲系統的結構以及受測試應用在系統內是如何運作的。測試者需要知道所有的連接點,包括數據連接和傳輸的細節,或者用來傳遞信息給應用的數據消息服務。
從測試每一個雲的內部功能開始,然後為所有的連接點或額外的雲建立測試。注意,知道雲的性質以及雲是內部的、外部的還是混合的很重要。測試需要被修改為在內部雲完全測試數據的安全,並測試該數據是可以被外部訪問還是通過消息系統訪問。
測試雲端應用包括類似用於Web應用測試的滲透和數據測試技術。不同的是系統結構和基礎設施有雲供應商而不是內部組織管理時測試者獲得訪問的數量。其主要目標使驗證數據和應用在內部使安全的,並測試所有的連接點,因為每一個連接都有可能是未經許可的入口或訪問。
跨雲系統測試類似於從“外部”測試,但也有不同。跨雲系統測試意味著測試公有、私有或混合雲應用。大多數雲應用的目的都是在應用以及因此也在雲系統之間共享數據。再次地,在知道雲系統的總體結構、雲應用與該系統的交互方式以及共享信息或數據方式時測試最有效。
安全測試跨雲和應用進行時,主要的關注點是確定數據是否被不恰當地訪問或共享。作為測試者,我希望看看是否可以通過操縱雲系統配置及訪問或角色安全,或者通過攔截消息或消息隊列獲得非授權的數據訪問。把注意力集中到發現以及測試任何可以被操縱為允許訪問進入雲系統的集成或連接點上。除了複雜的路徑以外,也要測試那些看似更簡單或明顯的地方,以便驗證黑客無法獲得對機密數據的訪問。
Web應用測試與雲應用測試的另一個需要記住的重要差別是,Web應用有邊界,而雲應用沒有。因為有可能是無邊界的,所以測試者需要深入全面調查任何連接點或安全邊界情況。包括測試網路訪問、邏輯錯誤以及架構性安全問題。安全測試雲應用迫使測試者跳出盒子去測試,因為雲基礎設施在設計上就是開放的。