自動化測試:真是銀彈?[1] 自動化測試工具
測試自動化可能是每一名測試工程師的終極夢想,也有可能是終極噩夢。
在我們夢想的中的測試自動化是這樣的:只要啟動測試程序就會自動輸出測試結果,報告哪里有錯誤和錯誤的原因。
自動化測試的定義
首先,我們來談談什么是自動化測試,它的實現方法是用機器代替人的手工操作,完成一系列的測試過程。從原理上看測試自動化也是一個標準的操作流程。
測試自動化實際上是在模擬人的手工操作,在現階段手工測試在很多公司是一種藝術行為,同樣一個模塊不同的測試員會發現不同的問題,這與測試員的直接能力成正比,同時還與測試員的心情有直接關系,這實際上是一種無序的操作行為,這種現象的最大問題是隨著人員的變動產品質量也在進行相就應的波動。
用一個比較形象的比喻,每次我們對產品實施測試就好象是織一張網,然后用網去捕蟲,但是我們每次織網的方法都不一樣,網也就會不一樣,有時密有時疏,這就導致了有時我們會抓到好多的蟲,有時又抓不到蟲。如果我們每次織的網是一樣的,那么抓到蟲的數量也是基本不變,同時我們對網進行不斷的改進,將疏的地方加密,這樣就能抓到更多的蟲。
測試自動化是代替人的手工操作,自動的發現產品中的問題,這就好比自動織網自動捕蟲,我們所要做只是不斷的補網,但如果沒有標準操作,我們就不能補網,不知道要在哪里進行修補。這會出現兩種情況:網抓不到蟲,這樣這張網就沒有任何意義;每次都要做一張新網,可以捕到蟲了,但成本太高。
讓測試自動化真正發揮出強大的威力,就要對這張進行不斷的修補。如果我們每次的操作都是相同的,再通過對結果的驗證和補充,不斷的完善,這樣才能將發揮自動化的強大的力量。
通常,軟件測試的工作量很大(據統計,測試會占用到40%的開發時間;一些可靠性要求非常高的軟件,測試時間甚至占到開發時間的60%)。而測試中的許多操作是重復性的、非智力性的和非創造性的,并要求做準確細致的工作,計算機就最適合于代替人工去完成這樣的任務。
計算機大師布魯克斯曾在1986的一篇題為《沒有銀彈》的文章中列舉了人們對于軟件工程技術發展的一些期望,并與現實進行了對比。他的論點歸納如下:沒有一種單純的技術或管理上的進步,能夠獨立地承諾在10年內大幅度地提高軟件的生*產率、可靠性和簡潔性
布魯克斯鼓勵我們將技術和方法視作一種演進手段,而并非革命。將自動化技術引入測試工作時,我傾向于支持相同的觀點。
在與自動化測試產品和解決方案的客戶打交道的過程中,其間碰到了許多“銀彈”思維方式。它們總以類似這樣的設想出現:
1、所有的測試都能夠實現自動化。
2、既然自動化測試能如此顯著地提高生產率,我們就能以更少的人員完成所有的測試。
3、自動化測試如此簡單,我們無需任何培訓。
4、自動化方法將縮減整體測試工作量。
5、我們無需制訂任何測試方案。
6、有了自動化測試,測試人員不就成了“過時的”或“多余的”的人。
文章來源于領測軟件測試網 http://www.kjueaiud.com/