軟件自動(dòng)化測試的推動(dòng)力 軟件測試
誰(shuí)在推動(dòng)軟件自動(dòng)化測試?
做過(guò)一個(gè)單元測試自動(dòng)化,我們開(kāi)發(fā)了近百行的測試代碼去測試一個(gè)代碼行為10行的函數;在UI測試自動(dòng)化,則調用了IE的COM接口去驅動(dòng)IE application,以模擬在界面上的兩個(gè)動(dòng)作,輸入“測所”和點(diǎn)擊“搜索”按鈕,總共9行代碼(如果考慮自動(dòng)化健壯性的話(huà),還要增加錯誤處理代碼)。
觀(guān)察到這些,我們暫且不考慮自動(dòng)化測試開(kāi)發(fā)之后的維護,至少可以有一個(gè)直觀(guān)的認識:從手工測試向自動(dòng)化測試的轉變是要付出的成本的,而且這個(gè)投入要遠比做一次手工測試的代價(jià)要高,比如,一個(gè)有經(jīng)驗的自動(dòng)化測試開(kāi)發(fā)人員完成一段健壯的100行左右的測試腳本大概需要一天左右的時(shí)間,而手工完成這個(gè)功能點(diǎn)的測試則只需要10分鐘。一天 VS十分鐘,按理說(shuō),這是一個(gè)賠本的買(mǎi)賣(mài),但為什么還有這么多的軟件企業(yè)對測試自動(dòng)化情有獨鐘呢?排除一些盲目跟風(fēng),試圖提高測試技術(shù)含金量的情感因素,至少有以下幾個(gè)理性的現實(shí)驅動(dòng)力。
1. 測試自動(dòng)化主要是做長(cháng)線(xiàn)投資,而非一時(shí)之計
顯而易見(jiàn)地,開(kāi)發(fā)一個(gè)程序,只為了運行一次自動(dòng)化測試是非常不劃算的。那么要想能收回開(kāi)發(fā)自動(dòng)化測試的投資,就要盡可能多地運行測試程序,每多運行一次,就會(huì )多節省一份手工測試工作量。這個(gè)簡(jiǎn)單的道理可以說(shuō)明為什么如今測試自動(dòng)化應用最多的就是回歸測試階段。由于回歸測試往往是驗證軟件bug的fix或者軟件補丁的有效性,理論上,每一次bug的修復,都需要進(jìn)行一次全面回歸測試。如下圖所示。

這樣在軟件測試流程里,回歸測試包括在測試分支(Test Branch)上進(jìn)行的bug驗證測試,還有在發(fā)布分支(Release Branch)上進(jìn)行的補丁更新測試(在實(shí)際的企業(yè)實(shí)踐中,發(fā)布分支的更新遠遠比圖中頻繁),這樣回歸測試的重復性就非常高,而且持續時(shí)間長(cháng),直到軟件在市場(chǎng)上的退出才結束。這對于手工測試人員來(lái)說(shuō),可以說(shuō)是一個(gè)對耐心和毅力的巨大考驗,再美好有趣的事情如果天天重復去做,而不做任何變化,最終也會(huì )成為枯燥乏味的代名詞。所以手工測試人員是有愿望通過(guò)自動(dòng)化測試來(lái)改變現狀的。這就為回歸測試自動(dòng)化的實(shí)施同時(shí)提供了主觀(guān)的動(dòng)機和客觀(guān)需求。
【案例】:
一些有經(jīng)驗的軟件測試團隊通常會(huì )采用一些激勵或游戲規則來(lái)增加回歸測試的趣味性,我曾看過(guò)一個(gè)TOP500的軟件企業(yè)里的測試部門(mén),每隔一段時(shí)間就會(huì )由高層發(fā)起一個(gè)“蟲(chóng)子打獵”(Bug hunting)的活動(dòng),通常在一個(gè)不太繁忙的周五午后,通知郵件一發(fā)出,全體部門(mén)立即行動(dòng),不論職務(wù)高低,不分經(jīng)理,工程師,紛紛赤膊上陣。為了找到獵物,每人都各顯神通,盡可能地設計一些平時(shí)想不到的測試場(chǎng)景去尋找軟件里的bug,但有一個(gè)前提條件,就是他不能測試自己本來(lái)負責的系統模塊,必須去測試別人的而且他不熟悉的的模塊。比如小張是負責測Email的,那他在這次活動(dòng)中,偏偏就要去測試Messenger;測試messenger的小李這次又要去測試calendar,這完全是一個(gè)網(wǎng)狀交叉的測試。打獵活動(dòng)結束后,高層還要召開(kāi)“慶功會(huì )”,評定出“最好的bug”,“最有創(chuàng )意的bug”等等稱(chēng)號,雖然沒(méi)有獎金,但是每個(gè)獲得榮譽(yù)的人都會(huì )倍感自豪。而且,對于團隊來(lái)說(shuō),打獵活動(dòng)收到成效也是顯著(zhù)的,是一舉三得的好事情。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/