軟件測試框架介紹 自動化測試框架
在軟件測試領域,我們經常會聽到測試框架。什么是軟件測試框架?在軟件測試中它起到怎樣的作用?要認識軟件測試框架,首先要對所謂框架有概念??蚣?Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;另一種定義認為,框架是可被應用開發者定制的應用骨架。前者是從應用方面、而后者是從目的方面給出的定義。測試框架也是如此,測試框架出現的最終目的是花少量的資源來完成盡可能多的測試任務,所以軟件測試框架的建立以及框架的重用性方面是最值得測試人員深入探究的地方。Java測試框架、.Net測試框架、自動化測試框架、單元測試框架、集成測試框架,你是不是已經被這些名稱弄暈了?如何實現測試框架用于特殊場合?本專題將就以上問題對測試框架進行全面詳解,從測試框架入門和類別,到常用框架應用和自己動手實現框架。
什么是測試框架:
軟件測試框架是一組自動化測試的規范、測試腳本的基礎代碼,以及測試思想、慣例的集合??捎糜跍p少冗余代碼、提高代碼生產率、提高代碼重用性和可維護性。 測試框架的好處在于:提高開發速度,提升測試代碼的執行效率;提高軟件代碼質量,同時引入重構概念,讓代碼更干凈和富有彈性;提升系統的可信賴度,作為回歸測試的一種實現方法支持修復后"再測試",確保代碼的正確性。常用的測試框架分類包括自動化測試框架和單元測試框架。根據所用開發平臺不同,也可使用不同的測試框架展開測試。
軟件自動化測試框架的發展
基于界面的軟件自動化測試框架和工具的發展大致經歷了三個階段(有人也據此將測試工具分為三代):
1)簡單的錄制/回放:由工具錄制并記錄操作的過程和數據形成腳本,通過回放來重復人工操作的過程。在這種模式下數據和腳本混在一起,幾乎一個測試用例對應一個腳本,維護成本很高。而且即使界面的簡單變化也需要重新錄制,腳本可重復使用的效率低。
2)數據驅動 (data driven)的自動化測試:從數據文件讀取輸入數據,通過變量的參數化,將測試數據傳入測試腳本,不同的數據文件對應不同的測試用例。在這種模式下數據和腳本分離,腳本的利用率、可維護性大大提高,但受界面變化的影響仍然很大。
3)關鍵字驅動(keyword driven)的自動化測試:關鍵字驅動測試是數據驅動測試的一種改進類型,它將測試邏輯按照關鍵字進行分解,形成數據文件,關鍵字對應封裝的業務邏輯。主要關鍵字包括三類:被操作對象(Item)、操作(Operation)和值(value),用面向對象形式可將其表現為 Item.Operation(Value)。關鍵字驅動的主要思想是:腳本與數據分離、界面元素名與測試內部對象名分離、測試描述與具體實現細節分離。
相應地,軟件測試自動化腳本的類型,從低到高的發展層次是:
1)線性腳本:通過錄制直接產生的線性執行的腳本。
2)結構化的腳本:具有順序、循環、分支等結構的腳本。
3)共享的腳本:可以被多個測試用例使用,被其它腳本調用的腳本。
4)數據驅動的腳本:數據和流程控制分離的腳本,通過讀入數據文件來驅動流程進行的腳本。
5)關鍵字驅動的腳本:腳本、數據、業務分離,數據和關鍵字在不同的數據表中,通過關鍵字來驅動測試業務邏輯。關鍵字驅動腳本的特點是它看起來更像描述一個測試事例做什么, 而不是如何做。
目前,大多數測試工具處于數據驅動到關鍵字驅動之間的階段,有些工具廠商已經提出了聲稱支持關鍵字驅動的版本。
從上面可以看到,自動化測試框架和腳本的發展是和軟件工程思想的發展一脈相承的。軟件開發的模式從面向機器、到面向過程、再到面向對象、面向服務,是一個從底層到高層、從具體到抽象、復用的粒度從細到粗的發展過程。而軟件開發中的模塊化、層次化、松耦合等思想對自動化測試框架的設計都具有借鑒意義。
原文轉自:http://www.anti-gravitydesign.com