隨著(zhù)軟件測試的地位逐步提高,測試的重要性逐步顯現,測試工具的應用已經(jīng)成為了普遍的趨勢。目前用于測試的工具已經(jīng)比較多了,這些測試工具一般可分為白盒測試工具、黑盒測試工具、性能測試工具,另外還有用于測試管理(測試流程管理、缺陷跟蹤管理、測試用例管理)的工具。
總的來(lái)說(shuō),測試工具的應用可以提高測試的質(zhì)量、測試的效率。但是在選擇和使用測試工具的時(shí)候,我們也應該看到,在測試過(guò)程中,并不是所有的測試工具都適合我們使用,同時(shí),有了測試工具、會(huì )使用測試工具并不等于測試工具真正能在測試中發(fā)揮作用。
一、JTEST
1、簡(jiǎn)介:
jtest是parasoft公司推出的一款針對java語(yǔ)言的自動(dòng)化白盒測試工具,它通過(guò)自動(dòng)實(shí)現java的單元測試和代碼標準校驗,來(lái)提高代碼的可靠性。Jtest先分析每個(gè)java類(lèi),然后自動(dòng)生成junit測試用例并執行用例,從而實(shí)現代碼的最大覆蓋,并將代碼運行時(shí)未處理的異常暴露出來(lái);另外,它還可以檢查以DbC(Design by Contract)規范開(kāi)發(fā)的代碼的正確性。用戶(hù)還可以通過(guò)擴展測試用例的自動(dòng)生成器來(lái)添加更多的junit用例。Jtest還能按照現有的超過(guò)350個(gè)編碼標準來(lái)檢查并自動(dòng)糾正大多數常見(jiàn)的編碼規則上的偏差,用戶(hù)可自定義這些標準,通過(guò)簡(jiǎn)單的幾個(gè)點(diǎn)擊,就能預防類(lèi)似于未處理異常、函數錯誤、內存泄漏、性能問(wèn)題、安全隱患這樣的代碼問(wèn)題。
2、優(yōu)勢:
1)使預防代碼錯誤成為可能,從而大大節約成本,提高軟件質(zhì)量和開(kāi)發(fā)效率
2)使單元測試——包括白盒、黑盒以及回歸測試成為可能
3)使代碼規范檢查和自動(dòng)糾正成為可能
4)鼓勵開(kāi)發(fā)團隊橫向協(xié)作來(lái)預防代碼錯誤
3、特征:
1)通過(guò)簡(jiǎn)單的點(diǎn)擊,自動(dòng)實(shí)現代碼基本錯誤的預防,這包括單元測試和代碼規范的檢查
2)生成并執行junit單元測試用例,對代碼進(jìn)行即時(shí)檢查
3)提供了進(jìn)行黑盒測試、模型測試和系統測試的快速途徑
4)確認并阻止代碼中不可捕獲的異常、函數錯誤、內存泄漏、性能問(wèn)題、安全弱點(diǎn)的問(wèn)題
5)監視測試的覆蓋范圍
6)自動(dòng)執行回歸測試
7)支持DbC編碼規范
8)檢驗超過(guò)350個(gè)來(lái)自java專(zhuān)家的開(kāi)發(fā)規范
9)自動(dòng)糾正違反超過(guò)160個(gè)編碼規范的錯誤
10)允許用戶(hù)通過(guò)圖形方式或自動(dòng)創(chuàng )建方式來(lái)自定義編碼規范
11)支持大型團隊開(kāi)發(fā)中測試設置和測試文件的共享
12)實(shí)現和IBM Websphere Studio /Eclipse IDE 的安全集成
4、價(jià)格:昂貴
二、JMETER
1、簡(jiǎn)介:
JMeter是Apache組織的開(kāi)放源代碼項目,它是功能和性能測試的工具,100%的用java實(shí)現。使用JMeter進(jìn)行性能測試
2、特征:
JMeter可以用于測試靜態(tài)或者動(dòng)態(tài)資源的性能(文件、Servlets、Perl腳本、java對象、數據庫和查詢(xún)、ftp服務(wù)器或者其他的資源)。JMeter用于模擬在服務(wù)器、網(wǎng)絡(luò )或者其他對象上附加高負載以測試他們提供服務(wù)的受壓能力,或者分析他們提供的服務(wù)在不同負載條件下的總性能情況。你可以用JMeter提供的圖形化界面分析性能指標或者在高負載情況下測試服務(wù)器/腳本/對象的行為。
三、JUNIT
1、簡(jiǎn)介:
JUnit是一個(gè)開(kāi)源的java測試框架,它是Xuint測試體系架構的一種實(shí)現。在JUnit單元測試框架的設計時(shí),設定了三個(gè)總體目標,第一個(gè)是簡(jiǎn)化測試的編寫(xiě),這種簡(jiǎn)化包括測試框架的學(xué)習和實(shí)際測試單元的編寫(xiě);第二個(gè)是使測試單元保持持久性;第三個(gè)則是可以利用既有的測試來(lái)編寫(xiě)相關(guān)的測試。
2、優(yōu)勢:
2.1)junit是完全Free的。
2.2)使用方便。在你提升程序代碼的品質(zhì)時(shí)JUnit測試仍允許你更快速的撰寫(xiě)程序
那聽(tīng)起來(lái)似乎不是很直覺(jué),但那是事實(shí)。當你使用JUnit撰寫(xiě)測試,你將花更少的時(shí)間除蟲(chóng),同時(shí)對你程序代碼的改變更具有信心。這個(gè)信心讓你更積極重整程序代碼并增加新的功能。沒(méi)有測試,對于重整及增加新功能你會(huì )變得沒(méi)有信心;因為你不知道有甚么東西會(huì )破壞產(chǎn)出的結果。采用一個(gè)綜合的測試系列,你可以在改變程序代碼之后快速的執行多個(gè)測試并對于你的變動(dòng)并未破壞任何東西感到有信心。在執行測試時(shí)如果發(fā)現臭蟲(chóng),原始碼仍然清楚的在你腦中,因此很容易找到臭蟲(chóng)。在JUnit中撰寫(xiě)的測試幫助你以一種極大(extreme)的步伐撰寫(xiě)程序及快速的找出缺點(diǎn)。
2.3)JUnit非常簡(jiǎn)單撰寫(xiě)測試應該很簡(jiǎn)單--這是重點(diǎn)!如果撰寫(xiě)測試太復雜或太耗時(shí)間,便無(wú)法要求程序設計師撰寫(xiě)測試。使用JUnit你可以快速的撰寫(xiě)測試并檢測你的程序代碼并逐步隨著(zhù)程序代碼的成長(cháng)增加測試。只要你寫(xiě)了一些測試,你想要快速并頻繁的執行測試而不至于中斷建立設計及開(kāi)發(fā)程序。使用JUnit執行測試就像編譯你的程序代碼那么容易。事實(shí)上,你應該執行編譯時(shí)也執行測試。編譯是檢測程序代碼的語(yǔ)法而測試是檢查程序代碼的完整性(integrity)。
2.4)JUnit測試檢驗其結果并提供立即的回饋。如果你是以人工比對測試的期望與實(shí)際結果那么測試是很不好玩的,而且讓你的速度慢下來(lái)。JUnit測試可以自動(dòng)執行并且檢查他們自己的結果。當你執行測試,你獲得簡(jiǎn)單且立即的回饋;比如測試是通過(guò)或失敗。而不再需要人工檢查測試結果的報告。
2.5)JUnit測試可以合成一個(gè)測試系列的層級架構。 JUnit可以把測試組織成測試系列;這個(gè)測試系列可以包含其它的測試或測試系列。JUnit測試的合成行為允許你組合多個(gè)測試并自動(dòng)的回歸(regression)從頭到尾測試整個(gè)測試系列。你也可以執行測試系列層級架構中任何一層的測試。
2.6)撰寫(xiě)JUnit測試所費不多。使用Junit測試框架,你可以很便宜的撰寫(xiě)測試并享受由測試框架所提供的信心。撰寫(xiě)一個(gè)測試就像寫(xiě)一個(gè)方法一樣簡(jiǎn)單;測試是檢驗要測試的程序代碼并定義期望的結果。這個(gè)測試框架提供自動(dòng)執行測試的背景;這個(gè)背景并成為其它測試集合的一部份。在測試少量的投資將持續讓你從時(shí)間及品質(zhì)中獲得回收。
2.7)JUnit測試提升軟件的穩定性。你寫(xiě)的測試愈少;你的程序代碼變的愈不穩定。測試使得軟件穩定并逐步累積信心;因為任何變動(dòng)不會(huì )造成漣漪效應而漫及整個(gè)軟件。測試可以形成軟件的完整結構的膠結。
2.8)JUnit測試是開(kāi)發(fā)者測試。 JUnit測試是高度區域性(localized)測試;用以改善開(kāi)發(fā)者的生產(chǎn)力及程序代碼品質(zhì)。不像功能測試(function test)視系統為一個(gè)黑箱以確認軟件整體的工作性為主,單元測試是由內而外測試系統基礎的建構區塊。開(kāi)發(fā)者撰寫(xiě)并擁有JUnit測試。每當一個(gè)開(kāi)發(fā)反復(iteration)完成,這個(gè)測試便包裹成為交付軟件的一部份提供一種溝通的方式,
2.9)JUnit測試是以Java寫(xiě)成的。使用Java測試Java軟件形成一個(gè)介于測試及程序代碼間的無(wú)縫(seamless)邊界。在測試的控制下測試變成整個(gè)軟件的擴充同時(shí)程序代碼可以被重整。Java編譯器的單元測試靜態(tài)語(yǔ)法檢查可已幫助測試程序并且確認遵守軟件接口的約定。
一段測試的程序代碼無(wú)法單獨的執行,它需要是執行環(huán)境的一部份。同時(shí),它需要自動(dòng)執行的單元測試--譬如在系統中周期性的執行所有的測試以證明沒(méi)有任何東西被破壞。由于單元測試需要符合特定的準則:一個(gè)成功的測試不應該是人工檢查的(那可要到天荒地老了。,一個(gè)未通過(guò)測試的失敗應可以產(chǎn)出文件以供診斷修改。而Junit可以提供給我們這些便利.。這樣所有測試開(kāi)發(fā)者所需撰寫(xiě)的只是測試碼本身了。跟optimizeit、Jtest那些昂貴而又超級麻煩的tool比較起來(lái),其利昭然可見(jiàn)!
3、價(jià)格:免費
四、WEBLODE
1、簡(jiǎn)介:
webload是RadView公司推出的一個(gè)性能測試和分析工具,它讓web應用程序開(kāi)發(fā)者自動(dòng)執行壓力測試;webload通過(guò)模擬真實(shí)用戶(hù)的操作,生成壓力負載來(lái)測試web的性能。
2、特征:
1)用戶(hù)創(chuàng )建的是基于javascript的測試腳本,稱(chēng)為議程agenda,用它來(lái)模擬客戶(hù)的行為,通過(guò)執行該腳本來(lái)衡量web應用程序在真實(shí)環(huán)境下的性能
2)如有需要可以在做負載測試的同時(shí),使用服務(wù)器監控工具對服務(wù)器端的內容進(jìn)行記錄那樣使負載測試更加全面。
五、WINRUNNER
1、簡(jiǎn)介
WinRunner:強大的企業(yè)級自動(dòng)化測試工具
Mercury Interactive公司的WinRunner是一種企業(yè)級的功能測試工具,用于檢測應用程序是否能夠達到預期的功能及正常運行。通過(guò)自動(dòng)錄制、檢測和回放用戶(hù)的應用操作,WinRunner能夠有效地幫助測試人員對復雜的企業(yè)級應用的不同發(fā)布版進(jìn)行測試,提高測試人員的工作效率和質(zhì)量,確?缙脚_的、復雜的企業(yè)級應用無(wú)故障發(fā)布及長(cháng)期穩定運行。
企業(yè)級應用可能包括Web應用系統,ERP系統,CRM系統等等。這些系統在發(fā)布之前,升級之后都要經(jīng)過(guò)測試,確保所有功能都能正常運行,沒(méi)有任何錯誤。如何有效地測試不斷升級更新且不同環(huán)境的應用系統,是每個(gè)公司都會(huì )面臨的問(wèn)題。
如果時(shí)間或資源有限,這個(gè)問(wèn)題會(huì )更加棘手。人工測試的工作量太大,還要額外的時(shí)間來(lái)培訓新的測試人員等等。為了確保那些復雜的企業(yè)級應用在不同環(huán)境下都能正?煽康剡\行,你需要一個(gè)能簡(jiǎn)單操作的測試工具來(lái)自動(dòng)完成應用程序的功能性測試。
2、特征:
1)輕松創(chuàng )建測試
用WinRuuner創(chuàng )建一個(gè)測試,只需點(diǎn)擊鼠標和鍵盤(pán),完成一個(gè)標準的業(yè)務(wù)操作流程,WinRunner自動(dòng)記錄你的操作并生成所需的腳本代碼。這樣,即使計算機技術(shù)知識有限的業(yè)務(wù)用戶(hù)輕松創(chuàng )建完整的測試。你還可以直接修改測試腳本以滿(mǎn)足各種復雜測試的需求。WinRunner提供這兩種測試創(chuàng )建方式,滿(mǎn)足測試團隊中業(yè)務(wù)用戶(hù)和專(zhuān)業(yè)技術(shù)人員的不同需求。
2)插入檢查點(diǎn)
在記錄一個(gè)測試的過(guò)程中,可以插入檢查點(diǎn),檢查在某個(gè)時(shí)刻/狀態(tài)下,應用程序是否運行正常。在插入檢查點(diǎn)后,WinRunner會(huì )收集一套數據指標,在測試運行時(shí)對其一一驗證。WinRunner提供幾種不同類(lèi)型的檢查點(diǎn),包括文本的、GUI、位圖和數據庫。例如,用一個(gè)位圖檢查點(diǎn),你可以檢查公司的圖標是否出現于指定位置。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/