功能自動化
一•介紹
自動化的本質----就是用程序來測試程序
隨著Web項目的日益龐大,自動化測試技術的重要性日益突出
二•手工 vs 自動化
手工:不可替代、發現更多bug、人的想象力與理解力
自動化:可重復、效率高,增加軟件信任度
三•自動化測試
1自動化測試分類:
對web UI的自動化測試程序
對windows窗體c/s UI的自動化測試程序
API測試 比如 測試WCF service,Web API等
數據庫測試,比如測試存儲過程
接口測試,
單元測試
性能測試,性能測試都需要自動化
2自動化測試驅動
測試驅動是一個自動化測試框架的核心,其決定整個自動化腳本設計。當前比較流行的測試驅動有數據驅動和關鍵字驅動,使用不同的測試驅動,關系到腳本重用率,以及后期的可維護性。
(1)數據驅動
基于數據驅動的自動化測試框架是指測試驅動引擎從數據源獲取測試數據,然后將將數據以參數的形式傳遞給測試腳本,最后通過執行測試腳本,驗證測試結果,并將測試結果輸出。
一般數據源與測試結果存儲在數據庫、Excel文件、Csv文件等。數據驅動主要優點是:
測試腳本與測試數據的分離,當應用功能變更時,只需要修改該功能部分的腳本;執行測試用例的人員不需要了解測試腳本的實現,只關注測試數據表與測試報告表。而且測試腳本的執行是離散的,即非線性的,測試人員可以有選擇的執行測試用例。
(2)關鍵字驅動
關鍵字驅動的自動化測試框架是在數據驅動的基礎上進行改進,數據源里包含的不只是數據,還有關鍵字,一個測試用例由一個或若干個關鍵字組成。每個關鍵字對應個不同的業務邏輯,例如,登錄、注銷等。數據表通過關鍵字,查找映射表,執行相關的腳本。
(3)驅動引擎
驅動引擎是對數據表的數據進行分析,根據不同的測試數據或關鍵字調用相應測試腳本。驅動引擎還需完成一些測試環境初始化、全局參數設置、測試用例是否執行的判斷,以及測試報告的處理等。
3自動化測試用例設計
分三步走:初始化,輸入準備;
執行(方法調用),結果驗證(斷言);
清理環境
4自動化測試腳本開發
測試腳本開發必須通過詳細、合理的設計,要對腳本代碼進行劃分,腳本文件或數據文件分層管理。這樣有利于自動化腳本的開發與維護,從而節省自動化測試的投入成本,也使得不同測試人員或開發人員可以協調開發腳本。
(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登錄。
四•測試自動化 偏向于開發崗位
自動化系統平臺開發,自動化框架工具開發;提供給自動化測試或業務人員等執行自動化測試,結果收集,結果判斷,結果通告
自動化框架 分上下兩個層次
上層是管理整個自動化測試的開發,執行以及維護,在比較龐大的項目中,它體現重要的作用,它可以管理整個自動測試,包括自動化測試用例執行的次序、測試腳本的維護、以及集中管理測試用例、測試報告和測試任務等。
下層主要是測試腳本的開發,充分的使用相關的測試工具,構建測試驅動,并完成測試業務邏輯
五•開源自動化框架
PC端Web:Jenkins+ant+selenium+testing+tomcat
自動構建+腳本開發+測試結果
移動app:Jenkins+Appium+ant+selenium+testng+tomcat
自動構建+腳本開發+測試結果
做什么不深入,就看表面,淺嘗輒止
天貓 軟件自動化測試開發
posted on 2015-04-01 11:57
zouhui 閱讀(673)
評論(0) 編輯 收藏 所屬分類:
2.軟件測試 功能自動化