常用軟件測試工具

常用軟件測試工具

常用軟件測試工具

隨著軟件測試的地位逐步提高,測試的重要性逐步顯現,測試工具的應用已經成為了普遍的趨勢。目前用於測試的工具已經比較多了,這些測試工具一般可分為白盒測試工具、黑盒測試工具、性能測試工具,另外還有用於測試管理(測試流程管理、缺陷跟蹤管理、測試用例管理)的工具。

總的來說,測試工具的應用可以提高測試的質量、測試的效率。但是在選擇和使用測試工具的時候,我們也應該看到,在測試過程中,並不是所有的測試工具都適合我們使用,同時,有了測試工具、會使用測試工具並不等於測試工具真正能在測試中發揮作用。

一、JTEST

1、簡介:

jtest是parasoft公司推出的一款針對java語言的自動化白盒測試工具,它通過自動實現java的單元測試和代碼標準校驗,來提高代碼的可靠性。Jtest先分析每個java類,然後自動生成junit測試用例並執行用例,從而實現代碼的最大覆蓋,並將代碼運行時未處理的異常暴露出來;另外,它還可以檢查以DbC(Design by Contract)規範開發的代碼的正確性。用戶還可以通過擴展測試用例的自動生成器來添加更多的junit用例。Jtest還能按照現有的超過350個編碼標準來檢查並自動糾正大多數常見的編碼規則上的偏差,用戶可自定義這些標準,通過簡單的幾個點擊,就能預防類似於未處理異常、函數錯誤、內存洩漏、性能問題、安全隱患這樣的代碼問題。

2、優勢:

1)使預防代碼錯誤成為可能,從而大大節約成本,提高軟件質量和開發效率

2)使單元測試——包括白盒、黑盒以及迴歸測試成為可能

3)使代碼規範檢查和自動糾正成為可能

4)鼓勵開發團隊橫向協作來預防代碼錯誤

3、特徵:

1)通過簡單的點擊,自動實現代碼基本錯誤的預防,這包括單元測試和代碼規範的檢查

2)生成並執行junit單元測試用例,對代碼進行即時檢查

3)提供了進行黑盒測試、模型測試和系統測試的快速途徑

4)確認並阻止代碼中不可捕獲的異常、函數錯誤、內存洩漏、性能問題、安全弱點的問題

5)監視測試的覆蓋範圍

6)自動執行迴歸測試

7)支持DbC編碼規範

8)檢驗超過350個來自java專家的開發規範

9)自動糾正違反超過160個編碼規範的錯誤

10)允許用戶通過圖形方式或自動創建方式來自定義編碼規範

11)支持大型團隊開發中測試設置和測試文件的共享

12)實現和IBM Websphere Studio /Eclipse IDE 的安全集成

二、JMETER

1、簡介:

JMeter是Apache組織的開放源代碼項目,它是功能和性能測試的工具,100%的用java實現。使用JMeter進行性能測試

2、特徵:

JMeter可以用於測試靜態或者動態資源的性能(文件、Servlets、Perl腳本、java對象、數據庫和查詢、ftp服務器或者其他的資源)。JMeter用於模擬在服務器、網絡或者其他對象上附加高負載以測試他們提供服務的受壓能力,或者分析他們提供的服務在不同負載條件下的總性能情況。你可以用JMeter提供的圖形化界面分析性能指標或者在高負載情況下測試服務器/腳本/對象的行為。

三、JUNIT

1、簡介:

JUnit是一個開源的java測試框架,它是Xuint測試體系架構的一種實現。在JUnit單元測試框架的設計時,設定了三個總體目標,第一個是簡化測試的編寫,這種簡化包括測試框架的學習和實際測試單元的編寫;第二個是使測試單元保持持久性;第三個則是可以利用既有的測試來編寫相關的測試。

2、優勢:

2.1)junit是完全Free的。

2.2)使用方便。在你提升程序代碼的品質時JUnit測試仍允許你更快速的撰寫程序 那聽起來似乎不是很直覺,但那是事實。當你使用JUnit撰寫測試,你將花更少的時間除蟲,同時對你程序代碼的改變更 俱有信心。這個信心讓你更積極重整程序代碼並增加新的功能。沒有測試,對於重整及增加新功能你會變得沒有信心;因為你不知道有甚麼東西會破壞產出的結果。採用一個綜合的測試系列,你可以在改變程序代碼之後快速的執行多個測試並對於你的變動並未破壞任何東西感到有信心。在執行測試時如果發現臭蟲,原始碼仍然清楚的在你腦中,因此很容易找到臭蟲。在JUnit中撰寫的測試幫助你以一種極 大(extreme)的步伐撰寫程序及快速的找出缺點。

2.3)JUnit非常簡單撰寫測試應該很簡單--這是重點!如果撰寫測試太複雜或太耗時間,便無法要求程序設計師撰寫測試。使用JUnit你可以快速的撰寫測試並檢測你的程序代碼並逐 步隨著程序代碼的成長增加測試。只要你寫了一些測試,你想要快速並頻繁的執行測試而不至於中斷建立設計及開發程序。使用JUnit執行測試就像編譯你的程序代碼那麼容易。事實上,你應該執行編譯時也執行測試。編譯是檢測程序代碼的語法而測試是檢查程序代碼的完整性(integrity)。

2.4)JUnit測試檢驗其結果並提供立即的回饋。 如果你是以人工比對測試的期望與實際結果那麼測試是很不好玩的,而且讓你的速度慢下來。JUnit測試可以自動執行並且檢查他們自己的結果。當你執行測試,你獲得簡單且立即的回饋; 比如測試是通過或失敗。而不再需要人工檢查測試結果的報告。

2.5)JUnit測試可以合成一個測試系列的層級架構。 JUnit可以把測試組織成測試系列;這個測試系列可以包含其它的測試或測試系列。JUnit測試的合成行為允許你組合多個測試並自動的迴歸(regression)從頭到尾測試整個測試系列。你也可以執行測試系列層級架構中任何一層的測試。

2.6)撰寫JUnit測試所費不多。 使用Junit測試框架,你可以很便宜的撰寫測試並享受由測試框架所提供的信心。撰寫一個測試就像寫一個方法一樣簡單;測試是檢驗要測試的程序代碼並定義期望的結果。這個測試框架提供自動執行測試的背景;這個背景併成為其它測試集合的一部份。在測試少量的投資將持續讓你從時間及品質中獲得回收。

2.7)JUnit測試提升軟件的穩定性。 你寫的測試愈少;你的程序代碼變的愈不穩定。測試使得軟件穩定並逐步累積信心;因為任何變動不會造成漣漪效應而漫及整個軟件。測試可以形成軟件的完整結構的膠結。

2.8)JUnit測試是開發者測試。 JUnit測試是高度區域性(localized)測試;用以改善開發者的生產力及程序代碼品質。不像功能測試(function test)視系統為一個黑箱以確認軟件整體的工作性為主,單元測試是由內而外測試系統基礎的建構區塊。開發者撰寫並擁有JUnit測試。每當一個開發反覆(iteration)完成,這個測試便包裹成為交付軟件的一部份提供一種溝通的方式,「這是我交付的軟件並且是通過測試

2.9)JUnit測試是以Java寫成的。 使用Java測試Java軟件形成一個介於測試及程序代碼間的無縫(seamless)邊界。在測試的控制下測試變成整個軟件的擴充同時程序代碼可以被重整。Java編譯器的單元測試靜態語法檢查可已幫助測試程序並且確認遵守軟件接口的約定。

一段測試的程序代碼無法單獨的執行,它需要是執行環境的一部份。同時,它需要自動執行的單元測試--譬如在系統中週期性的執行所有的測試以證明沒有任何東西被破壞。由於單元測試需要符合特定的準則:一個成功的測試不應該是人工檢查的(那可要到天荒地老了啊),一個未通過測試的失敗應可以產出文件以供診斷修改。而Junit可以提供給我們這些便利.。這樣所有測試開發者所需撰寫的只是測試碼本身了。跟optimizeit、Jtest那些昂貴而又超級麻煩的tool比較起來,其利昭然可見!

四、WEBLODE

1、簡介:

webload是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試;webload通過模擬真實用戶的操作,生成壓力負載來測試web的性能。

2、特徵:

1)用戶創建的是基於javascript的測試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執行該腳本來衡量web應用程序在真實環境下的性能

2)如有需要可以在做負載測試的同時,使用服務器監控工具對服務器端的內容進行記錄那樣使負載測試更加全面。

五、WINRUNNER

1、簡介

WinRunner:強大的企業級自動化測試工具

Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。通過自動錄製、檢測和回放用戶的應用操作,WinRunner能夠有效地幫助測試人員對複雜的企業級應用的不同發佈版進行測試,提高測試人員的工作效率和質量,確保跨平臺的、複雜的企業級應用無故障發佈及長期穩定運行。

企業級應用可能包括Web應用系統,ERP系統,CRM系統等等。這些系統在發佈之前,升級之後都要經過測試,確保所有功能都能正常運行,沒有任何錯誤。如何有效地測試不斷升級更新且不同環境的應用系統,是每個公司都會面臨的問題。

如果時間或資源有限,這個問題會更加棘手。人工測試的工作量太大,還要額外的時間來培訓新的測試人員等等。為了確保那些複雜的企業級應用在不同環境下都能正常可靠地運行,你需要一個能簡單操作的測試工具來自動完成應用程序的功能性測試。

2、特徵:

1)輕鬆創建測試

用WinRuuner創建一個測試,只需點擊鼠標和鍵盤,完成一個標準的業務操作流程,WinRunner自動記錄你的操作並生成所需的腳本代碼。這樣,即使計算機技術知識有限的業務用戶輕鬆創建完整的測試。你還可以直接修改測試腳本以滿足各種複雜測試的需求。WinRunner提供這兩種測試創建方式,滿足測試團隊中業務用戶和專業技術人員的不同需求。

2)插入檢查點

在記錄一個測試的過程中,可以插入檢查點,檢查在某個時刻/狀態下,應用程序是否運行正常。在插入檢查點後,WinRunner會收集一套數據指標,在測試運行時對其一一驗證。WinRunner提供幾種不同類型的檢查點,包括文本的、GUI、位圖和數據庫。例如,用一個位圖檢查點,你可以檢查公司的圖標是否出現於指定位置。

3)檢驗數據

除了創建並運行測試,WinRunner還能驗證數據庫的數值,從而確保業務交易的準確性。例如,在創建測試時,可以設定哪些數據庫表和記錄需要檢測;在測試運行時,測試程序就會自動核對數據庫內的實際數值和預期的數值。WinRunner自動顯示檢測結果,在有更新/刪除/插入的記錄上突出顯示以引起注意。

4)增強測試

為了徹底全面地測試一個應用程序,需要使用不同類型的數據來測試。WinRunner的數據驅動向導( Data Driver Wizard)可以讓你簡單地點擊幾下鼠標,就可以把一個業務流程測試轉化為數據驅動測試,從而反映多個用戶各自獨特且真實的行為。

以一個訂單輸入的流程為例,你可能希望把訂單號或客戶名稱作為可變欄,用多套數據進行測試。使用Data Driver Wizard,你可以選擇訂單號或客戶名稱用數據表格文件中的哪個欄目的數據替換。你可以把訂單號或客戶名稱輸入數據表格文件,或從其它表格和數據庫中導入。數據驅動測試不僅節省了時間和資源,又提高了應用的測試覆蓋率。

WinRunner還可以通過Function Generator增加測試的功能。使用Function Generator可以從目錄列表中選擇一個功能增加到你的測試中以提高測試能力。例如,你可以選擇”calendar”,然後從日曆功能的下屬目錄中選擇,如Calendar_select_date(),然後你可以直觀地輸入參數,把這個功能插入到你的測試中。

針對相當數量的企業應用裡非標準對象,WinRunner提供了Virtual Object Wizard來識別以前未知的對象。使用Virtual Object Wizard,你可以選擇未知對象的類型,設定標識和命名。在錄製使用該對象的測試時,WinRunner會自動對應它的名字,從而提高測試腳本的可讀性和測試質量。

5)運行測試

創建好測試腳本,並插入檢查點和必要的添加功能後,你就可以開始運行測試。運行測試時,WinRunner會自動操作應用程序,就象一個真實的用戶根據業務流程執行著每一步的操作。測試運行過程中,如有網絡消息窗口出現或其它意外事件出現,WinRunner也會根據預先的設定排除這些干擾。

6)分析結果

測試運行結束後,你需要分析測試結果。WinRunner通過交互式的報告工具來提供詳盡的、易讀的報告。報告中會列出測試中發現的錯誤內容、位置、檢查點和其它重要事件,幫助你對測試結果進行分析。這些測試結果還可以通過Mercury Interactive的測試管理工具TestDirector來查閱。

7)維護測試

隨著時間的推移,開發人員會對應用程序做進一步的修改,並需要增加另外的測試。使用WinRunner,你不必對程序的每一次改動都重新創建你的測試。WinRunner可以創建在整個應用程序生命週期內都可以重複使用的測試,從而大大地節省時間和資源,充分利用你的測試投資。

每次記錄測試時,WinRunner會自動創建一個GUI Map文件以保存應用對象。這些對象分層次組織,既可以總覽所有的對象,也可以查詢某個對象的詳細信息。一般而言,對應用程序的任何改動都會影響到成百上千個測試。通過修改一個GUI Map文件而非無數個測試,WinRunner可以方便地實現測試重用。

8)幫助你的應用程序為無線應用作準備

隨著無線設備種類和數量的增加,你的應用程序測試計劃需要同時滿足傳統的基於瀏覽器的用戶和無線瀏覽設備,如移動電話、傳呼機和個人數字助理(PDA)。

無線應用協議是一種公開的、全球性的網絡協議,用來支持標準數據格式化和無線設備信號的傳輸。

使用WinRunner,測試人員可以利用微型瀏覽模擬器來記錄業務流程操作,然後回放和檢查這些業務流程功能的正確性。

六、LOADRUNNER

1、簡介:

LoadRunner 是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施併發負載及實時性能監測的方式來確認和查找問題,LoadRunner 能夠對整個企業架構進行測試。通過使用LoadRunner ,企業能最大限度地縮短測試時間,優化性能和加速應用系統的發佈週期。

目前企業的網絡應用環境都必須支持大量用戶,網絡體系架構中含各類應用環境且由不同供應商提供軟件和硬件產品。難以預知的用戶負載和愈來愈複雜的應用環境使公司時時擔心會發生用戶響應速度過慢,系統崩潰等問題。這些都不可避免地導致公司收益的損失。Mercury Interactive 的 LoadRunner 能讓企業保護自己的收入來源,無需購置額外硬件而最大限度地利用現有的IT 資源,並確保終端用戶在應用系統的各個環節中對其測試應用的質量,可靠性和可擴展性都有良好的評價。

LoadRunner 是一種適用於各種體系架構的自動負載測試工具,它能預測系統行為並優化系統性能。LoadRunner 的測試對象是整個企業的系統,它通過模擬實際用戶的操作行為和實行實時性能監測,來幫助您更快的查找和發現問題。此外,LoadRunner 能支持廣範的協議和技術,為您的特殊環境提供特殊的解決方案。

2、特徵:

1)輕鬆創建虛擬用戶

使用LoadRunner 的Virtual User Generator,您能很簡便地創立起系統負載。該引擎能夠生成虛擬用戶,以虛擬用戶的方式模擬真實用戶的業務操作行為。它先記錄下業務流程(如下訂單或機票預定),然後將其轉化為測試腳本。利用虛擬用戶,您可以在Windows ,UNIX 或Linux 機器上同時產生成千上萬個用戶訪問。所以LoadRunner能極大的減少負載測試所需的硬件和人力資源。另外,LoadRunner 的TurboLoad 專利技術能。

提供很高的適應性。TurboLoad 使您可以產生每天幾十萬名在線用戶和數以百萬計的點擊數的負載。

用Virtual User Generator 建立測試腳本後,您可以對其進行參數化操作,這一操作能讓您利用幾套不同的實際發生數據來測試您的應用程序,從而反映出本系統的負載能力。以一個訂單輸入過程為例,參數化操作可將記錄中的固定數據,如訂單號和客戶名稱,由可變值來代替。在這些變量內隨意輸入可能的訂單號和客戶名,來匹配多個實際用戶的操作行為。

LoadRunner 通過它的Data Wizard 來自動實現其測試數據的參數化。Data Wizard 直接連於數據庫服務器,從中您可以獲取所需的數據(如定單號和用戶名)並直接將其輸入到測試腳本。這樣避免了人工處理數據的需要,Data Wizard 為您節省了大量的時間。

為了進一步確定您的Virtual user 能夠模擬真實用戶,您可利用LoadRunner 控制某些行為特性。例如,只需要點擊一下鼠標,您就能輕易控制交易的數量,交易頻率,用戶的思考時間和連接速度等。

2)創建真實的負載

Virtual users 建立起後,您需要設定您的負載方案,業務流程組合和虛擬用戶數量。用LoadRunner 的Controller,您能很快組織起多用戶的測試方案。Controller 的Rendezvous 功能提供一個互動的環境,在其中您既能建立起持續且循環的負載,又能管理和驅動負載測試方案。

而且,您可以利用它的日程計劃服務來定義用戶在什麼時候訪問系統以產生負載。這樣,您就能將測試過程自動化。同樣您還可以用Controller 來限定您的負載方案,在這個方案中所有的用戶同時執行一個動作---如登陸到一個庫存應用程序----來模擬峰值負載的情況。另外,您還能監測系統架構中各個組件的性能---- 包括服務器,數據庫,網絡設備等----來幫助客戶決定系統的配置。

LoadRunner 通過它的AutoLoad 技術,為您提供更多的測試靈活性。使用AutoLoad ,您可以根據目前的用戶人數事先設定測試目標,優化測試流程。例如,您的目標可以是確定您的應用系統承受的每秒點擊數或每秒的交易量。

3)定位性能問題

LoadRunner 內含集成的實時監測器,在負載測試過程的任何時候,您都可以觀察到應用系統的運行性能。這些性能監測器為您實時顯示交易性能數據(如響應時間)和其它系統組件包括application server, web server,網路設備和數據庫等的實時性能。這樣,您就可以在測試過程中從客戶和服務器的雙方面評估這些系統組件的運行性能,從而更快地發現問題。

再者,利用LoadRunner 的ContentCheck TM ,您可以判斷負載下的應用程序功能正常與否。ContentCheck 在Virtual users 運行時,檢測應用程序的網絡數據包內容,從中確定是否有錯誤內容傳送出去。它的實時瀏覽器幫助您從終端用戶角度觀察程序性能狀況。

4)分析結果以精確定位問題所在

一旦測試完畢後,LoadRunner 收集彙總所有的測試數據,併為您提供高級的分析和報告工具,以便迅速查找到性能問題並追溯原由。使用LoadRunner 的Web 交易細節監測器,您可以瞭解到將所有的圖象、框架和文本下載到每一網頁上所需的時間。例如,這個交易細節分析機制能夠分析是否因為一個大尺寸的圖形文件或是第三方的數據組件造成應用系統運行速度減慢。另外,Web 交易細節監測器分解用於客戶端、網絡和服務器上端到端的反應時間,便於確認問題,定位查找真正出錯的組件。例如,您可以將網絡延時進行分解,以判斷DNS 解析時間,連接服務器或SSL 認證所花費的時間。通過使用LoadRunner 的分析工具,您能很快地查找到出錯的位置和原因並作出相應的調整。

5)重複測試保證系統發佈的高性能

負載測試是一個重複過程。每次處理完一個出錯情況,您都需要對您的應用程序在相同的方案下,再進行一次負載測試。以此檢驗您所做的修正是否改善了運行性能。

6) Enterprise Java Beans的測試

LoadRunner 完全支持EJB 的負載測試。這些基於Java 的組件運行在應用服務器上,提供廣泛的應用服務。通過測試這些組件,您可以在應用程序開發的早期就確認並解決可能產生的問題。

利用LoadRunner, 您可以很方便地瞭解系統的性能。 它的Controller 允許您重複執行與出錯修改前相同的測試方案。它的基於HTML 的報告為您提供一個比較性能結果所需的基準,以此衡量在一段時間內,有多大程度的改進並確保應用成功。由於這些報告是基於HTML 的文本,您可以將其公佈於您公司的內部網上,便於隨時查閱。

7)最大化投資回報

所有Mercury Interactive 的產品和服務都是集成設計的, 能完全相容地一起運作。由於它們具有相同的核心技術,來自於LoadRunner和ActiveTest TM 的測試腳本,在Mercury Interactive 的負載測試服務項目中,可以被重複用於性能監測。藉助Mercury Interactive的監測功能--Topaz TM 和ActiveWatch TM ,測試腳本可重複使用從而平衡投資收益。更重要的是,您能為測試的前期佈署和生產系統的監測提供一個完整的應用性能管理解決方案。

8)支持無線應用協議

隨著無線設備數量和種類的增多,您的測試計劃需要同時滿足傳統的基於瀏覽器的用戶和無線互聯網設備,如手機和PDA。LoadRunner 支持2 項最廣泛使用的協議:WAP和I-mode。此外,通過負載測試系統整體架構,LoadRunner 能讓您只需要通過記錄一次腳本,就可完全檢測上述這些無線互聯網系統。

9)支持Media Stream應用

LoadRunner 還能支持Media Stream應用。為了保證終端用戶得到良好的操作體驗和高質量Media Stream,您需要檢測您的Media Stream應用程序。使用LoadRunner ,您可以記錄和重放任何流行的多媒體數據流格式來診斷系統的性能問題,查找原由,分析數據的質量。

10)完整的企業應用環境的支持

LoadRunner 支持廣泛的協議,可以測試各種IT 基礎架構。

七、WAS

1、簡介:Microsoft Web Application Stress Tool 是由微軟的網站測試人員所開發,專門用來進行實際網站壓力測試的一套工具。透過這套功能強大的壓力測試工具,您可以使用少量的Client端計算機仿真大量用戶上線對網站服務所可能造成的影響。

2、特徵:

1)可以數種不同的方式建立測試指令:包含以手動、錄製瀏覽器操作步驟、或直接錄入IIS的記錄文件、錄入網站的內容及錄入其它測試程序的指令等方式。

2)支持多種客戶端接口:標準的網站應用程序C++的客戶端,使用Active Server Page 客戶端,或是使用Web Application Stress對象模型建立您自定的接口。

3)支持多用戶:利用多種不同的認證方式仿真實際的情況,包含了DPA, NTLM 及 SSL等。


分享到:


相關文章: