【落葉320】《測試路上你問我答》(97)數據驅動和關鍵字驅動有什么區別?

文/秋之川

【目錄】

這是《落葉》文集里第 320 片落葉,希望你能喜歡,不為別的,只為這份堅持。

【背景】

在學習 Python 開發接口自動化工具的時候,有同學問過數據驅動和關鍵字驅動的區別,當時因為這個不屬于課程本身的范疇,所以并未詳細解答,今天正好放假,拿出來回答一下。

【你問】

數據驅動和關鍵字驅動有什么區別?

【我答】

數據驅動和關鍵字驅動都是面向自動化腳本設計而言的,就我的理解,它們的區別并不是兩個平行事物的優劣區分,而是自動化腳本設計模式的一種演變,關鍵字驅動是數據驅動設計模式或思想的升級迭代。

為了更好地了解兩者,我們就從最初級的腳本設計模式開始看起吧。

  1. 錄制腳本,也可叫線性腳本,顧名思義,這種腳本設計模式就是通過某種自動化測試工具的錄制功能,將一組測試用例按照手工執行的順序,從頭到尾一口氣錄制完成,執行測試時也就是將錄制好的腳本回放一下。
    優勢:想了半天,不知道適合初學者接觸自動化測試腳本算不算一個優勢,其它的還真想不到了。
    劣勢:
    (1)跟實際錄制時操作和數據的耦合性太強,回放時的成功率不高;
    (2)功能模塊相對穩定時,才能錄制完整的腳本;
    (3)當功能發生改變時,需要重新錄制腳本,直接修改難度較大,所以腳本維護成本非常高;
  2. 程序化腳本,也叫結構化腳本,指的就是像寫代碼一樣去設計和編寫自動化測試腳本,它具有各種邏輯結構,包括循環、判斷、函數方法調用、重用等等。
    優勢:
    (1)能實現復雜功能模塊的自動化測試場景;
    (2)因為能夠重用和函數調用,所以維護起來,成本較低;
    劣勢:
    (1)對測試人員的技術要求較高,需要具備編程基礎,需要學習自動化腳本開發;
    (2)從開發效率角度,所需時間也比較長;
  3. 數據驅動腳本,將程序化腳本里的測試數據從腳本中剝離出來,存儲在獨立于腳本之外的數據文件(XML,Excel等)或數據庫里,使腳本中的操作指令和數據分離。
    上面是我之前認知和理解的“什么是數據驅動腳本”,現在通過學習,又了解到一種新的關于數據驅動腳本的觀點。
    這種觀點認為,數據驅動,就意味著數據決定了結果,自動化工具讀取設計好的數據,運行腳本,通過設定好的參數讀入不同的測試數據,驗證數據,再跟設計好的期望測試結果做比對。
    優勢:
    (1)操作指令和數據分離,一方面可以降低成本,另一方面也可靈活適應多套測試數據的執行;
    (2)腳本編寫可以與功能開發并行,提高效率;
    (3)測試輸入數據、驗證數據和期望結果的彼此獨立,也降低了測試人員維護測試用例的成本;
    劣勢:
    (1)對測試人員的技術要求依然較高,仍然很難將測試工程師和自動化工具開發工程師完全分離開來;
    (2)當業務功能發生改變時,維護腳本的工作量依然不小;
  4. 關鍵字驅動腳本,是基于數據驅動腳本設計模式的一種進化,它其實是采用了面向對象的開發模式,將所有被測的東西都看作一個個對象,并建立一個對象關系表,通常習稱之為 Object Map,再將跟每個對象相關的一組操作指令封裝成一個關鍵字(Keyword),這種腳本從表面上看跟手工執行的腳本沒有太大區別,就是針對某個對象,執行某個動作,再查看實際的結果和期望結果的比對結果。
    優勢:
    (1)大大降低了測試人員編寫腳本的門檻,只要是熟悉業務功能手工測試用例編寫的測試人員,都可以很輕松的編寫關鍵字驅動腳本,而且可以做到盲寫,也就是測試先行;
    (2)自動化測試開發人員可以專注于維護 Keyword 的封裝和執行效率的優化;
    (3)當某個業務操作邏輯需要改動時,只需要修改相應的 Keyword 即可,維護成本大大降低;
    劣勢:
    (1)如果自動化測試開發人員沒有提供一個相對智能化一點的 IDE,那編寫腳本的測試人員,需要不斷查看 Object Map、關鍵字關系表;
    (2)測試腳本編寫人員和關鍵字封裝的測試開發人員,經常會因為某個 Keyword 的封裝顆粒度產生爭議,因為從測試開發人員的角度,封裝顆粒度越小越便于維護,因為耦合性較低,而測試腳本編寫人員一般希望封裝顆粒度越大越好,那樣會降低腳本的行數,也就是腳本量;

《測試路上你問我答》里的 Q&A 97,如果是你要的,甚好!如果不是,你問,我答!

作者簡介:14 年測試 + 11 年項目管理 + 11 年團隊管理 = 一個測試老兵

【目錄】

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容