使用日程安排自動化測試來更好地管理時間與資源
簡介:在一個自動化測試
向自動化測試添加日程安排的優勢與挑戰
測試軟件、系統硬件,以及不同軟件平臺之間的防火墻都可以使用測試自動化系統。您可以使用為執行回歸測試設計的自動化框架,以創建任務,執行它們,并根據不同的實驗資源分析測試結果。這些框架適用于命令行界面以及圖形用戶界面。自動化系統的一個重要組成部分是安排一項任務的過程。
本文可以讓您對自動化系統的結構有一個基本的了解,該系統與日程安排機理集成在一起,以支持您使用日程安排功能來設計和開發一個自動化框架。文中還向您提供了使用 Java 語言開發一個自動化框架的概述。
日程安排中測試自動化的優勢
您可以將日程安排看做自動化系統的子系統。在自動化框架中加入日程安排功能,使得您可以安排每日的,每周的,每月的任務,如有需要可以重復安排。您還可以使用日程安排者來選擇實驗資源來執行測試回歸。這減少了人為干預的概率,并在未來指定的時間自動執行。日程安排者可以幫助您管理回歸測試的時間與資源,并有助于提高測試的性能,因此提高了成功率。
挑戰
● 收集關于執行環境的信息
當您需要資源來執行任務時,得到適當狀態的實驗室資源通常來說是非常困難的。檢入是非常重要的。
● 團隊的地理分布
使用自動化系統的團隊可能來自于不同的國家。他們的時區與系統的時區可能不同,自動化服務器就是在系統上運行的。每個日程的時間與日期必須與自動化系統的時間保持同步化。
● 飛行時提供需要的信息
有時,需要提供一些額外的信息,例如在執行時,構建和沙箱層次。日程安排者應該能夠處理執行期間用戶執行的更改。
● 與自動化系統的其他構件聯合工作
日程安排是自動化系統的子系統,這樣它就可以與自動化系統的其余構件集成了,以產生需要的結果。構件之間交流或者協調不足在測試實驗資源中產生嚴重的硬件問題。
● 滿足每一個和所有團隊的日程安排需求
每一個團隊都有其自己的自動化需求。有些團隊可能需要執行日常的任務。挑戰在于理解來自所有團隊的需求,并開發一種日程安排機理,來處理所有不同的需求。
自動化系統的結構
測試自動化系統有兩個主要的構件:
● 用戶界面
→ 圖形化用戶界面
→ 命令行界面
● 測試引擎
圖形用戶界面(GUI)提供了一種管理測試的簡單方法。它有助于創建運行不同實驗資源的測試回歸,以測試安裝在其上的圖片。
命令行界面是執行測試的另外一種方法。在這里,用戶必須要執行一點更多的操作,以創建和管理其測試和測試回歸,因為測試與測試回歸的創建與管理需要頻繁的用戶交流。
自動化系統的構件如圖1 所示。它包含了用戶界面,測試引擎以及測試系統。接下來的章節描述了這些構件的功能
圖 1. 一個自動化系統的功能
用戶界面
這種界面可以是一種基于網絡的 GUI 或者命令行。您可以使用網絡技術來開發一個基于網絡的界面。對于一個不使用瀏覽器的程序來說,一個命令行界面起的作用十分有限。作為測試自動化系統的一部分,用戶界面發揮著重要的作用。這就是測試自動化開始的地方。不同的用戶界面伴隨著不同的特性。其中有些界面包含了以團隊的格式維護用戶工作區域。下面就是用戶界面的主要任務:
1、提供一個用戶友好性的界面
2、提供一種輕松的方式來創建測試和測試回歸
3、為測試提供測試執行環境
4、顯示測試結果
5、分配管理的資源
測試引擎
測試引擎就是測試自動化系統的核心,因為它使用不同的實驗資源來運行測試。這種類型的軟件用于測試軟件,硬件,或者一個完整的系統。選擇一個合適的測試引擎非常重要。它取決于您想要實現自動化的測試的類型。不同的測試引擎提供了不同的功能。例如,IBM? Rational? Build Forge? 以及開放源 STAX 引擎提供了并發特性以及測試的序列性執行。有時,測試自動化框架包含了測試引擎,它支持框架處理的自動化。測試引擎主要有以下任務:
1、對程序或者圖片執行(運行)測試或者測試回歸
2、重復測試
3、收集測試結果
4、分析測試結果
5、監視執行結果
6、向測試員發送關于失敗信息的電子郵件通知
自動化進程
多個平臺的微觀開發需要收集來自開發員的源代碼,并將代碼整合成一個單元。當實驗資源安裝該單元之后,它需要多種測試來確認它的正確性。這種測試的自動化降低了測試員執行測試所需要的時間,這樣他們就可以將更多的注意力放在微觀開發上了。
很明顯,自動化需要減少手動與測試相交流所需要的時間與工作量。通過運行腳本或者運行命令都可以執行測試。您可以以任何語言來編寫腳本。測試引擎應該能夠分析這些腳本訪問并執行測試。
框架的選擇,與測試引擎一起,都是自動化進程的重要部分。測試自動化系統中可以使用多種框架,例如開放源軟件測試自動化框架(STAF),或者您可以創建自己的框架。
許多公司通過創建自己的自動化框架和測試引擎,來處理自動化。在您擁有自動化系統的兩個構件之后,您可以在自動化進程之中使用它們來執行以下的任務:
1、使用用戶界面來創建和管理測試以及測試回歸
2、提交測試以在程序或者圖片上運行
3、對程序或者圖片(測試引擎)執行測試
4、通知測試員需要注意的事項
5、生成和分析測試結果(測試引擎)
6、如果測試失敗的話向測試員發送電子郵件
日程安排的自動化系統
帶有日程安排功能的自動化系統如圖2 所示。
圖 2. 日程安排者的自動化系統
它包含了一個或者多個名為安排者的構件。安排者的作用在于識別您想要執行任務的類型。如果它的類型是安排類型的,那么安排者將會指導引擎安排任務;或者,他會讓測試引擎直接執行測試。您可以通過用戶界面來安排執行。
構建在日程安排功能之上的自動化框架
自動化框架,它包含了日程安排特性,可能需要在一個系統上運行自動化服務器。來自不同團隊的用戶可能位于不同的地理區域,這使得日程安排的時間也有差異。日程安排者應該能夠識別時區差異,并根據用戶的請求來安排任務。
自動化框架可以幫助您基于 圖3中給出的選項來創建日程安排。如果有需要,您還可以指定安排的日期和時間,并重復日程安排。圖3 中描述的安排表安排了日常的任務,并計劃到三天之后。它還顯示了運行測試的日期。用戶界面還提供了安排準備期間選擇測試系統和任務的選項(屏幕截圖中沒有顯示出來)。
圖 3. 帶有日程安排者 UI 的自動化框架
圖 5 描述了自動化系統構件之間的完整交流:
用戶添加執行的任務,以及安排的日期與時間,和測試的系統。
該信息存儲在數據庫之中。
daemon 會不斷運行進程,以從數據庫中獲得任務,將其交給日程安排者,然后添加包含系統健康狀況測試的信息。
然后日程安排者會將任務交給測試執行引擎,與測試系統相交流。
圖 5. 自動化系統構件之間的完整交流
網絡框架的其他責任在于得到測試的結果并分析它。日程安排者幫助您管理自動化系統的以下方面:
● 測試回歸,它包含了您對測試系統想要執行的任務
● 測試系統
● 如有需要的話,執行測試回歸和重復的日期與時間
性能評價
自動化不但能夠幫助您更有效地管理花在重復性測試上的時間,而且能夠幫助您分析測試的結果。它能讓您將更多的注意力放在微觀開發上,而不是把大把的時間花在測試上。一旦開發員進行微觀開發,那么通過管理和安排回歸測試,執行構建的全部測試操作,只不過是一次點擊的操作而已。因此,它降低了手動測試期間人為交流和干預的頻率。
日程安排功能,在另一方面上,降低了重復測試期間的出錯率。圖 6 中的圖顯示了測試系統最新構建全部測試的性能改進。條形圖顯示了每日,每周,每月進行的測試,測試自動化框架的日程安排功能能夠幫助您實現全部這些功能。
圖 6. 性能評價條形圖
為了進一步深入研究 Rational 軟件為測試和自動化提供的功能,您可以查看其他相關資料。
posted on 2012-10-22 10:15 順其自然EVO 閱讀(276) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習