基于界面的軟件 自動化測試框架和工具的發展大致經歷了三個階段(有人也據此將測試工具分為三代):
1)簡單的錄制/回放:由工具錄制并記錄操作的過程和數據形成腳本,通過回放來重復人工操作的過程。在這種模式下數據和腳本混在一起,幾乎一個測試用例對應一個腳本,維護成本很高。而且即使界面的簡單變化也需要重新錄制,腳本可重復使用的效率低。
2)數據驅動 (data driven)的自動化測試:從數據文件讀取輸入數據,通過變量的參數化,將測試數據傳入測試腳本,不同的數據文件對應不同的測試用例。在這種模式下數據和腳本分離,腳本的利用率、可維護性大大提高,但受界面變化的影響仍然很大。
3)關鍵字驅動(keyword driven)的自動化測試:關鍵字驅動測試是數據驅動測試的一種改進類型,它將測試邏輯按照關鍵字進行分解,形成數據文件,關鍵字對應封裝的業務邏輯。主要關鍵字包括三類:被操作對象(Item)、操作(Operation)和值(value),用面向對象形式可將其表現為 Item.Operation(Value)。關鍵字驅動的主要思想是:腳本與數據分離、界面元素名與測試內部對象名分離、測試描述與具體實現細節分離。
1)線性腳本:通過錄制直接產生的線性執行的腳本。
2)結構化的腳本:具有順序、循環、分支等結構的腳本。
3)共享的腳本:可以被多個測試用例使用,被其它腳本調用的腳本。
4)數據驅動的腳本:數據和流程控制分離的腳本,通過讀入數據文件來驅動流程進行的腳本。
5)關鍵字驅動的腳本:腳本、數據、業務分離,數據和關鍵字在不同的數據表中,通過關鍵字來驅動測試業務邏輯。關鍵字驅動腳本的特點是它看起來更像描述一個測試事例做什么, 而不是如何做。
目前,大多數測試工具處于數據驅動到關鍵字驅動之間的階段,有些工具廠商已經提出了聲稱支持關鍵字驅動的版本。
從上面可以看到,自動化測試框架和腳本的發展是和軟件工程思想的發展一脈相承的。軟件開發的模式從面向機器、到面向過程、再到面向對象、面向服務,是一個從底層到高層、從具體到抽象、復用的粒度從細到粗的發展過程。而軟件開發中的模塊化、層次化、松耦合等思想對自動化測試框架的設計都具有借鑒意義。
文章來源于領測軟件測試網 http://www.kjueaiud.com/