摘 要:軟件的界面測試是一項復雜而煩瑣的工作,本文對程序界面的手工測試與自動測試兩種方法進行比較,重點討論了自動測試的收益回收期問題。
關鍵詞:程序界面測試 捕捉/回放工具
the Break even of GUI Automation Test
BEIJING HORIZON INFORMATION & TECHNOLOGY CO.,LTD.
Ding Yuweidyw@horizon-biz.com
Abstract: since GUI testing is an complicated and annoying work, here we compared automation and manual test , talk about the break even of automation test.
key words:GUI Testing GUI CR-tools(capture & replay tools)
引言
對于一個軟件產品的評估,從用戶角度來講,程序的界面部分是相當受關注的,這里包括程序界面的交互能力、穩定性、健壯性等,同時今天的軟件產品越來越復雜,通常一套軟件包括會大量的用戶界面,每個界面里又有很多的控制對象,以及各種信息的交互。對于這樣一套軟件,即便測試只覆蓋到部分界面,工作量也是相當大的。由此人們想到利用工具來進行自動化測試,本文希望通過對自動測試與手工測試的比較,指導人們進行測試方法的選擇。
CR-tools介紹
程序界面測試(GUI testing)主要包括兩項內容:界面顯示測試和界面功能測試,這里重點講解功能測試(black box functional testing)。界面功能的自動測試可以用捕捉/回放工具來完成,(GUI CR-tools :capture & replay tools ),但是在實際應用過程中,常常因為CR-tools固有的缺隙而大大削弱了它的效力,從而引起人們對自動化測試工具可用性的憂慮。如:
CR-tools對GUI對象的識別能力嚴重依賴于被測軟件所使用的編程語言,這一因素大大增加了測試腳本的維護工作量。例如如果CR-tools可以識別C++語言開發環境、OO方法定義的對象(如buttons、menu等),通常在界面布局調整時,它仍然可以識別出新界面上的所有元素,但是很可能它不能夠識別Oracle應用程序,如用OCX開發的程序界面中的對象,這時我們不得不向供應商尋找相應的支持選件。
CR-tools通過對程序運行過程的錄制產生的測試腳本,通常只能做為設計測試用例的初始原型,必須經過大量的修改和對腳本編程的工作,才能重復利用,如增加檢查點(check point)、進行參數化等。因此,GUI自動測試的設計也是一項復雜的編程與開發工作。
當然以上問題我們也可以通過采取一些措施盡可能避免,如通過建立測試用例庫,實現用例的重用、腳本功能的擴展、腳本語言的規范化、以及減少維護工作量等。所以,雖然自動化測試工具還存在很多問題,但它最大的好處是可以通過用例的重用,來大大減少重復的測試設計工作量,這也是至今人們還堅持不懈研究自動化測試技術的原因。
手工測試與自動化測試的比較
下面我們對手工測試與自動測試的成本開銷進行比較,找出影響自動化測試效率的重要因素:自動測試的重復運行次數。
首先我們把軟件開發過程定義為六個階段:定義、分析、設計、實現、測試、發布,其中的測試階段又可以細分為:測試設計、測試執行、測試分析、問題解決。.
表1是相關實驗顯示的比較結果: