n年前某大型通訊裝置公司的測試部門發起一場轟轟烈烈的測試轉型運動,驅動轉型的動力非常簡單:人手太緊了,要釋放人力,當時該部門有
95%以上的測試精力都投入系統測試上,導致其它測試,比如組網測試、協議測試一致性測試、效能測試,還有白盒測試根本顧不上。部門經理賈
xx決心很大,先部門總動員,歷經艱難,後來終於從各產品測試組抽調
20多位骨幹來研發自動測試工具。
半年過去,終於有一兩個自動工具的初始版本做出來了,選測試組進行試驗,為讓自動測試跑起來,測試組額外多投了
20%的精力飼候這個脆弱系統,後來工具研發人員幾經努力,又用了半年時間,自動系統終於能穩定的跑起來了。大家舒了一口氣,都指著這個系統能幫他們節約出幾個人來,結果,兩個版本測試週期過去了,人力沒節省,反倒多搭進
50%的人力寫測試指令碼,維護測試指令碼。部門經理賈
xx並不因此灰心,他認為這是測試自動化推行初期必然要經歷的。
這次,他們調整策略,只從所有產品中選擇
1/3容易做自動化的測試組,給每個測試組指定乙個測試自動化率指標,拿這個指標考核測試經理。如此又堅持了一年半,最後統計發現,這
1/3測試組中又只有
1/3是出效果,自動化測試有助於減少測試工作量,而見到顯著效果的,卻只是個別產品。
問題到底出在哪兒呢?
業務自動化測試是個香孛孛,看起來很誘人,嘗一口苦澀得很。並不是所有產品都適合推行自動化測試,尤其是具有如下特點的產品。
1.一次性產品
這類產品生命週期不長,客戶需求比較確定,做出產品測穩定後,就很少公升級,不會乙個接乙個的公升級版本。
此類產品不宜做自動化的主要原因是,首次自動化的成本遠高過投入,實現自動化後重用性差,自動測試是不大可能在前一兩輪測試就產生效益的。
2.介面原型或業務模式尚不穩定的產品
當產品業務的模型還不成熟,經常會變,或者子系統之間介面不穩定,經常變來變去。這樣的系統不大適合做自動化。
3.涉及過過物理裝置互動
測試自動化的基礎是裝置**,如果被測產品與眾多物理裝置打交道,而又缺乏恰當的軟體**或硬體工具**(缺少測試儀表或模擬器)時,自動化測試是難以為繼的。
4.專案週期很短的專案
自動化測試是一項長期投入,專案周期短往往只看到為自動化做投入,而等不到它產生效益。
5.在使用者介面操作表現複雜業務的產品
業務複雜意味著針對介面操作實現自動測試的代價很高,業務越複雜涉及的介面元素就越多,業務越複雜也意味它越容易變化,這對於自動測試,實現一次測試的自動化尚不輕鬆,更別說長期維護它了。
解決此類產品的業務自動測試,只一條途徑:優化產品結構,進行抽象分層,讓複雜的業務邏輯集中某幾個規格化的介面(比如命令列介面、
mml介面,資料驅動或**驅動介面)來處理。
6.涉及過多介面美觀,影象質量、音訊質量等可用性與易用性的產品
針對可用性與易用性測試,業界沒有太多手段將它自動化起來,而且,測試結果通不通過,大家都是見仁見智。給一幅影象,甲說它是色情,乙可能就說它沒問題。
現在我們回頭看看文章開頭提到的案例,問題到底出在哪個地方?
首先,測試自動化的第乙個理解誤區:期望自動化測試完全替代手工測試。過高追求系統測試自動化率是不現實的,也是徒勞無益的。全部門全員上馬搞自動化,顯然勞民傷財,如前面所提,有不少產品實際上根本不適合做自動化,或者說,能夠實現自動測試,但得不償失,沒必要去實施。而且,即便面對同一易於做自動化的產品,也不該一刀切,不必追求所有測試項都自動化起來。
其次,測試自動化第二個誤區:期望自動化測試發現大量新的缺陷。這個誤區大概每個初次嘗試自動測試的專案組都會犯。根據我們的經驗,測試自動化的主要價值不是指望它發現更多問題,而是指望它解決重複測試問題,版本修改後用它來確保已測試通過的專案不再有問題。實際操作中,最能發現問題常常是在首次將手工測試轉為自動測試的時候,這時的測試通常是半自動的,或者換一句話說,實施自動測試的專案組,在除錯自動用例時最容易發現問題。
其次,測試自動化第三個誤區:不關注前期測試設計,而單純指望引入商用工具就能做好自動測試。自動測試是需要事先規劃的,如果產品設計不恰當,必然導致後期自動測試難以進行,尤其是產品分布式架構、抽象邏輯分層等。如果沒有事先規劃,等版本出來後就很難去調整了。
最後,自動化測試還有乙個最大誤區:以為自動測試是後期的工作,前期單元測試、整合測試做不做,做得深不深入與之無關。對於大部分沒有經歷過從前期拉通測到後期的人來說,進入這個誤區是必然的。預設對前期測試工作的重用與繼承,實施自動化測試會覺得很不自然,
一種典型的自然重用形式如下圖:
實際上,眾多推行自動測試的專案組不見效果,或付出很大代價才推動一點點,都可以從這一點上找出原因,典型原因比如:前期單元或整合測試的成果沒重用,埠難以**,測試資料構造困難,等等。
自動化測試的誤區
1 自動測試是一種比人工測試更先進,更高階的測試手段 自動化測試既有自身的有點,也有侷限性。例如對於需求不明確,或者介面經常發生變動的產品就不適合使用自動化測試。自動化測試與手工測試的關係應該是相輔相成的,互相彌補各自的侷限性,相互促進 2 所有的手工測試都應該被100 的自動化 一味片面的追求自動...
測試自動化 自動化測試的定義
相關術語 automated testing test tool,automated testing test suite,automated testing test script等.具體參見 http en.wikipedia.org wiki test automation 推薦書籍 1 軟體...
自動化測試 web自動化測試
自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...