自動化測試的現狀究竟如何呢?其實就目前來說,自動還測試還遠遠不能達到完全不需要測試工程師干預的程度。我們都知道,軟件測試可以被劃分成軟件測試需求、軟件測試計劃、軟件測試設計、軟件測試執行和軟件測試評估總結這幾個階段,自動化測試僅僅能夠在軟件測試設計、執行和評估總結的階段發揮有限的作用,因此,我們通常把測試自動化理解為“測試的部分過程的部分自動化”
那么,測試自動化究竟是什么呢?要回答這個問題,我們先看看“測試自動化不是什么”。
測試自動化不是錄制回放——更準確的說,測試自動化不僅僅是錄制回放;通過錄制回放方式的確可以進行一些簡單的自動化測試工作,但這種純粹的錄制回放存在相當多的問題——首先是對結果的驗證方式,純粹的錄制回放缺乏對結果的驗證支持;其次,如果有多組不同的數據需要進行測試,純粹的錄制回放也很難應付。
測試自動化不僅僅是測試工具的應用——一說起測試自動化,很多人頭腦中立刻反映出來的就是測試工具,當然,測試自動化一定需要工具的支持,但測試自動化不僅僅是測試工具的堆積,就好像在原始社會,有了汽車,那也不能就說明進入了現代社會,測試自動化是一個系統的工程。
測試自動化不是自發的沖動——在有些組織中,測試自動化是一些測試工程師自發的行為,甚至這些組織還會認為,只要這些工程師足夠聰明,他們就能逐漸鼓搗出一個適合公司的自動化測試體系來,這種認識顯然是不對的。
測試自動化不是發現問題的最佳手段——很容易理解,由于測試自動化是建立在手工測試的基礎上的,因此測試自動化最合適的是用在驗證性質的回歸測試階段,而不能指望它去發現最多的錯誤。
因此,我們可以明顯地看到,測試自動化具有明顯的約束。那么,測試自動化具有這么多的約束,那么它到底能做什么呢?接下來我們就看看“真實的測試自動化及發展趨勢“。
自動化測試真正可以做的事情包括:“減少測試階段的執行工作量”——但必須說明的是,自動化測試在減少測試階段的執行工作量的同時,又增加了測試設計和開發的工作量。自動化測試可以減少執行過程中的人為出錯的可能性;能夠在某些人工無法達到的測試——例如性能測試——中發揮作用,以及輔助進行測試管理。
要在組織內實現測試的自動化,就需要建立自動化測試體系。自動化測試體系是我們經常能夠聽到的一個概念,那么,它究竟是什么呢?簡單的說,自動化測試體系是指適用某種環境的測試工具、過程、人員結構和方法的集合。特別要強調的是,自動化測試體系既不單指某種工具,也不僅僅指某種測試技術,它是工具、過程、人員和方法的組合。
過程是測試自動化的核心,沒有過程,我們的自動化測試就沒有了“骨架”,過程中關注了測試自動化中的全部因素:工具、資源和方法,過程是將這些因素合理組織起來的橋梁。
自動化測試工具是自動化測試的重要組成部分,但光有工具是沒有辦法建立起組織的自動化測試體系的。很多工具廠商往往會宣稱“我的工具就是一個完整的自動化測試體系”,但其實,這種體系僅僅是指一個工具體系,而不是馬上能夠為企業帶來效益的體系,任何工具都必須在過程的指導下才能發揮其作用。
另一方面,要在組織內引入自動化測試,適應于自動化測試的組織結構是不可或缺的。有些組織對自動化測試的認識有誤解,以為要在企業做測試自動化,就必須將全部的測試工程師都變成自動化測試工程師。其實,自動化測試工程師的技能要求更接近開發工程師,需要有較強的設計、編碼能力,而對一個組織來說,除了自動化測試工程師,還需要測試業務和設計人員、手工測試人員。一個建議的比例是各占1/3。
要在一個組織內建立自動化測試的體系是一件很有挑戰性的工作,我經歷過一些組織的自動化測試嘗試過程,有些成功了,有些失敗了。這些成功和失敗的經歷也給我了不少的經驗和教訓,我希望通過我的經驗為大家指出企業自動化測試嘗試過程中的有效方法和陷阱。
文章來源于領測軟件測試網 http://www.kjueaiud.com/