軟件測試自動化測試的技術實踐 軟件測試
很高興今天有機會和大家討論一下軟件測試自動化的實踐,今天的話題分為兩個部分:一是軟件自動化功能測試;還有一部分會介紹一下軟件自動化性能測試。實踐主要包含兩個部分:一部分是介紹HP在軟件的功能和性能自動化測試的理念,以及產品和技術在這方面的支持。另一部分是一些實踐案例,包括在國內外哪些用戶使用我們的測試工具,他們是如何去做的。
首先是自動化功能測試,我們討論一下他的適用范圍,或使用時機是何時。對于一個新的項目,比如項目周期很緊的功能測試項目,如果臨時分配30個人,按測試方案進行手工測試的效率可能要比自動化測試工具錄制腳本在測試的效率好的多。那么自動化測試工具的價值在什么地方?
我們可以看一下,很多客戶如果想增加一些新的功能,或者是修復bug,經常會推出產品新的版本,在推出的過程中,我們也知道,除了測試修改過的模塊外,每次都要重復測試有關聯的模塊,這樣很多時候會做大量的重復工作,人員很疲憊也達不到測試效果,自動化功能測試工具就可以創建整個測試生命周期的可重用模塊,同時還能覆蓋大部分的系統測試,更主要的是錄制好腳本以后,自動去執行,機器去操作,減少了人為主觀的錯誤,同時使測試人員解脫出來,專注新的模塊。自動化測試最大的價值在于回歸測試。在產品提交過來之后要執行“冒煙測試”,自動化測試工具能夠節省時間和金錢。圖中是國際上某金融機構的統計,在過去三年內使用使用自動化測試工具的投資回報率達到 1500%。下面我們看一下自動化測試的原理是什么。
自動化測試發展到現在,很多廠商走的技術路線都是類似的,一是通過錄制生成腳本,業務人員或測試人員按正常的業務執行流程,同時自動化工具錄制并生成腳本,要注意的是,它錄制的不是鼠標和鍵盤的操作,而是對象的操作,如某個button被click了一下,或某個文本框輸入了數據,這樣的好處是當button位置發生了變化,腳本會根據對象的屬性精確定位到對象,然后進行腳本回放,可以不需要反復修改,來執行自動化測試。當錄制好腳本后,可能要執行測試數據的參數化。
錄制的可能是一套數據,如錄制登錄操作,可能錄制的是正確的用戶名和密碼,但實際執行測試的時候可能需要很多的組合,比如正確的用戶名、錯誤的密碼,空用戶名、空密碼等等,這時候你需要對輸入的數據進行參數化。那么需要這種參數表對參數進行定義。接下來第三點是自動化測試以功能測試是否正確作為結果來判斷的,它需要定義正確的檢查點,就是說我能夠通過對象的屬性或界面的文字去判斷我的功能執行是不是正確的。還有一個比較重要的,也是很多朋友容易忽略的,就是最后的測試報告。測試運行完以后,我需要根據我的檢查點去判斷我的運行結果怎樣,有的產品的報告可能是文字型的,但實際上對于很多測試需要圖形化的報告,可以看到我的檢查點是什么,執行的時候是什么情況,為什么會出現錯誤?;谝陨线@些,我們可以看到當使用軟件測試自動化工具的時候需要考慮什么問題:
1.工具要有對對象很好的識別和維護的能力,支持各種傳統和新的技術,象今天上午的調研報告里反映的,很多朋友也都關心自動化測試工具是否支持一些新的技術,另外,還需要統一的對象庫,腳本可以基于對象庫統一管理對象,當對象庫的某一對象發生變化時,如中文版的button上是“確定”,英文版可能就是“ok”,可以更改對象庫中對象的屬性,就不需要打開每個腳本進行修改,還有一個比較重要的是對象庫的圖形化操作,可能會有些對象庫的合并、分拆等等。
2.就是腳本要易于修改和維護,不僅僅是腳本的語言,更主要的是要提供腳本圖形化的編輯。雖然測試人員很多是從開發人員轉換過來的,但測試人員不等于開發人員,那么工具的使用是要易于理解和掌握,像有的用戶甚至是業務人員和開發人員一起錄制腳本,這時候工具對于業務人員要易于理解和掌握,要能夠知道工具是如何用的。還有就是離線編輯,不用起應用也能夠進行腳本編輯。
3.測試數據的驅動,數據表要易于編輯和維護,數據參數化操作。
4.檢查點,支持多種檢查點,如對象、文本、位圖。
5.結果報告,剛才我們也提到,結果報告的圖形化也是很有必要的,而且要易于瀏覽。下面我們看看惠普提供的相關功能測試套件,上午的調研報告中我很高興的看到,對自動化測試工具在企業中應用的調查結果,WinRunner是排在第一位的,但實際上HP同時還有另外一個自動化測試工具產品,就是Quit Test Professional,即QTP。目前,HP是把WinRunner和QTP作為整體的功能測試套件提供。WinRunner比較關注傳統的應用,如早期的Delphi、PowerBuilder;QTP關注新興技術,如.NET、新的WebService、無線、VMWare桌面支持的測試,QTP 都可以支持。同時這兩個產品又有通用的覆蓋面,包括像Web、VB、Activex等等,但我們向用戶推薦QTP,因為它具有靈活、易用、簡單的特性。它不僅提供腳本語言的編輯,同時還提供關鍵字視圖界面。在界面中它對每一個對象進行梳理、提取,同時下面又提供數據表和實時的捕捉,這樣用戶可以很方便的編輯。同時也可以把對象選擇進來,離線編輯腳本。另外還提供ActiveScreen技術,可以界面快照,然后對快照添加驗證點、測試步驟,甚至離線編輯。
下面是我們在長期的工作過程中總結的自動化功能測試的原則:
就是選擇合適的被測應用;
就是要選擇合適的案例;
設計自動化功能測試框架;
自動化測試實際上是這種規模效應,覆蓋率達到一定規模,他的效果才能體現出來,同時也是要不斷積累和完善的。
1.選擇合適的被測應用:
原文轉自:http://www.anti-gravitydesign.com