聽完這些,原本困惑的我又多了份驚訝,一方面驚嘆產(chǎn)述的這些狀況與我之前的自動化測試的試行失敗是相近的。另一方面又猜疑這自動化測試該不會像共產(chǎn)主義社會那般吧!隨著培訓(xùn)內(nèi)容的展開,我終于解開了困惑,何為理性的看待自動化測試。

  “如同不能指望原始社會擁有了汽車能進入現(xiàn)代社會一樣,自動化測試工具永遠都不能主導(dǎo)測試實現(xiàn)自動化”(出自國信培訓(xùn)文檔)。我們錯誤的把自動化測試看成了一種測試工具或測試手段。自動化測試是一種理念,它要發(fā)揮它真正的作用需要這種理念轉(zhuǎn)變?yōu)橐环N體系??自動化測試體系。

  “引入自動化測試的前提是已經(jīng)建立了合適的自動化測試體系,如果沒有這些,而片面的追求自動化,無異于緣木求魚。自動化測試體系是指能夠適用某種環(huán)境的測試工具、過程、人員結(jié)構(gòu)、方法的綜合,運用于整個項目團隊” ;氐轿抑暗膶TP研究失敗的原因,首先我開始覺得因為研發(fā)的設(shè)計、編碼實現(xiàn)并沒有考慮到自動化,而導(dǎo)致自動化腳本的編寫非常吃力。比如產(chǎn)品頁面項目的命名不規(guī)范,導(dǎo)致自動化測試工具很難捕捉這些頁面對像。其次是測試腳本的方向迷失,我在研究QTP的時候發(fā)現(xiàn)了這個問題。隨著我一點點的在編寫著腳本,我不斷的發(fā)現(xiàn)自己在的測試腳本的編寫方向上出現(xiàn)了迷失。這段腳本我編寫的目標本來是功能測試,但隨著我的補充卻接近于開發(fā)級的單元測試。而另一段本屬于功能性測試的腳本,因為功能的重點需要,我又補充了部分腳本導(dǎo)致整個測試腳本測試目標變成了完整關(guān)聯(lián)性測試。而做為單元測試的腳本卻并沒有在開發(fā)的角度上來設(shè)計,根本做不到函數(shù)、類等代碼級的測試,根本不能達到要求。做為完整性測試的腳本也無法模擬接口功能中幾何倍數(shù)級的各種條件輸入對應(yīng)的輸出測試。而功能測試腳本算是碩果僅存,但隨著開發(fā)對產(chǎn)品的代碼大規(guī)模調(diào)整(這些調(diào)整當(dāng)然不會考慮對已經(jīng)實現(xiàn)的腳本的影響)而直接“報廢”。如果需要腳本繼續(xù)工作,那么要花時間來修改調(diào)整它。這些腳本的結(jié)局又再一次可想而知了。

  所以首先我們要理性的看待自動化測試,不要片面的去追求它。對不同的項目要開展不同自動化策略。參考如下

 。1) 評審項目中特定的部分作為應(yīng)用自動化的候選對像。

  (2) 從項目中高度冗余的任務(wù)或場景重點考慮自動化。

  (3) 將乏味且人工容易出錯的工作重點考慮自動化。

 。4) 將回歸測試經(jīng)常需要“照顧”到的部分重點考慮自動化。

 。5) 自動化開始時要首先關(guān)注開發(fā)成熟、理解透徹、相對穩(wěn)定的且不易變的部分優(yōu)先考慮自動化

  其次,自動化所實現(xiàn)的大價值目標是可不間斷的、可重復(fù)的自動執(zhí)行對需求、設(shè)計、代碼全面覆蓋的大量測試用例從而預(yù)防bug的產(chǎn)生的一套質(zhì)量保障機制。所以自動化測試的重點在于測試自動化作為一個體系,要運用于整個項目團隊。項目組要討論它(策略、時間、成本等)、研發(fā)需要參與它(編碼方向、自動化支撐、以及代碼單元測試自動化的計劃和執(zhí)行等)、測試要引導(dǎo)及推進它(策略、方法、執(zhí)行、跟進、維護等),各團隊共同形成體系,才能讓自動化測試工具真正的成為一種質(zhì)量保證的有力武器。