[讀書筆記]自動化測試架構

來源:互聯網
上載者:User

以下是自動化測試架構的建議,需要在以後的實踐中改進。自動化測試架構一般可以分為上下兩個層次,上層是管理整個自動化測試的開發,執行以及維護,在比較龐大的項目中,它體現重要的作用,它可以管理整個自動化的測試,包括自動化測試案例執行的次序、測試指令碼的維護、以及集中管理測試案例、測試報告和測試工作等。下層主要是測試指令碼的開發,充分的使用相關的測試載入器,構建測試驅動,並完成測試商務邏輯。

一、自動化測試管理

自動化測試案例的執行機制一般包括管理端和執行端,由管理端發出訊號通知執行端開始執行相應的測試工作,從而執行相應的指令碼進行測試,並將測試結果報告管理端。

1.管理端

管理端主要完成以下任務:運行控制的決策系統,負責建立並維護運行隊列,控制運行策略和號誌;在管理端還必須維護一個測試工作的隊列,每個測試工作的開始執行的時間可能不同,狀態也不一樣,管理端根據這些標誌對其進行控制。

2.執行端

執行端根據管理端的決策系統,來執行運行隊列中的測試指令碼,其中運行控制的執行系統,負責分配測試指令碼,並按照指定策略啟動指令碼等也是執行端的功能。

 

二、自動化測試指令碼開發

1.測試驅動

測試驅動是一個自動化測試架構的核心,其決定整個自動化指令碼設計。當前比較流行的測試驅動有資料驅動和關鍵字驅動,使用不同的測試驅動,關係到指令碼重用率,以及後期的可維護性。

(1)資料驅動

基於資料驅動的自動化測試架構是指測試驅動引擎從資料來源擷取測試資料,然後將將資料以參數的形式傳遞給測試指令碼,最後通過執行測試指令碼,驗證測試結果,並將測試結果輸出。一般資料來源與測試結果儲存在、Excel檔案、Csv檔案等。資料驅動主要優點是:測試指令碼與測試資料的分離,當應用功能變更時,只需要修改該功能部分的指令碼;執行測試案例的人員不需要瞭解測試指令碼的實現,只關注測試資料表與測試報告表。而且測試指令碼的執行是離散的,即非線性,測試人員可以有選擇的執行測試案例。資料庫

(2)關鍵字驅動

關鍵字驅動的自動化測試架構是在資料驅動的基礎上進行改進,資料來源裡包含的不只是資料,還有關鍵字,一個測試案例由一個或若干個關鍵字組成。每個關鍵字對應個不同的商務邏輯,例如,登入、登出等。資料表通過關鍵字,尋找映射表,執行相關的指令碼。

(3)驅動引擎

驅動引擎是對資料表的資料進行分析,根據不同的測試資料或關鍵字調用相應測試指令碼。驅動引擎還需完成一些測試環境初始化、全域參數設定、測試案例是否執行的判斷,以及測試報告的處理等。

 

 

2.測試指令碼開發

  測試指令碼開發必須通過詳細、合理的設計,要對指令碼代碼進行劃分,指令檔或資料檔案分層管理。這樣有利於自動化指令碼的開發與維護,從而節省自動化測試的投入成本,也使得不同測試人員或開發人員可以協調開發指令碼。

(1)指令碼規範

  測試指令碼的開發也要遵循編程的規則與標準,應該統一規劃,所有開發指令碼的人員按照統一的規定進行編碼。除了編程本身規範,還考慮測試案例與庫函數名的命名,測試案例需要加上項目名稱,但公用的庫函數卻不需要,因為公用的庫函數是獨立於項目的。例如,項目M4.1用戶端登入測試案例可命名為:TC_M4.1_client_login;讀取excel表的函數可命名為:read_excel。

 

(2)指令碼劃分

測試指令碼的劃分,如何定義公用的指令碼庫,不同模組特有的指令碼庫,以及直接構建測試案例的指令碼。為了方便以後指令碼的維護問題,必須對指令碼進行有效分層,同時,提高了指令碼的複用率。

① 公用類庫

公用類庫包括所有模組都可能使用者的操作方法,其抽象了不同模組同性,比如操作excel表的方法、讀寫測試報告、驅動引擎等。

② 模組特定類庫

在模組內部將可以為該模組共用使用的方法抽象出來,作為一個公用類。它可以是一個單的邏輯操作,也比較獨立。比如用戶端登入操作、控制台登入操作、控制台更新操作等。

③ 測試案例指令碼

測試案例腳在最上層,它根據測試點進行設計,面向具體的應用。它可直接調用公用類庫或模組特定類庫的方法,即調單個邏輯操作。它是單個或多個邏輯操作的集合,即一個測試使用者指令碼。比如,在用戶端訪問資源的測試案例,它調用了用戶端登入方法和訪問資源方法。

 

(3)測試案例

① 測試案例粒度

測試案例的粒度決定了用例模型級的複雜度,也決定了每一個用例內部的複雜度。應該根據每個系統的具體情況來把握各個層次的複雜度,在儘可能保證整個用例模型的易理解性前提下決定用例的大小和數目。用例不能太大,這樣一旦出執行測試案例出錯,不利於定位問題;但也不能太細化,太小則不方便執行。

 

② 測試案例與測試套件

一個大型的項目有許功能模組,必然會產生大量的測試案例,怎樣才能有效管理這些測試案例呢?這就需要建立測試套件,通過測試套件將測試某一個模組或功能點的測試案例集合起來,方便運行與管理。例如,只驗證“使用者管理”模組功能,則只需要執行“使用者管理”模組套件即可。

 

(4)指令碼與html標記分離

指令碼與html標記分離使得在一定程度上指令碼獨立於WEB頁面,指令碼沒有直接的處理html標記,指令碼代碼通過html映射表擷取賦有WEB頁面標記值的變數。WEB頁面標記包括html標記和頁面內容(文本或圖片等,這些都可能是判斷用例是否成功能的檢查點),當WEB頁面標記變更後,不需要在範圍的修改指令碼。

 

(5)選擇適合自動化測試的用例

在編寫自動化測試指令碼前,首先要確定哪些用例適合做自動化測試,因為自化測試不像手工測試,它不能那麼智能,也沒有發發散思維。

通常適合自動化測試的用例有:

產品型項目。產品型的項目,新版本是在舊版本的基礎上進行改進,功能變不大的項目,但項目的新老功能都必須重複的測試。

迴歸測試。迴歸測試是自動化測試的強項,它能夠很好的驗證你是否引入了新的缺陷,老的缺陷是否修改過來了。在某種程度上可以把自動化測試載入器叫做迴歸測試工具。

機械並頻繁的測試。每次需要輸入相同、大量的一些資料,並且在一個項目中啟動並執行周期比較長。

有一些互動性比較強,需要人工幹預的操作,就不要指望通過自動化測試來完成了。例如,使用者使用DKEY登入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.