軟件測試套件維護 軟件測試工具
可能我們大多數人都不理解的是,一套自動化測試工具實際上就是一個軟件系統,它本身也面臨與它所測試的系統一樣的問題。它很容易發生錯誤,尤其對變化非常敏感。所以,無論什么時候,當使用自動化測試腳本測試客戶機一服務器系統時,實際上都是在處理兩個需要維護的系統。這就使維護問題增加了一倍。
我曾與一個VB程序員一起工作,他以前曾經為一個客戶機一服務器系統梅建并維護過一套自動化測試用例。他面臨的問題是性能永遠不會不變,為了趕上所有的變化,他需要不斷更新測試腳本。當然.他從投有趕上過。因此他發誓他再也不做測試了!f
Steve Fuchs,微軟Te吼的負責人(微軟Test現在是Ratbl】al S0ft啪re公司的軟件開發和測試產品知識庫中的一個組件)認為主要測試工具的宏記錄器功能導致了許多維護問題.因為測試人員可能會假設幾件事情[1]:
1)軟件產品在其生命周期中會發生改變。
2)如果這個產品成功了,那就會在其他語言中被復制。
3)產品的下一個版本將有更好的用戶界面。
4)測試一個產品的后續版本將花費更少時間。
他不同意一部分測試人員關于產品改變將導致腳本中包括無效事件的假設。他認為隔離并重新記錄腳本中的那些部分內容的工作量是相當大的。他甚至更進一步認為,腳本將包含非常少的有關事件的上下文信息,這使得維護更加困難,而且腳本將包括許多硬編碼的函數調用,對于這些調用來說,即使是很小的用戶界面改變也需要廣泛地對腳本進行更新。對于這一點他做了個總結,即使是簡單的改變也能影響50%~90%的測試用例[2]。
Fuchs的論點是有效的,因為新的系統發布確實影響了自動化測試套件毒當系統新版本中任何竹夼系統級(界面級、數據級或功能級)發生了改變時,被記錄的測試程序最可能需要更新?梢赃@么考慮這件事:當我們改變一個軟件模塊時,我們必須詢問這種改變影響了其他哪些模塊,那么現在當我們改變卞個軟件模塊時.我們同樣必須詢問這樣的改變將會影響哪些測試腳本。自動化濺試套件在自身系統上增加了新的約束。JamesBach(在LISENEq、新聞組,d)mp.s。ftw眥.t哦m喀)說:“從腳本構建的自動化系統非常復雜,難于維護。越復雜的系統就越可能失敗!盵1]這也就是說測試用例本身就容易產生錯誤。那么我們該做什么呢——編寫測試腳本來測試測試腳本嗎?
另一個問題是軟件和/或硬件平臺改變所造成的影響。Bach再一次說到:“這個平臺的任何改變都會引起測試自動化的大范圍失敗,除非這個改變被明確預見到”。在進行DOS升級和向悄avdl網轉變時,Bach經歷過一些阻礙測試自動化方面的問題。為了使自動化測試能夠工作,他不得不在其中加人一些與平臺相關的額外處理。他發覡就是極微小的配置差異也會使自動化測試套件失敗。
抱著對自動化測試工具的銷售商公平些舳態度說來,我們必須承認他們白孽產品從產生起已經有了很大的進步。導致早期測試套件失敗的許多條件現在能夠被捕獲到并寫入日志,而測試可以繼續進行。所以說,測試套件比先前更健壯了。 、一條重要的建議是使用大量的注釋,在復雜測試程序腳本的開始插人一條注釋頭。還有就是使用類似cyrai'K)的產品為測試套件存檔。
文章來源于領測軟件測試網 http://www.kjueaiud.com/