初學者應該如何理解自動化測試數據驅動與關鍵字驅動的區別?本文將由千鋒教育軟件測試培訓老師給大家分享一下。
一、關鍵字驅動KDT(Keyword-driven testing)
1、自動化測試框架發展的第三個階段是關鍵字驅動測試框架階段,它是當前比較流行的一種框架之一,并且現在的自動化測試工具已經將關鍵字驅動框架融入到工具中。在錄制過程中自動化測試工具會將對象及操作屬性保存到對象庫中。
2、關鍵字驅動測試是數據驅動測試的一種改進類型, 用關鍵字的形式將測試邏輯封裝在數據文件中,測試工具只要能夠解釋這些關鍵字即可對其應用自動化。
以某工具自帶的飛機訂票系統為例,錄制完成后的每個測試步驟主要有三個元素組成:
Item:指對象名,可以是一個窗口、按鈕等;
Operation:指要執行的動作,如Select、Click等;
Value:操作動作所輸入的數據值;
錄制其登錄過程,生成的代碼如下:
Dialog("Login").WinEdit("Agent Name:").Set "test"
Dialog("Login").WinEdit("Password:").SetSecure
Dialog("Login").WinButton("OK").Click
這是以關鍵驅動的方式生成的代碼,關鍵字驅動測試最核心的是關鍵字表格。以飛機訂票系統的登錄為例,其關鍵字表格見表:
關鍵字驅動的思路是將關鍵字表中的對象及數據提取出來并構造成每個測試步驟,如步驟:Dialog("Login").WinEdit("Agent Name:").Set "test"。需要將關鍵字表中的對象、屬性及輸入的數據讀取出來,將它們構造同以上格式的代碼步驟,通過這種方式來實現關鍵字驅動的功能。
下面是調試好的一個的關鍵字驅動的框架,代碼如下:
—————————————————————————————————
''
' 工程名:關鍵字驅動
'
' 方法:
' GetExcelCells —————讀取單元格中的值
' GetExcleSheetRowsCount—————獲取關鍵字驅動表中的行數
' oParentObject—————構造父對象
' oChildObject—————構造子對象
' oEventObject —————對對象屬性賦值
'
'———————————————————————————————————
''
' 函數名:GetExcelCells
'
' 參數:
' ExcelPath —————關鍵字驅動表的路徑
' SheetName—————關鍵字驅動表的sheet名
' SheetRow—————單元格中的行
' SheetColumn—————單元格中的列
3、 在關鍵字驅動框架里,你可以創建一些關鍵字以及相關聯的一些方法和函數。然后你創建一個函數庫,它里面包含一個讀取關鍵字的邏輯,然后調用相關的動作。
關鍵字驅動的自動化測試(也稱為表驅動測試自動化),是數據驅動自動化測試的變種,可支持由不同序列或多個不同路徑組成的測試。它是一種獨立于應用程序的自動化框架,在處理自動化測試的同時也要適合手工測試。關鍵字驅動的自動化測試框架建立在數據驅動手段之上,表中包含指令(關鍵詞),而不只是數據。這些測試被開發成使用關鍵字的數據表,它們獨立于執行測試的自動化工具。關鍵字驅動的自動化測試是對數據驅動的自動化測試的有效改進和補充。
這種自動化測試的模型主要由核心數據驅動引擎、組件函數、支持庫和應用映射表組成。自動化測試首先由初始腳本開始執行,這個腳本把高層測試表傳遞給高層驅動器,高層驅動器在處理這些表的過程中,遇到中層測試表后就調用中層驅動器,中層驅動器處理中層表時也作類似的處理。當低層驅動器處理低層表時,它嘗試著使應用與測試保持同步。當低層驅動器遇到對某一個組件的低層關鍵字組件時,它判斷這個組件的類型并調用相應的組件函數模塊來處理這個指令操作。所有這些元素都要依靠映射表中的信息,它是自動化測試模型和被測應用程序的橋梁。支持庫主要完成一些文件處理,日志記錄和郵件發送等等的功能。
二、數據驅動的自動化測試框架
什么是數據驅動的自動化測試框架
數據驅動的自動化測試框架是這樣的一個框架,從某個數據文件(例如ODBC源文件、Excel文件、Csv文件、ADO對象文件等)中讀取輸入、輸出的測試數據,然后通過變量傳入事先錄制好的或手工編寫的測試腳本中。其中,這些變量被用作傳遞(輸入/輸出)用來驗證應用程序的測試數據。在這個過程中,數據文件的讀取、測試狀態和所有測試信息都被編寫進測試腳本里;測試數據只包含在數據文件中,而不是腳本里,測試腳本只是一個“驅動”,或者說是一個傳送數據的機制。
數據驅動腳本
數據驅動腳本就是那些和應用程序相關聯的腳本。這些腳本通過錄制或手工編寫寫進自動化工具私有的語言,然后對其中的變量賦予合適的數值,作為測試數據的輸入。這些變量作為一些關鍵應用程序輸入的媒介,使腳本能通過外部的數據來驅動應用程序。
可變數據,硬編碼組件標志
這些數據驅動的腳本經常包含硬編碼的數據,有時是一些窗口組件中非常脆弱的識別字符串。出現這種情況時,腳本很容易由于程序的更改而失去作用。
高度技術化的、重復的測試設計
數據驅動腳本的另一個共同特點就是,所有在測試設計上所作的努力最終都體現在自動化工具的腳本語言中,或者復制到手工和自動化測試腳本中。這意味著每個和自動化測試開發或執行有關的人必須對測試環境和自動化工具的編程語言非常精通。
優點與缺點
1) 優點: ①在應用程序開發的同時就可以同步建立測試腳本,而且當應用功能變動時,只需要修改業務功能部分的腳本;②利用模型化的設計,避免重復的腳本,減少建立或維護腳本的成本;③測試輸入數據,驗證數據和預期的測試結果與腳本分開,存放在另外的數據文件里,利于測試人員修改和維護;④透過判斷功能回傳值是“True”或“False”,可作錯誤處理,增加了測試腳本的健壯性;⑤自動化測試開發人員創建數據驅動的測試過程,測試員創建測試數據;⑥在測試的過程中收集測試結果,并在輸入數據的語境中表示測試結果,這樣可以簡化手工結果分析。
2) 缺點: ①對自動化測試工具里的腳本語言必須非常精通;②每個腳本都會對應多個數據文件,這些數據文件需要根據腳本的功能類別存放在各自的目錄中,增加了使用的復雜性;③測試人員除了需要根據具體測試數據維護相應的測試計劃,還要將這些數據寫入各個需求不同的數據文件中;④在編輯數據文件時,必須注意測試腳本所要求的傳輸格式,否則會在處理腳本時產生錯誤。如由專門的技術人員對其進行維護,依賴于數據驅動腳本的自動化測試框架實現起來更簡單、快捷。但是,維護工作困難,而且還需要保持這種數據驅動的模式,這樣,即便長時間的維持也會導致失敗。
學習軟件測試,可以參考千鋒提供的軟件測試學習路線,內容包含軟件測試環境配置與管理,數據庫測試技術,軟件測試編程技術,應用程序測試技術,互聯網/移動互聯網測試技術等,根據千鋒軟件測試培訓機構提供的學習路線圖,可以讓你對學好軟件測試需要掌握的知識有個清晰的了解,并能快速入門軟件測試