1、研究主要內容
(1)自動化測試
(2)TestComplete 介紹
(3)Winrunner 介紹
(4)兩款軟件的對比
2、自動化測試
由于很多的軟件測試工作包括大量的近似重復的工作,會給測試工程師帶來很大的工作量,這樣我們就需要用自動化測試的軟件來實現測試的自動化,來減少測試人員的工作量,從而提高效率。
因為軟件測試的工作量很大( 40% 到60% 的總開發時間),而又有很大部分適于自動化,因此,測試的改進會對整個開發工作的質量、成本和周期帶來非常顯著的效果。
自動化測試的有點有很多: 快速 (Fast) 、可靠 (Reliable) 、可重復 (Repeatable) 、可程序化 (Programmable) 、 可重用的 (Reusable); 廣泛的 (Comprehensive) ;它的這些有點使得自動化測試在軟件測試中的地位不斷提高,而且也是發展的趨勢。
自動化測試的步驟大概是:
- 測試個案( test case ,或稱為測試用例)的生成;
- 測試的執行寫控制;
- 測試結果與標準輸出的對比;
- 不吻合的測試結果的分析、分類、記錄和通報;
- 總測試狀況的統計,報表的產生
- 自動測試與開發中產品每日構建( build )的配合。
3、TestComplete 介紹
現在的大多數比較著名的自動化測試軟件的原理都是大致相同的,它們都是通過對被測軟件的操作過程的錄制和回放來完成測試的。
本文現在介紹的 TestComplete 是近年來異軍突起的新興的軟件;它曾 在 2003 年 Delphi Informant 雜志讀者選擇獎 中獲得最佳測試與 QA 工具優勢明顯。其產品 TestComplete 獲得 60% 的選票;在第 14 屆 Jolt 大獎評選中獲得測試工具的 Jolt 大獎。我在實習中也是比較多的接觸到這款軟件
與它的名字相同, TestComplete 是一個完整的測試應用系統,它集成了如下的功能 :
- 功能測試
- 單元測試
- 分布式測試
- HTTP performance testing
- 回歸測試
就是指重復一個已經成功執行的測試用例,并把新執行得到的結果與原來的 正確的結果相比較;貧w測試很容易理解但是如果沒有自動化的測試工具來保證大多數的細節,那么實現起來將是十分困難的。因為工作量很大,而且人工操作很容易忽略細節。而 TestComplete 就為我們提供了自動化回歸測試的能力。接下來我想介紹一下這款軟件的特點:
- 獲取和保存被測對象的屬性:
TestComplete可以獲取被測軟件的對象屬性并可以將其屬性值記錄下來和下一次運行時的相應屬性值作比較。
需要注意的問題是:我們的 Java程序必須要編譯成Open Application否則TestComplete無法自動認出其中的大部分對象。
腳本代碼如下:
Compares property values
if (! Objects.Compare(w, CollectionName))
Log.Message("Properties have been changed.")
- 抓取軟件運行時的圖片
可以用 TestComplete獲取被測軟件運行是的圖片(包括全屏和子窗口)來和已知圖片進行比較,并可一圖片形式保存下本次運行的結果。
比較圖片的代碼:
if ( ! Regions.Compare(w, Classju,false,false,true,1700))
比較當前的運行程序的圖片,是否與之前保存為 CLassju 的圖片一致。類聚圖
Log.Error("Regions are not identical")
else Log.Message("Regions of Classju is identical")
保存圖片的代碼:
w=Sys.Activewindow();
Str = Utilities.DateTimeToStr(Utilities.Now())
s = Utilities.StringReplace(Str,":","'",1)
Regions.SaveToFile(w, title+""s".bmp")
- 比較文件
在測試時,我們有可能會用到比較兩個文件的功能來保證被測試的軟件的輸出與預期值相同。這個功能將會對兩個文件逐字節的比較
比較文件的代碼如下 :
if (! Files.Compare("C:\\Work\\OrdersList.txt","C:
Work
OrdersList_old.txt")
Log.Warning("List of orders was changed");
- 支持多種語言和開發環境
TestComplete支持所用 Visual Basic, Visual C+, Delphi, C+Builder, Java, Visual Studio .NET, and Visual FoxPro 開發的應用程序和模塊。這所有的自動測試軟件中時絕無僅有的。
- 支持多種腳本語言
我們不必為了使用 TestComplete 而去學習其他的腳本語言,而是用我們熟悉的腳本語言即可。因為 TestComplete 支持以下的所有腳本語言: VBScript , DelphiScript , JScript , C++Script or C#Script 。
- 事件處理( Event handling )
TestComplete 可以在腳本運行的時候跟蹤系統所發生的事件,并根據測試人員預先編好的事件處理程序對相應的事件進行處理。例如,對系統中的一些意外的窗體的彈出,我們可以編寫相應的程序對其進行處理,以避免測試的意外中斷。
4、Winrunner 介紹
Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用于檢測應用程序是否能夠達到預期的功能及正常運行。通過自動錄制、檢測和回放用戶的應用操作,WinRunner能夠有效地幫助測試人員對復雜的企業級應用的不同發布版進行測試,提高測試人員的工作效率和質量,確?缙脚_的、復雜的企業級應用無故障發布及長期穩定運行。
Winrunner 7.6 的特點主要有如下幾個方面:
用 WinRuuner創建一個測試,只需點擊鼠標和鍵盤,完成一個標準的業務操作流程,WinRunner自動記錄你的操作并生成所需的腳本代碼。這樣,即使計算機技術知識有限的業務用戶輕松創建完整的測試。你還可以直接修改測試腳本以滿足各種復雜測試的需求。
但是 WinRuuner對Java的支持不是很好,無法識別出絕大部分的對象
已經在網上看到 Java 的插件,但是由于 License 的問題,無法使用。
用 WinRuuner創建一個測試,只需點擊鼠標和鍵盤,完成一個標準的業務操作流程,WinRunner自動記錄你的操作并生成所需的腳本代碼。這樣,即使計算機技術知識有限的業務用戶輕松創建完整的測試。你還可以直接修改測試腳本以滿足各種復雜測試的需求。WinRunner提供這兩種測試創建方式,滿足測試團隊中業務用戶和專業技術人員的不同需求。
插入檢查點
在記錄一個測試的過程中,可以插入檢查點,檢查在某個時刻\狀態下,應用程序是否運行正常。在插入檢查點后,WinRunner會收集一套數據指標,在測試運行時對其一一驗證。WinRunner提供幾種不同類型的檢查點,包括文本的、GUI、位圖和數據庫。例如,用一個位圖檢查點,你可以檢查公司的圖標是否出現于指定位置。
檢驗數據
除了創建并運行測試,WinRunner還能驗證數據庫的數值,從而確保業務交易的準確性。例如,在創建測試時,可以設定哪些數據庫表和記錄需要檢測;在測試運行時,測試程序就會自動核對數據庫內的實際數值和預期的數值。WinRunner自動顯示檢測結果,在有更新\刪除\插入的記錄上突出顯示以引起注意。
增強測試
為了徹底全面地測試一個應用程序,需要使用不同類型的數據來測試。WinRunner的數據驅動向導( Data Driver Wizard)可以讓你簡單地點擊幾下鼠標,就可以把一個業務流程測試轉化為數據驅動測試,從而反映多個用戶各自獨特且真實的行為。
以一個訂單輸入的流程為例,你可能希望把訂單號或客戶名稱作為可變欄,用多套數據進行測試。使用Data Driver Wizard,你可以選擇訂單號或客戶名稱用數據表格文件中的哪個欄目的數據替換。你可以把訂單號或客戶名稱輸入數據表格文件,或從其它表格和數據庫中導入。數據驅動測試不僅節省了時間和資源,又提高了應用的測試覆蓋率。
WinRunner還可以通過Function Generator增加測試的功能。使用Function Generator可以從目錄列表中選擇一個功能增加到你的測試中以提高測試能力。例如,你可以選擇"calendar",然后從日歷功能的下屬目錄中選擇,如Calendar_select_date(),然后你可以直觀地輸入參數,把這個功能插入到你的測試中。
針對相當數量的企業應用里非標準對象,WinRunner提供了Virtual Object Wizard來識別以前未知的對象。使用Virtual Object Wizard,你可以選擇未知對象的類型,設定標識和命名。在錄制使用該對象的測試時,WinRunner會自動對應它的名字,從而提高測試腳本的可讀性和測試質量。
運行測試
創建好測試腳本,并插入檢查點和必要的添加功能后,你就可以開始運行測試。運行測試時,WinRunner會自動操作應用程序,就象一個真實的用戶根據業務流程執行著每一步的操作。測試運行過程中,如有網絡消息窗口出現或其它意外事件出現,WinRunner也會根據預先的設定排除這些干擾。
分析結果
測試運行結束后,你需要分析測試結果。WinRunner通過交互式的報告工具來提供詳盡的、易讀的報告。報告中會列出測試中發現的錯誤內容、位置、檢查點和其它重要事件,幫助你對測試結果進行分析。這些測試結果還可以通過Mercury Interactive的測試管理工具TestDirector來查閱。
維護測試
隨著時間的推移,開發人員會對應用程序做進一步的修改,并需要增加另外的測試。使用WinRunner,你不必對程序的每一次改動都重新創建你的測試。WinRunner可以創建在整個應用程序生命周期內都可以重復使用的測試,從而大大地節省時間和資源,充分利用你的測試投資。
每次記錄測試時,WinRunner會自動創建一個GUI Map文件以保存應用對象。這些對象分層次組織,既可以總覽所有的對象,也可以查詢某個對象的詳細信息。一般而言,對應用程序的任何改動都會影響到成百上千個測試。通過修改一個GUI Map文件而非無數個測試,WinRunner可以方便地實現測試重用。
幫助你的應用程序為無線應用作準備
隨著無線設備種類和數量的增加,你的應用程序測試計劃需要同時滿足傳統的基于瀏覽器的用戶和無線瀏覽設備,如移動電話、傳呼機和個人數字助理(PDA)。無線應用協議是一種公開的、全球性的網絡協議,用來支持標準數據格式化和無線設備信號的傳輸。使用WinRunner,測試人員可以利用微型瀏覽模擬器來記錄業務流程操作,然后回放和檢查這些業務流程功能的正確性。
5、兩款軟件的對比
特性 | WinRunner | TestComplete |
易于安裝 | 是 | 是 |
GUI對象和腳本分離 | 是 | 是 |
toolbar/field定制 | 可以 | 可以 |
支持測試對象 | HTML,DHTML,Javascript,VBscript,XML,JAVA applets, ActiveX,VB, PowerBuilder,Delphi,Terminal Emulator,,Oracle,SAP,PeopleSoft, Siebel | Visual Basic, Visual C++, Delphi, C++ Builder, Java, VisualStudio .NET, and Visual FoxPro |
腳本語言 | TSL | VBscript, Delphi script, Jscript, C++ script or C#script |
允許通過數據庫驗證數據 | 通過ODBC及本地數據庫連接 | 文件比較 |
應用程序改變后的腳本維護 | 直接修改GUImap | 更改腳本 |
數據庫支持 | 市場流行的數據庫 | 市場流行的數據庫 |
無人看管下的自動執行測試 | 通過Testdirector | 允許 |
分布式測試控制/同步/執行 | Testdirector支持 | 支持 |
自動創建測試結果日志 | 是 | 是 |
非預期錯誤的恢復 | 允許 | 允許 |
與測試管理工具接口 | Testdirector | 自帶Case管理功能。 |
價格 | 昂貴 | $399 |
Add-in收費 | 部分收費 | 不收費 |
總論 | 在全球的市場占有率較高,功能全面,價格昂貴 | 在國內的推廣還處于起步階段,相關資料和經驗很少。 |
文章來源于領測軟件測試網 http://www.kjueaiud.com/