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