單元測試
為了確保開發中的云應用的更高質量,正在做測試的開發人員創建了可應用的單元測試。單元測試提供了一些好處,諸如能夠無需等待其他可用單元可進行測試,能夠以更低的成本來檢測和刪除軟件故障(比起在后期這么做)。對云應用進行單元測試的一個有效方法是使用各種基于桌面的云環境仿真器,如Microsoft Azure Compute和Storage Emulators,它們使開發人員能夠在本地運行并測試他們的云應用程序,而不是部署后再進行測試。然后這些單元測試可以用于進行回歸測試了,如果該軟件改變了,他們可以早點生效并大限度地減少對系統的不利影響。通常,輸入所有的可能去測試一個單元是不可行的,因為輸入空間太大以至無限。因此,我們需要一個標準來決定使用什么測試輸入及何時停止測試。
自動化測試
為了減少手動工作,測試人員或開發人員可以使用可以自動生成測試輸入以實現高結構覆蓋的自動化測試生成工具。由于云應用程序實際上是依靠云環境的應用程序的,所以一個云應用程序里被測單元的行為是依賴于單元輸入及云環境狀態的。使用存根云模型可以減輕這些問題。有了這樣的模型,可以用(能夠給云API方法調用提供一些默認的或用戶定義的返回值的)假/存根云環境模擬真正的云環境了。一個圖形用戶界面(GUI )的自動化測試表現了在基于字符界面未被發現的顯著困難;少了很多命令行界面或編程接口(APIs )。圖形用戶界面往往是由復雜的組件構成,而且往往在開發過程中被不斷地重新設計。發布能夠識別和操作圖形用戶界面的測試工具取得了顯著成功。Selenium與Sahi是實例。該GUI自動化測試可以由開發人員寫或具備適當技能的測試人員寫。這些測試用例的深層開發是為了用戶體驗和正確性。這些測試用例僅表示測試用例中的被操作對象。使用這些工具,你能通過錄制和重放或通過寫測試代碼來創建測試用例。如果編寫準確,這些測試可以與在一個連續集成(CI)環境中創建并運行的單元測試集成起來。所寫測試將可以和終端用戶一樣操縱一個瀏覽器。然而,并非所有的測試用例都可以,因為云的狀態和環境不一樣。從源(例如:數據庫或文件)讀取數據,將使得測試以幾種不同的方式運行以呈現GUI,這允許文本字段的不同輸入和結果的驗證,以便能夠點擊按鈕和下拉菜單,并且還能夠驗證文本及屏幕上對象的位置。如果注意到任何差異,它能夠將該問題寫入(可以用來驗證問題已被挖掘的)日志文件中。它多樣且能夠在多個瀏覽器的Web測試中運行,這使你能夠攔截缺陷并輕松復制。自動化測試的這兩個方法將能夠比手動測試快得多地運行測試用例,還能夠覆蓋更廣泛的測試環境和狀態。這些測試用例運行期間挖掘的缺陷也可以在終用戶交互之前被修復和部署,從而獲得更好的用戶體驗并減少人為錯誤。
手動測試
軟件測試的方法可以基于程序的形態及其實現,或兩者兼有。所要求的基于形態的測試指導測試用例的選擇過程,并提供一種評估測試充分性的手段。另外,基于實現的測試側重于行使被測程序,因此充分性通常是指覆蓋程序結構要素。測試可以在多個粒度級別進行組件測試,集成測試和系統測試。一個更廣泛且快速增長的手工測試方法是探索性測試。在某些情況下,它可以比腳本測試更有效率。所有測試人員都會用到某種形式的探索性測試。隨著企業尋求更靈活及更具成本效益的方法去開發軟件,這種態度開始改變。其高度情境結構可以使它在不經意的觀察中看起來沒有任何結構。
“所以說,一段旅程要想夠得上探險,必須是可信的并有困難和風險的,還必須要有新發現。像板球一樣,對外行解釋起來有那么點困難。但有一個元素是重要的,事實上從探索早期開始嚴格地區分探索階段并嚴格采用“探索”一詞。很簡單,這是對科學的崇敬。”——選自John Keay的《The Permanent Book of Exploration》
James Bach等人提到:探索性測試某種程度上來說是測試者主動控制測試設計的任一測試,因為那些測試都被執行了并使用了從通過測試設計新的更好的測試時獲得的信息。手工測試仍是大多數軟件開發工作的高度相關部分。這些人如測試人員的特性(包括創造力,智力,領域知識及有效識別各種問題的能力)使手動測試成為軟件測試的重要部分。
結論
總之,軟件測試作為一項云計算服務是相當新穎的,要放下測試傳統或常規方式去適應它,仍需要作出轉變。不同類型的測試方法,例如自動化測試,手工測試和單元測試已被用來在云中進行測試時試著達到好的效果。把這些方法結合起來并基于云中還是會留下很多可以改進的漏洞。仍然存在許多漏洞的原因是:需要獲得“云測試佳實踐指南”。隨著越來越多的應用程序遷移到云中,我們對于它們將如何應對在這樣的環境下進行以及如何好地測試它們,測試什么,用什么方法測試什么都會有更好地理解。要使用什么自動化工具(如果必須是自動化的),要做單元測試嗎,或者它應該是純手工測試嗎,這些問題都是公司需要做出的并具有增值收益的業務決策。
為了實現云計算中軟件的更高質量,需要一種新的關于如何測試軟件的思維方式,包括采取什么步驟以獲取佳結果。測試的傳統方法已經給了測試人員和開發人員許多經驗教訓,并且隨著我們進入一個多數應用程序隨處可得的時代,確保所獲知識適應且適合云計算成了他們的責任,當然這也是利益相關者和業務管理的責任。
版權聲明:本文出自 SPASVO澤眾軟件測試網:http://m.eqie.com.cn/news/html/201458143930.html
原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。