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