簡介
Frederick P. Brooks, Jr. 曾在1986年寫過一篇題為《沒有銀彈:軟件工程的根本和次要問題》的文章(No Silver Bullet - Essence and Accidents of Software Engineering)。這篇文章列舉了人們對于軟件工程技術發展的一些期望,并與現實進行了對比。他的論點歸納如下:
沒有一種單純的技術或管理上的進步,能夠獨立地承諾在10年內大幅度地提高軟件的生產率、可靠性和簡潔性
Brooks鼓勵我們將技術和方法視作一種演進手段,而并非革命。將自動化技術引入測試工作時,我傾向于支持相同的觀點。
我與自動化測試產品和解決方案的潛在客戶打交道已有5年時間,其間碰到了許多"銀彈"思維方式。它們總以類似這樣的設想出現:
1、所有的測試都能夠實現自動化!
2、既然自動化測試能如此顯著地提高生產率,我們就能以更少的人員完成所有的測試(精減人員)。
3、自動化測試如此簡單,我們無需任何培訓。
4、自動化方法將縮減整體測試工作量。
5、我們無需制訂任何測試方案。
6、有了自動化測試,測試人員不就成了"過時的"或"多余的"了嗎?
7、那種耗時的測試設計工作不再必要了。
盡管我不愿打破人們美好的幻想,但總覺得有責任幫助他們理解,實施自動化測試和得到夢寐以求的神兵利器之間的區別。通常這意味著解釋自動化測試的真正含意,和自動化測試工具
自動化測試不是銀彈嗎?
正是此意。自動化測試,或者說自動化測試策略及工具的實現,只是測試人員工具箱里的一件利器。注意我強調它是一個工具,位于工具箱中。我有意避免將自動化測試和試員人員等同起來,本來它也無法取代測試人員的地位。盡管如此,自動化測試仍然毫無疑問地具有強大功能,它能在測試效率和徹底性方面使我們獲益匪淺。關鍵在于確定發揮其功效的最佳時機及方式。我們提出另一個問題來具體闡述一下。
有足夠的時間測試每件事情嗎?
我想人們會異口同聲地回答 "沒有!"?傆懈嗟臇|西可以測試,或者在另一個平臺上或以其他配置再試一次。但是隨著最終期限和產品交付日期的日益迫近,分配給每個測試周期的時間縮短了。那么,軟件開發項目經理和測試團隊如何處理這種情況呢?通常,他們削減軟件發布前每一個測試周期的測試量。您經歷過這種情形嗎?理想情況下需要做一些基于風險的分析,以便決定排隊哪些風險。然而更常見的情況是,測試團隊只是將整個測試周期的注意力集中到驗證已修復的缺陷上。更有甚者,連這樣的縮減之后的測試計劃也沒有足夠時間來完成。
多少產品是在完整測試之后交付的?這種情況我所知不多。開發團隊往往根據其他因素做出是否交付軟件的決定:
1、時間到了嗎?
2、預算超了嗎?
3、資源用盡了嗎?
4、還有比薩和啤酒嗎?
不幸的是,由于測試工作被任意刪減,開發團隊無法完全清楚地知道產品的總體質量,他們面臨所交付的軟件帶有嚴重問題的風險。借助于自動化測試的力量我們能夠擺脫這種困境嗎?我們接著探討一下。
自動化測試如何幫助我們?
在計劃實施自動化測試之前,您需要理解自動化測試的定義。換句話說,它對您意味著什么?這里有一些我聽到的其他人對自動化測試的描述:
1、完全無人干預的測試。
2、測試腳本。
3、測試工具。
4、不清楚。
文章來源于領測軟件測試網 http://www.kjueaiud.com/