1. 程式人生 > >如何選擇自動化測試框架

如何選擇自動化測試框架

軟體自動化測試,作為手工測試的替代,越來越受到關注。Pekka Klärck,作為Robot Framework的建立者和核心開發者,按照系統級別,介紹了幾種不同的自動化測試方法的區別。

一、記錄回放的方式流行於商業工具之中,無需程式設計技能即可快速上手。然而這種方法相對脆弱,一旦UI變化測試就會受到影響,分散的指令碼不可重用且難以維護,而且系統在測試前必須可用(也就意味著無法使用A-TDD方法)。因此這種方法並不適合大型自動化測試。

二、線性指令碼允許使用各種語言來編寫非結構化指令碼,指令碼直接與被測系統互動。能夠快速上手,靈活性強。但是編寫指令碼需要程式設計技能,系統中一個改動會影響所有指令碼,沒有經過模組化或重用的大量指令碼難以維護。因此這種方法適合簡單任務,不適合大型自動化。

三、模組化指令碼由兩部分組成:驅動指令碼執行測試,測試庫函式完成與被測系統互動。驅動指令碼編寫起來非常簡單,這樣可以更快地建立新測試,容易維護。然而需要花時間和程式設計技能建立測試庫,並將測試資料嵌入指令碼,建立新測試就需要新的測試指令碼。因此,只要擁有程式設計技能,這種方法還是適合大型專案,但不適合非程式設計人員。

四、資料驅動方法,將資料與測試指令碼分離,基於模組化的測試庫,一個驅動指令碼可以執行多個相似測試,這樣非常容易建立新測試。維護工作可以分離,測試人員負責資料,程式設計師負責寫測試庫。然而,不同型別測試仍需要新的驅動指令碼,初始建立資料解析器和重用元件需要花人力。這種方法適合大型專案,只需要較少的程式設計技能。

五、關鍵字驅動,將資料與關鍵字結合來描述如何使用資料執行測試。這種方法具備資料驅動的優勢,同時非程式設計人員也能建立新型別測試。所有測試由同一個框架來執行,無需不同的驅動指令碼。然而初始成本很大,但是可以使用開源方案!因此非常適合大型專案。

Pekka對以上五種方法的介紹其實也是對自動化測試發展史的介紹,同時也體現了RobotFramework背後的設計思想。

除了測試框架的選擇,要想做好自動化測試,還要關注其他方面。

自動化測試需要關注可測性。自動化最難的部分是與被測系統互動,特別是GUI層。確保系統容易被測試,比如給GUI元素增加標識、輸出易於解析的文字、提供自動化介面等。

系統一般可以分為GUI層以及GUI之下的業務層。GUI層測試需要呼叫與普通使用者同樣的介面,但是某些GUI技術缺乏好的工具支援,會使測試變得脆弱,而且執行相對較慢。從業務層開始測試相對容易,執行快。但GUI層仍然需要被測試,以保證GUI正確連線到了業務層,甚至有時GUI層也具有業務功能。Pekka建議考慮對業務層進行完全測試,而部分地對GUI層實行端到端測試。 不是所有系統都具有GUI層,卻可能具有API、資料庫、伺服器、命令列等。自動化測試框架可以呼叫不同驅動來進行測試。這些非GUI層相對容易測試,只要把測試用例看作另一個客戶端而已。

那麼自動化測試應該在什麼階段進行?如果開發完成後單獨做自動化,這是典型的瀑布式過程,不同團隊之間存在溝通障礙,反饋週期慢,產品在後期難以獲得可測性,從而導致複雜和脆弱的測試方案。相反,典型敏捷式過程中,程式設計師和測試人員協同完成自動化。把自動化看作團隊開發的一部分,可測性不再是問題,團隊做技術決定時就可以考慮可測性和工具選擇,程式設計師可以提前加入提供可測性的鉤子特性。

自動化測試需要版本控制和持續整合來支援。將測試和程式碼放在一起,像管理程式碼一樣管理測試指令碼,那麼多可用工具,SVN、GIT、Mercurial,沒道理不用。持續整合是全方位自動化的關鍵,當測試或程式碼有所改動立即執行測試。如果測試執行時間比較長,也可以定期執行。使用Jenkins、Hudson、Cruise Control、 BuildBot吧,自己寫定時指令碼或Cron Job可以休矣。

選擇商業自動化工具還是開源工具?好東西肯定貴,但是貴的不見得好,再便宜的許可證也會阻止整個團隊的協作。而且商業化工具難以和其他自動化工具(特別是其他廠商的)或版本控制、持續整合進行整合和定製化。另外,產品終止或公司關門是潛在的風險。開源工具可供選擇餘地很大,當然也是良莠不齊。開源工具通常容易與其他工具整合,關鍵是免費,誰都可以隨意使用和定製化,還永遠不會消失。至於免費軟體,越來越少了,很多自由軟體都已經開源。免費軟體同樣不能定製化,且存在中止的風險。

做自動化需要哪些技能?一般來說,包括Python、Ruby、Perl、JavaScript、正則表示式、XPath和CSS定位、SQL語句、版本控制等。

有了自動化,手工測試還需要嗎?當然需要!! 不過,要避免手工執行指令碼來測試,還是將其完全自動化吧,測試人員可以更多關注於探索性測試。 記住,機器擅長迴歸測試,人類善於尋找Bug。

相關推薦

如何選擇自動化測試框架

軟體自動化測試,作為手工測試的替代,越來越受到關注。Pekka Klärck,作為Robot Framework的建立者和核心開發者,按照系統級別,介紹了幾種不同的自動化測試方法的區別。 一、記錄回放的方式流行於商業工具之中,無需程式設計技能即可快速上手。然而

#自動化測試框架的4種有效分類與使用選擇

前言 有人喜歡創造世界,他們做了開發者;有的人喜歡開發者,他們做了測試員。什麼是軟體測試?軟體測試就是一場本該在使用者面前發生的災難提前在自己面前發生了,這會讓他們生出一種救世主的感覺,拯救了使用者,也就拯救者這個軟體,避免了他們被解除安裝的命運。   自動化測試一直是敏捷開發和敏捷測試的重

android常用自動化測試框架

window 自動 瀏覽器 資料 對比 移動 ppi des 選擇 目錄: Monkey MonkeyRunner Instrumentation UiAutomator Espresso Selendroid Robotium Athrun Appi

python專項測試——Android App自動化測試框架

selenium sdk str ase val 測試環境 self ron app自動化 1 為什麽需要框架? 代碼混亂,難閱讀; 重復編碼,效率低;需求變化,難維護; 一 自動化實例 1 準備測試的app;準備測試環境;實現腳本; 2 測試app:只有登錄功能

基於C#實現的自動化測試框架:發布自動觸發自動化回歸測試

exc 時間流 測試用例 出現 服務器 text types filter txt 接口自動化測試用例完成以後,以前都是發布以後手動運行測試用例。雖然手動運行下腳本也就是一個F5的事情,但是離自動化測試的標準差得很遠。這兩天有了個大膽的想法,想要實現以下發布時直接觸發自動化

RobotFramework自動化測試框架的基礎關鍵字(二)

速查 語言 left 自動化 logs python語言 添加 src bsp 1.1.1 如何快速查詢某一個關鍵字的API說明 鼠標選中我們關鍵字,同時按住Ctrl+Alt鍵,即可出來該關鍵字的幫助API以及使用示例 1.1.2 如何快速補全

Eclipse+TestNG搭建接口自動化測試框架

eclipse 資源分享 由於 myeclipse 配置文件 需要 globals setting 做了 一、環境安裝 1、前提 安裝好jdk 配置好Java環境變量 安裝Eclips 這些網上都有,就不再詳細介紹。 資源分享鏈接:http://pan.baidu.com

RobotFramework自動化測試框架的基礎關鍵字(五)

選擇 作用 image val 結果 run comm 意思 框架 1.1.1 Run Keyword If判斷的使用 Run Keyword If是一個常用的用來做邏輯判斷的關鍵字,意思是如果滿足了某一個判斷條件,然後就會執行關鍵字,我們對list3中放入0

RobotFramework自動化測試框架-移動手機自動化測試AppiumLibrary介紹

request rri port wan dpa mage simulator mac uninstall 在使用AppiumLibrary庫時,需要預先安裝好Appium自動化工具,Appium官網地址為:http://appium.io/ Appium的GitHub地

基於python的接口自動化測試框架

urn __name__ exce 文件格式 圖片 XML pla main tex 公司內部的軟件采用B/S架構,大部分是數據的增刪改查,由於還在開發階段,所以UI界面的變化非常快,難以針對UI進行自動化測試,那樣會消耗大量的精力與時間維護自動化腳本。針對此種情況,針對接

Selenium自動化測試框架的搭建

技術 閱讀 中國 有一個 base 這一 們的 是否 hat 說 起自動化測試,我想大家都會有個疑問,要不要做自動化測試? 自動化測試給我們帶來的收益是否會超出在建設時所投入的成本,這個嘛別說是我,即便是高手也很難回答,自動化測試的初衷是美好的,而測試工程師

自動化測試框架

目錄 源文件 綜合素質 pos post 文件 簡單 單位 文件格式 1、開發工具開發語言和使用框架:Java、Selenium2集成開發環境: Eclipse https://www.jetbrains.com/idea/ jetbrains 大法好分布式監控平臺: Je

解決TestNG 自動化測試框架如何安裝到eclipse中

sem err dmr nco mwl wql urn ycm vro TestNG 自動化測試框架如何安裝到eclipse中 ??? 解釋: TestNG 其實就是一個插件(個人理解為eclipse 中的插件 ) 開門見山---寫步驟 :

RobotFramework自動化測試框架-移動手機自動化測試Click A Point關鍵字的使用

pla com version -1 oca users button main localhost Click A Point關鍵字用來模擬點擊APP界面上的一個點,該關鍵字接收兩個三個參數[ x=0 | y=0 | duration=100 ],x和y代表的是點的坐標位

[持續交付實踐] 基於 Junit 的接口自動化測試框架實現

lis ebo 命名 早已 更多 數據集 matcher 似的 相關 前言 這半個月基本都在出差以及各種公司業務上的事情,難得有空閑整理一些測試技術上的事情。周末有些空閑抓緊碼一篇填坑,持續交付/持續集成這一系列文章不僅僅是想在壇子裏和同行者做些分享,對個人的一種自我思考和

自動化測試框架搭建之企業級實戰經驗

自動化框架搭建實戰業務特征: 問題: 1, 根據目前的業務特征如何選取合適的自動化測試工具&框架? 本文出自 “運維自動化” 博客,請務必保留此出處http://shower.blog.51cto.com/4926872/1978981自動化測試框架搭建之企業級實戰經驗

ETL 自動化測試框架

線程 做的 ase test 發送請求 all 自動化測試框架 通過 mon 分享個自己最近在做的自動化測試框架架構圖。 數據的測試,入口一般定時任務。可添加參數選擇執行任務的範圍,也可以選擇默認的執行範圍。驗證測試的為etl測試、數據庫中的字段校驗(通過對應關系、接口或者

自動化測試框架STAF介紹

bash get 快速 rbo 支持 keyword i386 ref 外部 STAF全稱是Software Testing Automation Framework,如其官網(http://staf.sourceforge.net/)所說,STAF是一個開源、跨平臺、支持

Java+Maven+selenium+testing+reportNG自動化測試框架

都是 tlist image pub tro snapshot htm sea cells 最近公司新出了一個產品,需要搭建自動化測試框架,這是一個學以至用的好機會,跟上級申請後,決定搭建一個java自動化測試框架。 Java自動化測試對我來講可以說不難不易,因為java是

Python Api接口自動化測試框架 代碼寫用例

簡書 場景 分享圖片 else basic UNC ant ctc ascii 公司新來兩個妹子一直吐槽這個接口測試用例用excel維護起來十分費腦費事,而且比較low(內心十分贊同但是不能推翻自己),妹子說excel本來就很麻煩的工具,於是偷偷的進行了二次改版。 變更