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