軟件測試功能自動(dòng)化測試工具為我們帶來(lái)了什么
過(guò)去幾年在微軟的測試經(jīng)驗,談?wù)剬?STRONG>測試自動(dòng)化的看法。
先說(shuō)說(shuō)為什么做測試的人喜歡搞自動(dòng)化。
第一,自尊心。計算機科班出身的人都喜歡作開(kāi)發(fā)(Dev)。做測試工作經(jīng)常是身不由己,可是測試工作很多時(shí)間不需要編程,于是做測試的人想方設法寫(xiě)些程序,以顯示自己也會(huì )編程。結果往往是欲罷不能,測試自動(dòng)化程序越寫(xiě)越多,越寫(xiě)越復雜。后面我會(huì )談?wù)劀y試自動(dòng)化框架復雜的代價(jià)。
第二,為了出成績(jì)。很多測試組為了向管理層展示成績(jì),往往要拿出例如測試自動(dòng)化達到80%,程序覆蓋率達到90%。要我說(shuō),這些都是Bull Shit. 就象小平同志說(shuō)的“實(shí)踐是檢驗真理的唯一標準”,我認為在測試中“用戶(hù)不出問(wèn)題是檢驗質(zhì)量的唯一標準”。自動(dòng)化做的再多,用戶(hù)出了問(wèn)題,也是白搭。另外,一個(gè)人就可以做的測試,自動(dòng)化往往需要兩個(gè),三個(gè)。倒是解決就業(yè)的好方法。
那接下來(lái)我給大家說(shuō)一下有關(guān)功能自動(dòng)化測試工具為我們帶來(lái)的方便
功能自動(dòng)化測試工具為我們帶來(lái)了什么呢?我不知道大家如何看待這個(gè)問(wèn)題,我總覺(jué)的很多人把功能的自動(dòng)化測試工具看的特別的“厲害”,覺(jué)得可以完成很多的工作。領(lǐng)導會(huì )說(shuō),如果我們用工具進(jìn)行回歸測試,會(huì )很快的發(fā)現問(wèn)題,然后減少回歸測試的時(shí)間,提高項目的效率,如此這般公司開(kāi)始推行自動(dòng)化工具! ⌒疫\的,我開(kāi)始成為自動(dòng)化工具的推廣者,曾經(jīng)用過(guò)自動(dòng)化測試工具selenium進(jìn)行簡(jiǎn)單的自動(dòng)化測試,因為項目是多省系統,進(jìn)行系統測試時(shí),重復內容比較多,但是程序又相對穩定。于是在測試的間隙,完成自動(dòng)化測試腳本,在系統測試中運行測試。效果還是比較好的,現在想想當時(shí)的腳本真的是非常脆弱而且是簡(jiǎn)單的,沒(méi)有任何的控制語(yǔ)句,場(chǎng)景回復,腳本的維護量比較大,一旦出現問(wèn)題,腳本跑不通,只能人工排查原因,自動(dòng)化測試的部分只在系統測試中站系統測試百分之五十的工作量,但是在整個(gè)測試的工作量中百分之十都不到,大家仿似看到此時(shí)自動(dòng)化測試的甜頭,希望在整個(gè)公司中推廣自動(dòng)化測試工具,覺(jué)得自動(dòng)化測試是一種趨勢,一種必然,于是我站在風(fēng)頭浪尖開(kāi)始試著(zhù)完成這項工作。
自動(dòng)化測試同手工測試一樣,都需要有一個(gè)計劃,測試的覆蓋率,評估自動(dòng)化測試工具是否能帶來(lái)收益來(lái)確定測試的內容,其實(shí),并不是所有項目都適合自動(dòng)化測試工具的,如果項目周期短,是不適宜做自動(dòng)化測試的,自動(dòng)化測試雖然在運行中比較省時(shí)間,但是在前期的設計,腳本的編寫(xiě)和維護都會(huì )浪費較多的時(shí)間,如果自動(dòng)化測試腳本不能重復利用多次,自動(dòng)化對于我們只是一種時(shí)間的浪費,只會(huì )令整個(gè)項目延期。如果你要用qtp這種識別gui屬性的工具必須要等待頁(yè)面功能穩定以后才能進(jìn)行自動(dòng)化腳本的設計,因為任何一個(gè)控件的修改都會(huì )導致自動(dòng)化工具不能識別控件。其次,自動(dòng)化和手工測試都需要完成用例的設計,手工測試用例有相應的輸入輸出,自動(dòng)化腳本也需要,最好能參數化進(jìn)行。
自動(dòng)化測試是否能代替手工測試呢?多少人重復的問(wèn)這這個(gè)問(wèn)題,答案是不能,自動(dòng)化測試最大的用處是保證測試的質(zhì)量,而不是發(fā)現問(wèn)題,而手工測試是發(fā)現問(wèn)題。因為我們每次的回歸測試,如果是手工測試的情況由于時(shí)間的關(guān)系并不能因為一個(gè)模塊的bug,去測試其他的模塊,而自動(dòng)化測試工具的加入,可以保證所以模塊的基本功能,每次回歸用手工去發(fā)現驗證問(wèn)題,用自動(dòng)化工具去保證整個(gè)軟件的基本功能正常運行,自動(dòng)化的推廣是逐步的,首先做一些冒煙測試的自動(dòng)化,隨后把一些主要的功能和測試點(diǎn)也加進(jìn)來(lái),但是千萬(wàn)不要太細化,到所有手工測試的點(diǎn),這樣,會(huì )帶來(lái)很大的風(fēng)險,自動(dòng)化程度越高,風(fēng)險將越大。
自動(dòng)化的另外一個(gè)注意點(diǎn)就是管理,引入一項內容,必然就需要花一定的時(shí)間對引入的內容做管理,例如用td管理工具,一定有相應的說(shuō)明文檔,使他不依賴(lài)于某個(gè)人,以至于某個(gè)人的離職不會(huì )對自動(dòng)化工作造成太大的打擊。
自動(dòng)化測試工具帶來(lái)了什么?帶來(lái)了質(zhì)量的保證同時(shí)也引入了問(wèn)題,看你如何規避各種各樣的問(wèn)題,讓自動(dòng)化測試工具為你所用啦。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/