QTP將死——開源測試登上舞臺
QTP作為測試
以前良好協(xié)作的自動化用例管理平臺,是TD(qc),能夠?qū)崿F(xiàn)用例與自動化關(guān)聯(lián)。
隨著WEB2.0+,移動互聯(lián)網(wǎng)的興起,QTP/QC還能勝任嗎?
數(shù)年之前,EJB也是標準,但是EJB造成了一些招致IT人員反感的問題:開發(fā)調(diào)試維護困難,方案太重與應(yīng)用服務(wù)器緊密綁定(昂貴)性能低下……
我們回過頭來看看,QTP/QC也不是與這個很類似嗎?
QTP如果你不與QC關(guān)聯(lián),很難關(guān)聯(lián)用例與需求QTP實際運行性能低下,特別是插件(先不考慮插件的價格)QTP做測試,必須有框架……這里不想討論LR。
如果我們不用QTP/QC,開源世界里能否有東西勝任呢?
答案是肯定的。回頭看看EJB:Hibernate取代了EntityBeanSpring成了粘合劑這二者聯(lián)手將java世界的標準,送進了博物館。
那么
我認為:QTP的取代者,會是webdriver,webdriver就像hibernate的地位;當(dāng)然,你也可以不用webdriver,就你可以不用hibernate而用myBatis/dbutil等取代一樣,你也可以用watir/htmlunit/seleniumRC/webaii/white/sikuli/bromine等任何來代替webdriver的地位;就跟你想在寫原生sql一樣,你也可以寫(win32ole)win32api, linux xdotool來完成自動化。
那誰來把QTP從QC上解耦,并能提供良好的用例組織和管理呢?
答案就是BDD目前的事實標準:Cucumber!!
引用維基百科:行為驅(qū)動開發(fā)(縮寫B(tài)DD)是一種敏捷軟件開發(fā)的技術(shù),它鼓勵軟件項目中的開發(fā)者、QA和非技術(shù)人員或商業(yè)參與者之間的協(xié)作。BDD最初是由Dan North在2003年命名[1],它包括驗收測試和客戶測試驅(qū)動等的極限編程的實踐,作為對測試驅(qū)動開發(fā)的回應(yīng)。在過去數(shù)年里,它得到了很大的發(fā)展[2]。
2009年,在倫敦發(fā)表的“敏捷規(guī)格,BDD和極限測試交流”[3]中,Dan North對BDD給出了如下定義:BDD是第二代的、由外及內(nèi)的、基于拉(pull)的、多方利益相關(guān)者的(stakeholder)、多種可擴展的、高自動化的敏捷方法。它描述了一個交互循環(huán),可以具有帶有良好定義的輸出(即工作中交付的結(jié)果):已測試過的軟件。
這一大段話,頭都要暈掉了吧。OK,我們來看一個典型的BDD用例(用戶故事): 你可以認為,這就是兩個測試用例!那他與普通的測試用例有什么不同呢? 用戶故事關(guān)聯(lián)了需求,是包含了需求的用例故事貫穿整個軟件生命周期,直到驗收故事是軟件的商業(yè)價值,是最“有效文檔” BDD框架,普遍自帶數(shù)據(jù)驅(qū)動,關(guān)鍵字驅(qū)動,參數(shù)化。 一個典型的ui automation例子(點擊圖片查看大圖): 運行結(jié)果: 說幾點: ● BDD,只是一種思想,一種輕量級測試實踐;BDD注重有效文檔,注重用戶故事的拆分細化 。 ● story可以使得黑盒與自動化人員分離;只要story控制的好,可以招廉價開發(fā)來實現(xiàn)自動化 ● 就跟你可以用google guice, picocontainer替換spring一樣,BDD框架可以自由選擇,因為都是提供相同風(fēng)格的功能 ● 比如py里可以用lettuce,.net上有cuke4nuke,groovy有easyb, spock,sikuli也支持BDD等 ● ● 如果你的企業(yè)愿意花幾十萬(不是為了只賣最貴),還不如只花幾萬來投在人力建設(shè)上,通過開源測試來提升團隊, 企業(yè)里沒有什么比人才更可貴的了。 ● BDD對粘合自動化或者框架的唯一要求,支持代碼編寫并啟動,比如selenium watir等,而依賴特定GUI的不見得適合。 ● 你不見得需要想開發(fā)QTP框架樣重復(fù)造輪子,合理的使用開源社區(qū)現(xiàn)有輪子即可。 ● ● BDD工具完全可以與CI整合,方式多種多樣。 目前情況下,BDD缺少一個GUI界面的故事管理工具,你可以自己開發(fā)一個,或者買商業(yè)的,不過更多的人選擇把story帖在墻上。 隨著cucumber-jvm的火熱,到了該是BDD成為測試主流的時候了,畢竟BDD只是一種思想,一種表現(xiàn)形式,不是一種具體的思路,也不強制你購買某個廠商的工具(當(dāng)然thoughtworks也有BDD工具twist);現(xiàn)在企業(yè)都講究整合,作為廣大發(fā)展中測試人員,特別是在成長中公司的測試人員,拿起你的斧頭,把該砍的都砍掉,做輕量級測試吧!你會找到自己的樂趣的。 常用BDD框架:JBehave rspec cucumber cuke4nuke spock等等常見支持與BDD粘合的工具:watir selenium celerity white UIA3.0 robotium bromine(iphone) webaii soapui(core)等 常見與BDD一起使用的編程語言:ruby python groovy node.js java c# erlang lua,就是沒有VBSwebdriver,自動化(特指測試自動化)領(lǐng)域的hibernate;cucumber,自動化領(lǐng)域的spring。當(dāng)冬眠的熊遇上春天…… 讓廣大自動化人員在開源世界中熱起來吧!
posted on 2012-11-05 10:11 順其自然EVO 閱讀(1549) 評論(2) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學(xué)習(xí)