Skip Navigation Links首頁 > 產業觀察

產業觀察

軟體測試新趨勢-雲端測試概述

作者/溫慶福

[發表日期:2012/12/5]

關於雲端測試

『雲端測試』是『軟體測試工程』裡一個全新的領域,相對現行『軟體測試』方式,更廣泛運用雲端運算的資源。而雲端運算不僅為組織帶來新的業務機會,也改變了獲得運算資源(如電腦、基礎設施、數據存儲、應用程式服務)的方式,不可避免地也對軟體測試和維護造成一些重大影響,此影響被稱為”測試的雲服務(TaaS)”。

TaaS雲基礎設施被認為是一個新的業務和服務模式,雲服務供應商根據客戶的需求,在雲基礎設施中提供客戶其系統所需的軟體測試活動。另外,藉由雲計算的測試服務供應商所提供的標準化基礎設施和預先配置好的軟體架構,也能夠讓客戶相當程度地減少錯誤的發生。

雲端測試的特色

在傳統軟體開發生命週期中,測試通常被視為一種必要之惡,因為它需要一個龐大、專用的基礎設施和偶爾才使用到的資源。另外,隨著商業應用程式越來越複雜,使得企業組織很難去建立和維護這樣的即時且模仿實際客戶環境的內部測試設施。

在傳統軟體測試領域常會遭遇以下一些問題:
‧有限的測試預算,以及是否按時完成。
‧每次測試的高成本。
‧大量的測試案例。
‧很少或根本無法重新使用的測試以及使用者分散各區域。
‧測試資料流量的建立與監控

而奠基於雲計算的測試將可以解決上述問題。雲端測試提供了強而有力的組合,包括降低成本、消弭必需事先投入的資本支出等,而除了成本方面的考量,非成本因素包括類功能、需求彈性、靈活性和可用性的分散式測試環境、快速獲取基礎設施的可擴展性、強化的協同合作及更大程度的效率提升,重要的是,可以降低關鍵商業軟體上市的時間。所以,雲端測試是有效減少執行大型應用程式的測試時間和提高成本效益的解決方案。

總之,基於雲計算的軟體測試指的是,透過雲技術和解決方案,在雲計算環境和基礎設施上施行的測試與量測活動。雲端測試有以下幾個主要目標:

1.保證在雲中部署的應用程式的品質,包括其功能服務、業務流程和系統效能。
2.驗證軟體可做為雲環境裏的服務(SaaS),包括軟體在一定經濟規模上的效能、可擴展性、安全性和測量。
3.檢查所提供的基於雲的功能服務,例如自動配置功能。

測試類型

雲端測試與傳統測試類型並沒有很大的不同,主要是在環境建置跟人力成本上,可以利用雲計算及其基礎設施來達到測試的目的,簡述如下:

一、軟體功能測試

不管是網路(internet)或非網路(non-internet)程式的軟體功能測試,我們都可以使用雲端測試,在雲端環境針對客戶需求規格或系統功能要求來進行測試,而不是在組織內部機器上進行測試。

二、系統效能測試

尋找應用系統瓶頸跟限制是效能測試的一部分,而要做到這樣的測試,我們必須要在一個特定的工作負載下觀察並量測系統執行的效能。使用雲端測試,可以很容易地創造大量負載的環境和不同性質的流量需求,且可以利用其基礎設施來模擬成千上萬的不同區域使用者,有效地降低測試成本和時間。

三、壓力測試

應力測試是用來確認軟體系統的作業能力在失效之前能保持一定的有效性水準。任何應用程式的工作,即使在系統作業壓力過大的時候,都還是必須保持一定的穩定性。而要達到這樣的測試需求,必須使用模擬器(simulators)來提供可承受的高峰負載量。但是,對於組織來說,這樣的建置成本會相當的龐大或無法負荷。相反地,雲端測試提供負擔得起的成本支出和可擴展性的測試環境,用來代替需預先投入大量資金成本的測試環境。

四、相容性測試

使用雲端環境,可以根據軟體本身的需要而建立不同的操作系統作業環境,使相容性測試的環境建置成本降到最低。

五、負載測試

應用程式的負載測試涉及建立大量使用者流量,然後監控並測量系統的作業反應時間,而為了滿足某些負載標準,系統必須適度調整任何應用程式的性能。

如何應用雲端測試

企業組織想要用雲端環境來執行軟體測試,首先必須選擇提供雲端測試環境的雲端服務供應商,例如Compuware, HP, Load Impact, Neotys和SOASTA的雲測試服務。一旦企業組織完成了某一軟體系統的測試方案和測試設計,這些服務供應商就會利用雲服務器所提供的雲計算平台供應商(如亞馬遜,谷歌,Rackspace公司等),在雲測試環境中產生來自世界各地的網路流量提供軟體系統作測試。一旦測試完成後,雲端服務供應商會透過即時儀表板來提供測試結果和資料解析給企業組織的IT人員或軟體開發人員,呈現在測試執行各階段,其應用程式跟網路如何運作的完整分析。雲端測試的基本步驟大致如下:

1.開發使用者劇情
2.設計測試個案
3.選擇雲端服務供應商
4.設定基礎建設
5.平衡雲端伺服器
6.執行測試活動
7.監控測試目標
8.產生測試結果

為了讓軟體能成功地在雲端環境裡測試,測試者必須事先了解雲端平台提供者的彈性模式以及動態配置方法,了解供應商不斷變化的監測服務和服務等級協議(SLA),而如果測試者是要測試並生產商業現貨(COTS)軟體的話,最好能夠與服務供應商成為持續的運營合作夥伴。

挑戰

儘管有諸多好處,以雲端為基礎的測試也有它自己本身的侷限性,企業組織必須從不同的面向來獲取雲端測試的好處。以目前雲計算環境下,雲端測試的挑戰有下列幾點:

一、公共雲的安全性

安全性在公共雲上仍然是一個主要的問題,且以目前市場上現有的加密技術而言仍然是不夠的。

二、初期建置成本

將測試遷移到雲端的初始建置成本,跟傳統測試環境的建置比起來,相對會比較高,因為它涉及到修改原本的測試案例以適應雲端計算環境,尤其是雲端測試為一全新的軟體測試方案,這使得遷移的決定至關重要。因此,有時候對組織或特定專案軟體來說,雲端測試不一定是所有測試問題的最佳或唯一解決方案。

三、缺乏一致的標準

目前並沒有通用的/標準的解決方案,可以用來整合公共雲資源與用戶公司的內部數據中心資源,而公共雲服務供應商有自己的體系結構、運營模式和定價機制,只提供了非常小的相互操作性。

四、使用成本的考量

使用雲測試環境來測試軟體的時候,可能會有額外的成本產生,即使有些供應商提供所謂的”pay-as-you-go”的雲基礎測試收費服務,使用不當也會導致昂貴的成本跟測試需求之間無法同步。

五、基礎設施的限制性

有些雲供應商只提供有限類型的配置、技術、伺服器和儲存設備、網路和頻寬,因此很難創造真正且即時的測試環境。

結語

雖然『雲端測試』目前仍在起跑階段,筆者僅就目前收集到的相關資料與讀者進行分享,隨著雲端應用逐漸成為IT發展主流,『雲端測試』未來發展仍然值得持續關注。

資料來源

1.http://en.wikipedia.org/wiki/Cloud_testing
2.http://seij.dce.edu/Paper%201.pdf
3.http://www.cognizant.com/InsightsWhitepapers/Taking-Testing-to-the-Cloud.pdf

 

回上層