這個小例子讓您換個角度看待自動化了嗎?現在,定義自動化對于您和您的團隊意味著什么是至關重要的。然后您就可以使用該定義開始構建一套自動化準則,從而團隊中的每個人都可以使用相同的方法、快速評詁一項任務是否適合應用自動化。
創建自動化測試準則
此處列舉了您定義自動化和制訂準則時可以考慮的一些策略和事項:
確定自動化測試的"用武之地"
將所有工作中的特定部分作為應用自動化的候選對象。
從高度冗余的任務或場景開始考慮。
將乏味且人工容易出錯的工作進行自動化。
首先關注開發成熟、理解透徹的用例或場景。
優先選擇應用中相對穩定的部分,而非易變的部分。
通過使用數據驅動的測試技術來提高自動化功效(增加測試覆蓋的深度和廣度)。
指派幾位專家負責自動化,不要讓測試團隊的每個人都做這項工作。
牢記不要追求100%的自動化,手工測試仍然至關重要。
計劃進行更多的測試
將重復的測試自動化,為其他方法的測試贏得更多時間。
增加試探性測試。
增加配置測試。
構建更多的自動化測試。
進行更多的人工測試,特別是在高風險特性方面。
謹慎規劃:將人工測試和自動測試分工,不能全盤自動化。
每一次設計都要設計所有的測試和文檔。如果某項自動化測試無法運行,確保它能夠手工完成。
將自動化視為一種投資
訓練使用者充分利用自動化工具。
構建一個可重用代碼庫。
保持測試模塊化,大小控制在一定范圍內,這樣易于維護。
文檔化測試腳本(代碼),以備校驗和重用。
強化備份過程。
利用源代碼控制。
認識到自動化是一項軟件開發工作,通常需要代碼生成。
逐步實施自動化測試
不要嘗試一天內實現所有測試的自動化。積累經驗,循序漸進。
從整個測試計劃的一小部分開始,逐步添加至自動化測試集合。(即以實際的、受控的方式遞增)
自動化還能為我做什么?
盡管自動化測試需要在前期的策劃和培訓上進行一筆不菲的投資,但確實能從幾個大的方面帶來增益。它能為您帶來如下利益:
更高質量的軟件-因為您能夠花費更少的時間和資源進行更多的測試。
更完備的測試覆蓋的潛力。
更多的時間投入到其他測試活動中,包括:
詳細計劃。
精心地設計測試。
構建更復雜的測試(數據驅動,增加用于條件分支和特殊報告的代碼等)
更多的人工測試,不是更少!
自動化測試還為您提供無形價值,它能給測試人員帶來:
獲取新技能的機會(即建立技能和學習技能的機會)。
在測試中了解更多關于系統的知識的機會,因為自動化能揭示系統內部狀況,如對象屬性和數據。(對系統的更多理解造就更好的測試人員)
現在您已知道什么是自動化測試以及它能勝任哪些工作,我希望您能運用這些知識為您的產品進行更多更好的測試。盡管自動化測試不是銀彈,但它仍不失為一件優秀工具;如果能夠將其應用于適合的工作,將為您帶來巨大收益。
參考資料
您可以參閱本文在 developerWorks 全球站點上的 英文原文。
關于本文部分主題的更多信息,請參閱Cem Kaner的網站上的下列文章。網址:http://www.kaner.com/articles.html
1. "Architectures of Test Automation"
2. "Improving the Maintainability of Automated Test Suites"
3. "Avoiding Shelfware: A Manager's View of Automated GUI Testing"
致謝
感謝Cem Kaner提供參考鏈接中文章。 同樣感謝IBM Rational的Ted Squire,和Satisfice, Inc.的James Bach仔細評閱本文,并在寫作中給予幫助。關于Satisfice及其廣受贊譽的測試講座的更多信息,請訪問www.satisfice.com。
原文轉自:http://www.uml.org.cn/Test/200502013.htm |