聊聊自動化測試有效性

發表于:2015-03-26來源:uml.org.cn作者:不詳點擊數: 標簽:自動化測試
自動化測試能否幫助我們我們提升開發效率,關鍵在于其有效性。如果其有效性可能存在問題,那么可能是什么導致了這種問題的產生呢?對自動化測試產生作用的方式存在誤解,對自動

  自動化測試能否幫助我們我們提升開發效率,關鍵在于其有效性。如果其有效性可能存在問題,那么可能是什么導致了這種問題的產生呢?對自動化測試產生作用的方式存在誤解,對自動化測試能夠產生作用所要求的條件存在誤解,自動化測試分析設計的隨意性,自動化測試開發維護的低標準,對自動化測試資產的低準出條件……本文將就自動化測試有效性簡單闡述我自己的一點見解,拋磚引玉。

  觀念之一:獨木難生于漠,密植方育甘霖

  沙漠中間栽下一棵樹,枯死只是遲早之事;即便有足夠的資源讓它能夠永久地生存下去,而它除了給路過的攝影師的構圖上增添一分綠色氣息,便再也沒有其它存在的意義了。如果要想它能夠長久而有生命力地活下去,并期望它能夠改善生態,那就需要將其根植在一片密林之中。自動化測試,尤其是前端自動化測試,如若離開其他層次的自動化測試和技術手段與之相互配合,便會如同這棵沙漠中間的樹一樣,不久便滅。

  五一節后的周五下午和兩個開發經理一起review一個項目的性能測試需求,休息閑聊時順道提到了其中一位開發經理所負責的公網系統CI連續飄紅的問題。他坦言自己對自動化測試是不信任的,認為自動化發現不了任何問題,從而對CI帶來的幫助表示懷疑,因此不愿意在CI上投入過多的精力。我理解這位經理的感慨,認同他對自動化測試有效性的擔憂,但是這并不能使我認同他對CI和自動化測試的態度。而對于軟件開發來說,沒有自動化測試、沒有CI,我們可能無法期待更高效率的開發和更好的質量保證。但他這是因為沒有耐心地植下一片樹林,才導致他心目中自動化測試這棵大樹的死亡,進而卻又否認這片樹林存在的意義,這是不妥的。

  觀念之二:降低期望于心,提升目標于行

  為什么有很多人對自動化測試的可信任程度表示懷疑呢?這源于一句看似真理的廢話:自動化不是用來發現缺陷的,而是為了驗證系統改動是否造成關聯影響并用以增加質量信心的。這話本意無非就是想告訴大家:不要對自動化測試的結果抱太高期望,對機器智能和人腦的差距要認清。這個本意本無可厚非,但是這句話現在卻逐漸成了自動化測試低質量的借口了。

  首先,很多人認為自動化測試無法發現缺陷是因為測試腳本無法代替人類的自主思考,無法靈活變通。而我們之所以期望在測試執行時能夠靈活變通,是因為測試分析設計時對被測應用設計細節的不確定性。非探索式的腳本化測試設計就是要通過輸入精確的操作和數據類型,從而得到精確的輸出來和預期結果進行對比,在這種模式下,沒什么問題是需要變通才能被發現的。

  其次,不得不說自動化測試分析設計的難點在于對輸入條件分支和狀態機組合的窮舉和選擇上,這需要很大的成本。不幸的是,通常在做自動化測試分析設計時,我們習慣于用經驗和主觀感覺去做,不全面和主次不分的情況常常出現。因而,自動化測試分析和設計的不嚴謹、不完整也是自動化測試不能被信任的原因之一。

  此外,自動化在那些已覆蓋的測試上面表現的也不盡如人意,筆者觀察到,大多數人并不是用自動化測試腳本去做測試或質量守護工作,而只是用來讓他們運行通過,以獲得KPI的達成和成就感。自動化測試運行失敗,不習慣于或不樂于使用它的同事就會很輕易忽略潛在的問題,所以漏測和封版延期是常有的事。

  最后打個比方,自動化測試就像是看門的狗,沒有它,家里進賊未必發現不了,關鍵是發現的時候是否還來得及挽回損失,而狗狗能不能在有賊光顧的時候示警,取決于我們如何馴養它。我們期望家里進賊的時候狗狗能夠示警,但并不會期望它能夠幫我們直接把小賊擒住;而且并非每次狗狗示警都意味著有賊入室,也有可能是閣下經過而已。自動化測試與此類似,凡其所致,但有一點不一致便會得到失敗的結果,而至于是不是發現了蟲子卻又是另外一碼事,想用自動化幫你解決所有問題,那你還是洗洗睡吧。

  總之,我們對自動化測試有什么樣的期望,就應該有什么樣的目標和要求;設定了什么層次的測試目標,就應該有什么樣的使用效果。如果告訴你自動化測試可以朝著任意品種的狗狗去培養,目標就是看家護院,你非要以哈士奇食量大喂不起為由非要選小泰迪,那能有什么辦法呢?如果自動化測試分析設計不嚴謹,而已覆蓋的腳本也沒有嚴格編寫,而或腳本嚴格編寫卻并未善加利用,那么自動化測試自然就是一個徹底的謊言了。

原文轉自:http://www.uml.org.cn/Test/201307094.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97