另外,雲計算本身的結構已衍生出大量新服務,這些服務可用於協助測試;例如,雲的彈性改進了負載和效能測試,使開發人員能夠快速且經濟地擴展其軟體。 在本文中,作者將從兩個角度介紹雲計算測試和軟體測試的相互作用。
通過對基礎架構、資源池和彈性使用模型抽象化,雲計算會對應用程式的設計和開發產生深遠的影響。 人們自然會預料到,這種破壞力會對品質保證產生重大影響。
測試是軟體工程設計的一個不可或缺的部分。 因此,開發和部署工具與可用於測試的選項之間具有密切的關係。 根據本文中的描所述,每個平臺的開發環境幾乎都是獨一無二的:
Google App Engine 提供了一個軟體發展工具組 (SDK), Microsoft® 為 Microsoft Visual Studio® 提供了一個外掛程式,而 Force.com 程式設計人員很大程度上依賴于 Eclipse ,且 Amazon 在很大程度上對在其平臺上運行的工具和語言一無所知。
儘管如此,各個供應商和服務的軟體發展生命週期 (SDLC) 都是類似的,且通常都涉及以下 4 個不同階段:
單元測試。 大部分專案最初都涉及到一定量的獨立編碼和原型設計,開發人員可在自己的桌面上著手這部分工作。 集成測試。 要解決模組之間的依賴性,有必要定期集成代碼。 試機(Staging)。 隨著軟體不斷成熟,將其部署在類似生產的環境中,並確保其滿足所有需求,這會很有用。 部署。 最後,將應用程式部署到生產環境中,應用程式會一直在這裡停留,直至被下一個版本取代。
我們將介紹每一個步驟。
單元測試
程式設計人員可採取兩種不同的方法來開發基於雲的應用程式:
程式設計人員可在本地生成代碼,並在代碼達到最低的成熟度水準時將其遷移到雲中。 程式設計人員可使用雲託管開發環境。
目前,大部分應用程式開發人員採取第一種方法,因為這使他們無需任何聯繫即可工作,並減少了對基於雲的資源的需求。 但是,隨著基於雲的工具不斷演化和成本下降,您肯定會看到向著完全在雲中開發發展的趨勢。
在此期間,開發環境通常安裝在程式設計人員的本地電腦上。 因此,大部分單元測試都是所使用的整合式開發環境 (IDE) 的一個組成部分 — 一個特定于平臺的元素。
Google App Engine
Google App Engine SDK 在本地包含了以有限的性能和資料量運行應用程式所需的所有功能。 為了保持一種簡化的開發環境,Google 為 Eclipse for JAVA™ 開發人員提供支援。 Eclipse for JAVA 並不等同于 Python。 但是,Google 記錄了如何安裝和配置 PyDev 外掛程式來實現相同的結果(圖 1)。
圖 1. 用於 Eclipse 的 PyDev 外掛程式