《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 常用軟件測試自動化框架
常用軟件測試自動化框架
摘要: 所謂自動化測試框架,是由一些假設,概念和為自動化測試提供支持的實踐組成的集合。
Abstract:
Key words :

    所謂自動化測試框架,是由一些假設,概念和為自動化測試提供支持的實踐組成的集合。接下來將描述一下幾種比較常用的自動化測試框架:

  1.錄制/回放的神話

  每一家自動化測試工具廠商都會宣傳,他們的工具非常容易使用,沒有技術背景的測試人員只要簡單錄制測試的操作過程,然后播放錄制好的測試腳本,就可以輕松自動化所有的測試。這樣的說法是非常不負責的。

  現在我們來分析一下自動化測試不能單單只依靠錄制/回放來完成的原因。

  通過錄制建立的腳本,基本上都是用腳本語言以硬編碼的方式編寫的,當應用程序變動時,這些硬編碼也隨之需要更改。因此,維護這些錄制好的腳本,成本是非常高的,高到幾乎不能接受。

  所有的測試腳本都必須是在應用程序可以正確執行時才能錄制,如果在錄制過程中發現缺陷.測試人員必須向缺陷管理機制報告,等到該缺陷修正了,整個錄制腳本的動作才能繼續下去。在這樣的情況下,如果僅僅依靠錄制腳本來進行測試,效率是十分低下的。

  同時,這些錄制好的腳本不是非常可靠,甚至在應用程序完全沒有變動的情況下直接播放,也可能因為一些意外狀況而無法執行。如果錄制腳本時測試人員使用了錯誤的腳本語言,則腳本就必須重新錄制。

  綜上所述,通過錄制的方式來建立自動化測試腳本的方式看似容易,但實際上會遇到下列問題:①測試人員大多不具備技術背景,難以完全掌握測試工具;②應用程序必須達到一定的穩定性,才能開始錄制測試腳本;③錄制的測試腳本與測試數據耦合得太緊密;④維護自動化測試腳本的成本非常高。

  因此,僅僅依靠錄制/回放來完成自動化測試是遠遠不夠的,我們應找到一種能解決上述問題并能很好地執行自動化測試的方法。

  2.數據驅動的自動化測試框架

  數據驅動的自動化測試是針對上述開發與測試之間緊密耦合問題提出的測試方法。通過建立測試與開發定義的軟件元數據的關聯——元數據映射表,在測試與開發之間建立松耦合關系。不論測試人員修改測試腳本,還是開發人員修改軟件,只需要修改元數據映射表,既可以滿足測試與開發同步進行。這樣,可以減少測試腳本調試的工作量,更好的實現自動化測試。

  ●什么是數據驅動的自動化測試框架

  數據驅動的自動化測試框架是這樣的一個框架,從某個數據文件(例如ODBC源文件、Excel文件、Csv文件、ADO對象文件等)中讀取輸入、輸出的測試數據,然后通過變量傳入事先錄制好的或手工編寫的測試腳本中。其中,這些變量被用作傳遞(輸入/輸出)用來驗證應用程序的測試數據。在這個過程中,數據文件的讀取、測試狀態和所有測試信息都被編寫進測試腳本里;測試數據只包含在數據文件中,而不是腳本里,測試腳本只是一個“驅動”,或者說是一個傳送數據的機制。

  ●數據驅動腳本

  數據驅動腳本就是那些和應用程序相關聯的腳本。這些腳本通過錄制或手工編寫寫進自動化工具私有的語言,然后對其中的變量賦予合適的數值,作為測試數據的輸入。這些變量作為一些關鍵應用程序輸入的媒介,使腳本能通過外部的數據來驅動應用程序。

  1) 可變數據,硬編碼組件標志

  這些數據驅動的腳本經常包含硬編碼的數據,有時是一些窗口組件中非常脆弱的識別字符串。出現這種情況時,腳本很容易由于程序的更改而失去作用。

  2) 高度技術化的、重復的測試設計

  數據驅動腳本的另一個共同特點就是,所有在測試設計上所作的努力最終都體現在自動化工具的腳本語言中,或者復制到手工和自動化測試腳本中。這意味著每個和自動化測試開發或執行有關的人必須對測試環境和自動化工具的編程語言非常精通。

  ●優點與缺點

  1) 優點: ①在應用程序開發的同時就可以同步建立測試腳本,而且當應用功能變動時,只需要修改業務功能部分的腳本;②利用模型化的設計,避免重復的腳本,減少建立或維護腳本的成本;③測試輸入數據,驗證數據和預期的測試結果與腳本分開,存放在另外的數據文件里,利于測試人員修改和維護;④透過判斷功能回傳值是“True”或“False”,可作錯誤處理,增加了測試腳本的健壯性;⑤自動化測試開發人員創建數據驅動的測試過程,測試員創建測試數據;⑥在測試的過程中收集測試結果,并在輸入數據的語境中表示測試結果,這樣可以簡化手工結果分析。

  2) 缺點: ①對自動化測試工具里的腳本語言必須非常精通;②每個腳本都會對應多個數據文件,這些數據文件需要根據腳本的功能類別存放在各自的目錄中,增加了使用的復雜性;③測試人員除了需要根據具體測試數據維護相應的測試計劃,還要將這些數據寫入各個需求不同的數據文件中;④在編輯數據文件時,必須注意測試腳本所要求的傳輸格式,否則會在處理腳本時產生錯誤。如由專門的技術人員對其進行維護,依賴于數據驅動腳本的自動化測試框架實現起來更簡單、快捷。但是,維護工作困難,而且還需要保持這種數據驅動的模式,這樣,即便長時間的維持也會導致失敗。3.關鍵字驅動的自動化測試

 

  關鍵字驅動的自動化測試(也稱為表驅動測試自動化),是數據驅動自動化測試的變種,可支持由不同序列或多個不同路徑組成的測試。它是一種獨立于應用程序的自動化框架,在處理自動化測試的同時也要適合手工測試。關鍵字驅動的自動化測試框架建立在數據驅動手段之上,表中包含指令(關鍵詞),而不只是數據。這些測試被開發成使用關鍵字的數據表,它們獨立于執行測試的自動化工具。關鍵字驅動的自動化測試是對數據驅動的自動化測試的有效改進和補充。

  關鍵字驅動的自動化測試的整個過程所包含的功能都是由關鍵字驅動的,關鍵字控制了整個測試過程。下面以“Post a Payment”為例,說明這種自動化測試方法是如何運作的(表1)。

  優劣分析

  關鍵字驅動的自動化測試框架是一種截然不同的思想,它把傳統測試腳本中變化的與不變的東西進行了分離,這種分離使得分工更明確,并且避免了它們相互之間的影響。 這種模型的開發和實現與傳統的測試流程相比可能是困難的,最耗時的,因為,我們正在努力地將我們的測試和自動化工具以及應用程序本身的變化完全隔離開來。為了實現這個目標,最重要的是要增強自動化工具所提供的組件功能,例如,錯誤糾正、避免和數據同步。但是這樣的投資是一次性的,一旦開發結束并投入使用,它給我們帶來的效益是巨大的,是自動化測試框架中最容易維護和使用的,而且可以反復運用于各種應用中,長期發揮作用。

  另外,現在已經有一些符合需求的商業化產品可供使用,減少了實現這種框架的困難。利用關鍵字驅動的自動化測試框架,測試人員不需要錄制測試腳本,而是設計測試腳本。

  4.混合的自動化測試框架

  結合以上幾種自動化測試框架的比較,目前最為成功的自動化測試框架應是綜合使用數據驅動和關鍵字驅動的自動化測試框架:以數據驅動的腳本作為輸入,通過關鍵字驅動框架的處理得到測試結果,完成自動化測試過程。這樣可以使數據驅動的腳本利用關鍵字驅動框架通常所提供的庫和工具。這些框架工具可以使數據驅動的腳本更為緊湊,而且也不容易失敗。

  關鍵字驅動的自動化測試框架模型

  下面將介紹一種以關鍵字驅動自動化測試框架思想為指導的自動化測試實現方案——關鍵字驅動的自動化測試模型,它是由SAS Institute的Carl Nagle開發的。圖2描述了該測試模型的結構。

  這個模型主要由核心數據驅動引擎、組件函數、支持庫和應用映射表組成。自動化測試首先由初始腳本開始執行,這個腳本把高層測試表傳遞給高層驅動器,高層驅動器在處理這些表的過程中,遇到中層測試表后就調用中層驅動器,中層驅動器處理中層表時也作類似的處理。當低層驅動器處理低層表時,它嘗試著使應用與測試保持同步。當低層驅動器遇到對某一個組件的低層關鍵字組件時,它判斷這個組件的類型并調用相應的組件函數模塊來處理這個指令操作。所有這些元素都要依靠映射表中的信息,它是自動化測試模型和被測應用程序的橋梁。

  ●應用映射表

  應用映射表是自動化測試模型中最關鍵的組件之一。在進行測試設計之前,測試人員首先對應用中的每一個對象定義一套命名規范,并利用映射表把這些名字和自動化工具識別的對象名聯系起來,使工具能準確地定位和操縱對象。我們的測試腳本只需進行單點維護。在上面的例子中,如果按鈕的名字或顯示文字發生了變化,那么腳本中所有涉及這些名字的地方都要進行修改。如果我們建立這樣一個映射,用邏輯對象SavePushButton表示真實的確認保存的按鈕對象,那么這個例子就可以寫成“Click SavePushButton”。當按鈕的名字或顯示文字改變時,只需要快速修改一下映射表中對應的識別方法就可以了,而不用修改腳本(表2)

  ●組件函數

  組件函數是實現用戶對界面對象操作指令的函數,一個組件對象的類型對應一個組件函數庫。例如對于一個文本框對象,測試人員可能會對它執行多種操作:輸入文本、驗證文本框的值、驗證文本框的某些屬性等,實現這些操作行為的函數就被放在文本框的組件函數庫中。一般的測試工具都提供了這樣的函數,而我們可以在其中加入額外的代碼來檢測錯誤、糾正錯誤和幫助同步,這類代碼是實現無人職守的自動化測試所必需的。

  組件函數相當于在應用和自動化工具之間提供了一個隔離層,如果沒有這個隔離層,自動化工具本身的改變或提高就會影響已有的腳本,但是有了組件函數,我們可以增加一對修補代碼來適應這些變化,轉移對測試的破壞。組件函數關鍵字和它們的參數構成自動化模型最低層的詞庫,了解了低層詞庫和映射表,就可以建立在它們基礎之上的測試表。

  ●測試表和核心數據驅動引擎

  測試表分低層、中層和高層。低層測試表指定了測試的每一步指令的細節,這些指令都是直接作用在界面對象上的,是無法再細分的指令。中層測試表把低層測試表組裝起來執行更多有用的任務。同一個低層表可以用于多個中層表,所以我們應該開發盡可能少的低層表,然后把它們按照不同的目的組裝起來,實現最大的重用性。同樣的,高層測試表把中層表組裝起來,形成一個測試循環,每個循環都是完整的,可以定制不同類型和數量的測試。

  例如打開網頁、登錄、關閉網頁這3個動作可以用3個低層表來表示,每個表定義了實現相應動作的具體步驟,所以低層表又叫做步驟表。低層表中使用了映射表中定義的對象名,和由組件函數定義的低層關鍵字詞庫。表3是一個實現登錄動作的低層表。而這個表示“登錄”的低層表關鍵字很可能會出現在“驗證錯誤登錄”、“驗證正確登錄”、“驗證空白登錄”等中層表中,這些中層表合起來構成了“驗證權限”高層表。

  對應于以上這3個測試表,核心數據驅動引擎相應地分成了高層驅動器、中層驅動器和低層驅動器。高層驅動器讀取高層表的每個記錄,如果遇到中間表關鍵字,就把這個表傳遞給中層驅動器,依此類推,直至到達低層表,低層驅動器調用關鍵字詞庫中的低層指令所對應的組件函數來完成最后的執行。最后要說明的是這樣一種層次結構并不是固定不變的,可以根據實際應用情況進行調整。

  ●支持庫

  支持庫是一些程序和工具,例如文件處理、字符串處理、緩沖處理、數據庫訪問、日志記錄工具等,它們為自動化模型提供最基礎的支持。

  結 語

  自動化測試框架無疑是企業實施自動化測試的一個必然的發展方向,它對于產生成功的測試自動化的適當基礎是重要的。為了選擇一個合適的自動化測試框架,企業需要綜合考慮維護成本、測試數據、可測試性、測試人員的技能等諸多因素?;仡欁詣踊瘻y試發展的過程,以往的經驗告訴我們,無法依靠簡單的錄制/回放的測試方法或傳統的測試腳本工具來完成測試,因為錄制產生的腳本維護困難,而且生存期很短。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美电影免费观看高清| 国内自拍视频一区二区三区| 亚洲一区二区在线观看视频| 欧美视频精品在线观看| 国产精品成人久久久久| 久久精品视频在线观看| 亚洲一区精品视频| 久久成人这里只有精品| 国产精品高精视频免费| 在线欧美视频| 在线成人亚洲| 欧美一级大片在线免费观看| 国产一区二区三区视频在线观看| 欧美精品成人在线| 在线观看欧美亚洲| 欧美三级乱人伦电影| 欧美久久影院| 亚洲精品国产精品久久清纯直播| 你懂的国产精品永久在线| 一本大道久久a久久精品综合| 91久久久久久| 久热综合在线亚洲精品| 欧美一站二站| 一区二区三区在线看| 国产日韩欧美不卡在线| 亚洲欧美日韩电影| 久久网站热最新地址| 亚洲欧美日韩精品久久久| 欧美日本一区| 亚洲综合欧美| 欧美激情精品久久久久久| 欧美日在线观看| 欧美在线一区二区三区| 亚洲私人影院在线观看| 一个人看的www久久| 性做久久久久久久免费看| 在线视频成人| 国产永久精品大片wwwapp| 国产亚洲一区二区三区在线观看| 欧美区一区二区三区| 久久综合伊人| 国产乱子伦一区二区三区国色天香| 国内一区二区在线视频观看| 亚洲全黄一级网站| 久久精品国产精品亚洲综合| 欧美私人啪啪vps| 午夜精品成人在线视频| 国产日韩精品一区二区| 欧美午夜国产| 欧美激情综合| 亚洲免费中文| 欧美日韩成人一区二区三区| 国产欧美日韩亚州综合| 亚洲成人在线| 欧美在线观看视频| 激情五月综合色婷婷一区二区| 欧美1级日本1级| 国产精品免费观看在线| 欧美风情在线| 国产欧美在线视频| 一本久道久久综合狠狠爱| 久久夜色精品国产亚洲aⅴ| 国产精品高潮呻吟久久av黑人| 亚洲精品日韩在线| 亚洲国产精品热久久| 影音国产精品| 欧美一区=区| 亚洲精品视频在线观看网站| 老司机免费视频一区二区| 国模吧视频一区| 销魂美女一区二区三区视频在线| 欧美一区二区免费| 久久久久国产一区二区三区| 在线观看亚洲一区| 欧美色一级片| 欧美成人精品高清在线播放| 久久久久高清| 欧美成人一区二免费视频软件| 国户精品久久久久久久久久久不卡| 欧美日本不卡高清| 久久婷婷久久| 久久综合九色综合欧美狠狠| 亚洲欧美在线一区| 亚洲国产精品专区久久| 久久本道综合色狠狠五月| 久久er99精品| 在线观看日韩欧美| 亚洲裸体在线观看| 国产日韩精品一区二区三区| 国产色产综合色产在线视频| 久久爱www久久做| 欧美成人免费网| 国产精品久久精品日日| 久热精品视频在线观看| 亚洲精品国产精品乱码不99按摩| 亚洲激情黄色| 亚洲三级视频| 亚洲国产精品国自产拍av秋霞| 国产精品久久久久久久午夜| 久久久久久网| 欧美日韩精品二区第二页| 国产一区二区三区的电影| 久久国产欧美精品| 免费中文字幕日韩欧美| 午夜国产不卡在线观看视频| 一区二区三区 在线观看视| 亚洲日本va在线观看| 欧美韩国一区| 亚洲欧美日韩在线一区| 久久国产精品亚洲va麻豆| 久久夜色精品亚洲噜噜国产mv| 久久在线免费观看视频| 亚洲国产三级网| 美女啪啪无遮挡免费久久网站| 你懂的成人av| 欧美成人性生活| 久久久久久久一区| 国产精品久久久久久久浪潮网站| 久久久久久91香蕉国产| 国产精品一区久久久久| 亚洲欧美日韩精品| 欧美激情视频在线播放| 欧美精品在线观看| 亚洲精品一二三区| 欧美精品在线播放| 久久久噜噜噜久噜久久| 国产亚洲视频在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 狠狠色狠狠色综合日日五| 欧美激情第8页| 99视频热这里只有精品免费| 亚洲第一黄色| 亚洲精品少妇网址| 国产精品久久国产三级国电话系列| 好吊色欧美一区二区三区视频| 一区二区三区四区国产精品| 国产日韩欧美麻豆| 欧美怡红院视频一区二区三区| 一色屋精品视频在线观看网站| 亚洲深夜激情| 好看的亚洲午夜视频在线| 欧美99久久| 亚洲国产高清一区二区三区| 亚洲激情一区| 亚洲视频在线观看视频| 国产精品永久在线| 亚洲激情午夜| 欧美成人在线影院| 国产婷婷一区二区| 欧美一二三区精品| 国产欧美日韩另类视频免费观看| 久久国产高清| 欧美日韩精品欧美日韩精品一| 国产欧美在线视频| 美女免费视频一区| 午夜久久tv| 欧美成人资源网| 久久久久国产精品人| 欧美手机在线视频| 日韩亚洲成人av在线| 久久字幕精品一区| 亚洲精品一区二区三区蜜桃久| 女同性一区二区三区人了人一| 亚洲最快最全在线视频| 欧美日本在线播放| 在线日本成人| 久久久久久亚洲综合影院红桃| 亚洲精品免费在线观看| 国产日韩综合一区二区性色av| 亚洲精品一二区| 伊人久久综合97精品| 国内成人在线| 亚洲精品综合久久中文字幕| 久久这里只精品最新地址| 亚洲欧美日韩在线| 亚洲精品乱码久久久久久久久| 国产精品地址| 亚洲综合精品自拍| 国产精品裸体一区二区三区| 欧美日韩精品久久| 黄色工厂这里只有精品| 欧美成人性生活| 国内一区二区三区在线视频| 亚洲电影免费观看高清完整版在线观看| 欧美日韩国产探花| 99综合视频| 欧美/亚洲一区| 欧美成人一品| 欧美四级剧情无删版影片| 欧美性猛交一区二区三区精品| 欧美成人精精品一区二区频| 久久视频在线视频| 一区二区动漫| 国产精品sm| 国产美女扒开尿口久久久| 国产欧美1区2区3区| 午夜精品一区二区三区电影天堂| 欧美jizzhd精品欧美巨大免费| 亚洲欧美日韩精品综合在线观看| 国产农村妇女毛片精品久久莱园子| 午夜精品久久久久久久白皮肤| 欧美成人午夜激情在线| 国产专区综合网| 欧美成人综合在线| 国产日韩欧美综合一区| 亚洲电影成人| 在线视频国内自拍亚洲视频| 亚洲一区区二区| 久久免费视频在线观看| 亚洲国产成人在线播放| 亚洲国产欧美精品| 一区二区三区在线高清| 国外视频精品毛片| 午夜亚洲性色福利视频| 日韩午夜av电影| 欧美日韩国产成人高清视频| 午夜欧美视频| 亚洲精品欧美精品| 欧美在线日韩精品| 一本一本大道香蕉久在线精品| 国产精品影视天天线| 亚洲国产精品毛片| 国产亚洲日本欧美韩国| 欧美成人一二三| 国产一本一道久久香蕉| 亚洲视频香蕉人妖| 欧美jizzhd精品欧美喷水| 欧美视频你懂的| 欧美黑人国产人伦爽爽爽| 国产精品视频一二三| 国产精品国产三级国产aⅴ浪潮| 狂野欧美性猛交xxxx巴西| 欧美精品久久一区| 欧美日韩免费观看一区=区三区| 亚洲缚视频在线观看| 欧美高清视频在线播放| 一区视频在线播放| 亚洲国内精品| 午夜精品区一区二区三| 亚洲人成艺术| 亚洲欧美日韩另类精品一区二区三区| 亚洲一区二区三| 久久夜色撩人精品| 136国产福利精品导航网址| 免费观看国产成人| 久久亚洲欧美| 99精品国产99久久久久久福利| 亚洲图片在线| 久久综合色综合88| 久久国产精品久久国产精品| 先锋影音网一区二区| 亚洲欧美福利一区二区| 欧美日韩中文| 欧美精品www| 亚洲欧洲视频在线| 亚洲最新视频在线播放| 欧美日韩日本网| 狂野欧美性猛交xxxx巴西| 久久国产精品亚洲va麻豆| 国产喷白浆一区二区三区| 一色屋精品视频在线看| 亚洲福利免费| 亚洲一区二区综合| 在线看片成人| 欧美日韩1区2区3区| 免费日韩视频| 亚洲毛片一区二区| 一区二区三区在线视频播放| 久久xxxx| 亚洲免费小视频| 亚洲国产精品高清久久久| 日韩视频免费观看高清在线视频| 国产一区二区中文字幕免费看| 美女精品视频一区| 性色av一区二区怡红| 欧美日韩精品系列| 亚洲精品国产视频| 欧美日韩三区| 午夜精品久久久久久久久久久久| 国产精品伊人日日| 国产精品任我爽爆在线播放| 欧美午夜无遮挡| 亚洲欧美日韩爽爽影院| 亚洲人午夜精品免费| 国产日韩一级二级三级| 亚洲自拍偷拍麻豆| 夜夜爽av福利精品导航| 欧美v日韩v国产v| 亚洲区国产区| 日韩午夜精品| 日韩视频在线一区二区三区| 性欧美video另类hd性玩具| 国产精品欧美一区喷水| 另类酷文…触手系列精品集v1小说| 国产网站欧美日韩免费精品在线观看| 久热精品视频在线免费观看| 日韩亚洲欧美中文三级| 久久裸体视频| 欧美视频免费在线观看| 国产精品一区二区在线观看网站| 亚洲国产婷婷综合在线精品| 亚洲天堂免费在线观看视频| 亚洲第一在线| 久久精品在线免费观看| 国产精品美女久久久久久2018| 国产一区二区三区网站| 午夜免费久久久久| 久久日韩粉嫩一区二区三区| 合欧美一区二区三区| 久久九九精品99国产精品| 亚洲欧洲日本一区二区三区| 久久综合久久综合久久综合| 国产三区精品| 一本色道久久综合狠狠躁篇怎么玩| 欧美sm重口味系列视频在线观看| 国产欧美日韩一区二区三区在线| 久久久av网站| 欧美日韩日日夜夜| 国产一区二区三区高清在线观看| 9久草视频在线视频精品| 一区二区三区在线视频观看| 黑人巨大精品欧美一区二区| 亚洲国产精品欧美一二99| 性欧美18~19sex高清播放| 国产精品无码专区在线观看| 欧美一区二区三区四区视频| 欧美一区二区三区免费观看视频| 伊人狠狠色丁香综合尤物|