1、 Checkstyle
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比界首網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式界首網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋界首地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
Checkstyle 是SourceForge的開源項(xiàng)目,通過檢查對(duì)代碼編碼格式,命名約定,Javadoc,類設(shè)計(jì)等方面進(jìn)行代碼規(guī)范和風(fēng)格的檢查,從而有效約束開發(fā)人員更好地遵循代碼編寫規(guī)范。Checkstyle 提供了支持大多數(shù)常見IDE的插件。
2、FindBugs
FindBugs 是由馬里蘭大學(xué)提供的一款開源 Java 靜態(tài)代碼分析工具。FindBugs 通過檢查類文件或 JAR 文件,將字節(jié)碼與一組缺陷模式進(jìn)行對(duì)比從而發(fā)現(xiàn)代碼缺陷,完成靜態(tài)代碼分析。FindBugs 既提供可視化 UI 界面,同時(shí)也可以作為 Eclipse 插件使用。
3、PMD
PMD 是由 DARPA 在 SourceForge 上發(fā)布的開源 Java 代碼靜態(tài)分析工具。PMD 通過其內(nèi)置的編碼規(guī)則對(duì) Java 代碼進(jìn)行靜態(tài)檢查,主要包括對(duì)潛在的 bug,未使用的代碼,重復(fù)的代碼,循環(huán)體創(chuàng)建新對(duì)象等問題的檢驗(yàn)。PMD 提供了和多種 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。
4、Jtest
Jtest 是Parasoft 公司推出的一款針對(duì)Java語(yǔ)言的自動(dòng)化代碼優(yōu)化和測(cè)試工具,Jtest 的靜態(tài)代碼分析功能能夠按照其內(nèi)置的超過800條的 Java 編碼規(guī)范自動(dòng)檢查并糾正這些隱蔽且難以修復(fù)的編碼錯(cuò)誤。同時(shí),還支持用戶自定義編碼規(guī)則,幫助用戶預(yù)防一些特殊用法的錯(cuò)誤。
1.Eclipse
盡管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有調(diào)查表明,Eclipse仍然是幾乎半數(shù)Java開發(fā)人員首選的開發(fā)環(huán)境。 Eclipse是IDE領(lǐng)域的瑞士軍刀,有著大量定制的接口和無(wú)數(shù)的插件。它無(wú)處不在,后面本文將推薦的其他所有工具都提供Eclipse插件。
Eclipse的工作流程可分為三個(gè)方面:工作臺(tái),工作空間和視角。工作臺(tái)作為到IDE的出發(fā)點(diǎn)。工作空間將項(xiàng)目、文件和配置設(shè)置組合在一個(gè)單獨(dú)的 目錄下。視角定義工具、視圖和有效設(shè)置。雖然新手開發(fā)人員可能會(huì)覺得相比Netbeans和IntelliJ IDEA,Eclipse使用起來(lái)更難,但Eclipse的靈活性,使其成為企業(yè)開發(fā)的首選IDE。
Luna,Eclipse的最新版本,支持Java 8、分屏編輯、新的黑色主題,以及一個(gè)功能齊全的命令行終端。
官方網(wǎng)站:
2.Gradle
Gradle是一個(gè)自動(dòng)化項(xiàng)目工具,建立在Apache Maven和Apache Ant的功能上。雖然Gradle并不是最流行的構(gòu)建工具(最流行的是Maven,64%的Java開發(fā)人員會(huì)選擇它),但它的普及速度很快。它也可作為默認(rèn)的Android構(gòu)建工具。
Gradle引以為傲的是它的簡(jiǎn)單。Gradle使用Groovy編程語(yǔ)言,與Maven和Ant使用XML語(yǔ)法截然相反。一個(gè)基本的Gradle構(gòu)建文件由一行簡(jiǎn)單的代碼組成:
apply plugin: 'java'.
下面的命令會(huì)生成一個(gè)Gradle構(gòu)建文件,創(chuàng)建項(xiàng)目文件的目錄樹,并附帶一個(gè)項(xiàng)目便攜式Gradle封裝:
$ gradle init --type java-library
Gradle還有可用于添加新的語(yǔ)言,生成支持IDE的項(xiàng)目文件,構(gòu)建本地二進(jìn)制文檔,檢查依賴性更新等等的插件。
想要了解更多信息,請(qǐng)參見Gradle的Java / JVM入門指南。
官方網(wǎng)站:
3.Javadoc
Javadoc是Oracle提供的文檔生成器。它可以將特殊格式的注釋解析為HTML文檔。以下截圖就是Javadoc生成的Java SE 8 API規(guī)范:
Javadoc注釋使用開放標(biāo)簽、關(guān)閉標(biāo)簽,以及一個(gè)或多個(gè)描述性標(biāo)簽的格式。開放式標(biāo)簽類似于標(biāo)準(zhǔn)Java多行注釋標(biāo)記,使用兩個(gè)星號(hào)的除外。Javadoc也解析普通的HTML標(biāo)簽。
Javadoc自動(dòng)格式化標(biāo)簽和關(guān)鍵字,除非另有規(guī)定。Javadoc廣泛使用超鏈接,允許你參考和鏈接到代碼的不同區(qū)域。許多IDE——包括 Eclipse——可以自動(dòng)添加Javadoc注釋模塊到變量、類和方法中。支持Maven、Gradle和Ant的插件在編譯代碼的同時(shí)也可以構(gòu)建 Javadoc HTML。
想要了解更多信息,請(qǐng)參閱Oracle關(guān)于如何為Javadoc工具寫文檔注釋的文章。
官方網(wǎng)站:
4.JUnit
JUnit是用于編寫和運(yùn)行單元測(cè)試的開源框架。一個(gè)基本的JUnit測(cè)試包括測(cè)試類、測(cè)試方法、以及執(zhí)行測(cè)試的功能。 JUnit使用標(biāo)注來(lái)確定測(cè)試如何構(gòu)造和運(yùn)行。例如,如果你的程序有一個(gè)類叫做MathClass,具有乘法和除法的方法,你可以創(chuàng)建JUnit測(cè)試來(lái)檢 查不符合預(yù)期的值。輸入數(shù)字2和5到乘法方法,你希望得到的結(jié)果為10。當(dāng)輸入0作為除法方法的第二個(gè)參數(shù)時(shí),你會(huì)期望給出一個(gè)數(shù)字計(jì)算異常的警告因?yàn)槌?數(shù)不能為0:
@Test標(biāo)注規(guī)定,MathClass方法是一個(gè)測(cè)試用例。 在JUnit提供額外的標(biāo)注,比如@Before,這樣你就可以在測(cè)試運(yùn)行之前設(shè)置環(huán)境。 JUnit還可以設(shè)置規(guī)則用于定義測(cè)試方法的行為。例如,TemporaryFolder規(guī)則使得一旦測(cè)試完成,由測(cè)試創(chuàng)建的文件或文件夾就會(huì)被刪除。
想要了解更多信息,請(qǐng)參考JUnit入門。 此外還有使用JUnit單元測(cè)試的教程。
官方網(wǎng)站:
5.Cobertura
Cobertura可用于分析Java代碼的測(cè)試覆蓋率。Cobertura根據(jù)沒有被測(cè)試覆蓋的代碼生成基于HTML的報(bào)告。
Cobertura提供可用于插裝、檢查和測(cè)試代碼的工具。通過監(jiān)控可測(cè)試的代碼,Cobertura允許你使用你選擇的測(cè)試框架,甚至不需要測(cè)試框架就可以運(yùn)行程序。
Cobertura根據(jù)行、分支和程序包三個(gè)方面給出代碼覆蓋報(bào)告。每個(gè)類別都有一個(gè)可自定義的閾值,如果覆蓋面低于閾值,就會(huì)觸發(fā)警告。Cobertura還集成了Maven和Gradle 的自動(dòng)檢測(cè)功能。
Mkyong.com提供了一個(gè)將Cobertura與Maven整合的示例。
官方網(wǎng)站:
6.FindBugs
FindBugs是一個(gè)匹配編譯代碼模式,而非使用bug數(shù)據(jù)庫(kù)的工具。當(dāng)提供源代碼時(shí),F(xiàn)indBugs還可高亮顯示檢測(cè)出bug的代碼行。
在它的3.0.1版本中,F(xiàn)indBugs繼續(xù)保持著數(shù)以百計(jì)的bug描述。根據(jù)bug的嚴(yán)重程度,F(xiàn)indBugs將bug分為四個(gè)水平:相關(guān) 的,令人困擾的,可怕的,以及最可怕的。除了圖形用戶界面,F(xiàn)indBugs還提供一個(gè)命令行界面,Ant任務(wù),以及Eclipse插件。
官方網(wǎng)站:
7.VisualVM
包含在JDK中的VisualVM是監(jiān)控和審查Java應(yīng)用程序性能的工具。 VisualVM檢測(cè)并重視活躍的JVM實(shí)例來(lái)檢索有關(guān)進(jìn)程的診斷信息。
VisualVM可以很容易地實(shí)時(shí)診斷性能問題。它提供了全套的分析工具,包括JConsole、jstack、jmap、jinfo和jstat等。此外,你還可以對(duì)JVM做一個(gè)快照,這樣以后在任何時(shí)都能審查。
官方網(wǎng)站:
8.Groovy
Groovy是一種編程語(yǔ)言,通過添加新的關(guān)鍵字,自動(dòng)導(dǎo)入常用的類,以及可選類型變量聲明,既簡(jiǎn)化又?jǐn)U展了Java。
Groovy的核心優(yōu)勢(shì)之一是它的腳本功能。類可以被編譯為Java字節(jié)碼或使用Groovy Shell動(dòng)態(tài)執(zhí)行。Groovy的Java基礎(chǔ)使得它相較于Jython和JRuby更容易為Java開發(fā)人員所接受。
想要了解更多信息,請(qǐng)參見Groovy的入門指南。
官方網(wǎng)站:
1、JasmineJasmine是一個(gè)行為驅(qū)動(dòng)的測(cè)試開發(fā)框架,用于對(duì)JavaScript代碼進(jìn)行測(cè)試。
它不依賴其它任何JavaScript框架,也不需要DOM。
它的語(yǔ)法簡(jiǎn)潔、明確,寫測(cè)試非常容易。
2、MochaMocha是一個(gè)功能豐富的JavaScript測(cè)試框架,既運(yùn)行于Node.js環(huán)境中,也可以運(yùn)行于瀏覽器環(huán)境中。
Mocha以串行方式運(yùn)行測(cè)試,能做出靈活而準(zhǔn)確的報(bào)告,也能將測(cè)試中未捕捉的異常映射到正確的測(cè)試用例。
3、ChaiChai是個(gè)支持BDD/TDD的庫(kù),可用于node和瀏覽器,可配合任何JavaScript測(cè)試框架使用。
4、QUnitQUnit是個(gè)功能強(qiáng)大又易于使用的JavaScript單元測(cè)試框架。
jQuery、jQueryUI和jQueyMobile項(xiàng)目都使用這個(gè)框架,它能測(cè)試普通的JavaScript代碼。
5、SinonSinon.JS為JavaScript提供了獨(dú)立的spies、stubs和mocks[譯者注:Spy、Stub和Mock都是測(cè)試專用名詞,Stub常被翻譯為樁,spies是Spy的復(fù)數(shù)形式,是一種可以監(jiān)視方法、調(diào)用和參數(shù)的技術(shù)]。
它不依賴任何東西,可以配合任何單元測(cè)試框架工作。
6、KarmaKarma是針對(duì)連通瀏覽器的一個(gè)框架無(wú)關(guān)測(cè)試運(yùn)行器。
每一個(gè)測(cè)試結(jié)果對(duì)應(yīng)每個(gè)瀏覽器,它的測(cè)試和顯示都是通過命令行暴露給開發(fā)者的,這樣他們就可以看到瀏覽器測(cè)試的通過或失敗。
7、SeleniumSelenium有一個(gè)簡(jiǎn)單的目標(biāo):就是自動(dòng)化瀏覽器。
它主要用于自動(dòng)化測(cè)試web應(yīng)用程序,但是只是很簡(jiǎn)單地考慮到了基于網(wǎng)絡(luò)的管理任務(wù)。
8、WebdriverIOWebdriverIO允許用戶僅添加幾行代碼就可以控制瀏覽器或移動(dòng)應(yīng)用程序,使測(cè)試代碼更簡(jiǎn)單、簡(jiǎn)潔、易讀。
集成的TestRunner同樣允許你以同步的方式調(diào)用異步命令,這樣你不需要關(guān)心如何處理Promise以避免競(jìng)態(tài)條件。
此外,它取消了所有的繁瑣的設(shè)置工作,并且會(huì)為您管理的Selenium會(huì)話。
9、NightwatchNightwatch.js是一個(gè)易于使用的Node.js,它是為基于瀏覽器的app和網(wǎng)站設(shè)計(jì)的終端到終端(E2E)的測(cè)試方法。
它使用強(qiáng)大的W3CWebDriverAPI,用于在DOM元素上執(zhí)行命令和斷言。
10、PhantomCSSPhantomCSS獲得CasperJS捕獲的屏幕截圖,并使用Resemble.js將其與基準(zhǔn)圖進(jìn)行對(duì)比,以測(cè)試RGB像素差異。
java課程發(fā)現(xiàn)PhantomCSS然后生成圖像差異對(duì)比,用于幫助您找到原因。
11、PhantomFlowPhantomFlow使用決策樹提供UI測(cè)試方案。
針對(duì)PhantomJS,CasperJS和PhantomCSS的NodeJS包裝器——PhantomFlow能夠流暢地在代碼中描述用戶流程,同時(shí)生成用于可視化的結(jié)構(gòu)化樹數(shù)據(jù)。
1.負(fù)載壓力測(cè)試工具這類測(cè)試工具的主要目的是度量應(yīng)用系統(tǒng)的可擴(kuò)展性和性能,是一種預(yù)測(cè)系統(tǒng)行為和性能的自動(dòng)化測(cè)試工具。
在實(shí)施并發(fā)負(fù)載過程中,通過實(shí)時(shí)性能監(jiān)測(cè)來(lái)確認(rèn)和查找問題,并針對(duì)所發(fā)現(xiàn)問題對(duì)系統(tǒng)性能進(jìn)行優(yōu)化,確保應(yīng)用的成功部署。
負(fù)載壓力測(cè)試工具能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試,通過這些測(cè)試,企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。
2.功能測(cè)試工具通過自動(dòng)錄制、檢測(cè)和回放用戶的應(yīng)用操作,將被測(cè)系統(tǒng)的輸出記錄同預(yù)先給定的標(biāo)準(zhǔn)結(jié)果比較,功能測(cè)試工具能夠有效地幫助測(cè)試人員對(duì)復(fù)雜的企業(yè)級(jí)應(yīng)用的不同發(fā)布版本的功能進(jìn)行測(cè)試,提高測(cè)試人員的工作效率和質(zhì)量。
其主要目的是檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能并正常運(yùn)行。
3.白盒測(cè)試工具白盒測(cè)試工具一般是針對(duì)代碼進(jìn)行測(cè)試,測(cè)試中發(fā)現(xiàn)的缺陷可以定位到代碼級(jí)。
根據(jù)測(cè)試工具原理的不同,又可以分為靜態(tài)測(cè)試工具和動(dòng)態(tài)測(cè)試工具。
靜態(tài)測(cè)試工具直接對(duì)代碼進(jìn)行分析,不需要運(yùn)行代碼,也不需要對(duì)代碼編譯鏈接和生成可執(zhí)行文件。
靜態(tài)測(cè)試工具一般是對(duì)代碼進(jìn)行語(yǔ)法掃描,找出不符合編碼規(guī)范的地方,根據(jù)某種質(zhì)量模型評(píng)價(jià)代碼的質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。
動(dòng)態(tài)測(cè)試工具一般采用“插樁”的方式,在代碼生成的可執(zhí)行文件中插入一些監(jiān)測(cè)代碼,用來(lái)統(tǒng)計(jì)程序運(yùn)行時(shí)的數(shù)據(jù)。
它與靜態(tài)測(cè)試工具最大的不同是,動(dòng)態(tài)測(cè)試工具要求被測(cè)系統(tǒng)實(shí)際運(yùn)行。
4.測(cè)試管理工具一般而言,測(cè)試管理工具對(duì)測(cè)試需求、測(cè)試計(jì)劃、測(cè)試用例、測(cè)試實(shí)施進(jìn)行管理,并且測(cè)試管理工具還包括對(duì)缺陷的跟蹤管理。
測(cè)試管理工具能讓測(cè)試人員、開發(fā)人員或其他的IT人員。
廣東電腦培訓(xùn)認(rèn)為通過一個(gè)中央數(shù)據(jù)倉(cāng)庫(kù),在不同地方就能交互信息。
5.測(cè)試輔助工具這些工具本身并不執(zhí)行測(cè)試,例如它們可以生成測(cè)試數(shù)據(jù),為測(cè)試提供數(shù)據(jù)準(zhǔn)備。
目前由于軟件測(cè)試工作在軟件的生產(chǎn)過程中越來(lái)越重要,很多軟件測(cè)試工具應(yīng)運(yùn)而生,這里介紹一下目前最流行的一些軟件測(cè)試工具,一個(gè)十個(gè),介紹如下:一、企業(yè)級(jí)自動(dòng)化測(cè)試工具WinRunner這款軟件是MercuryInteractive公司的。
WinRunner是一種企業(yè)級(jí)的功能測(cè)試工具,用于檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。
通過自動(dòng)錄制、檢測(cè)和回放用戶的應(yīng)用操作,WinRunner能夠有效地幫助測(cè)試人員對(duì)復(fù)雜的企業(yè)級(jí)應(yīng)用的不同發(fā)布版進(jìn)行測(cè)試,提高測(cè)試人員的工作效率和質(zhì)量,確保跨平臺(tái)的、復(fù)雜的企業(yè)級(jí)應(yīng)用無(wú)故障發(fā)布及長(zhǎng)期穩(wěn)定運(yùn)行。
二、工業(yè)標(biāo)準(zhǔn)級(jí)負(fù)載測(cè)試工具Loadrunner這款軟件是惠普公司開發(fā)的。
LoadRunner是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。
通過以模擬上千萬(wàn)用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來(lái)確認(rèn)和查找問題,LoadRunner能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試。
通過使用LoadRunner,企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。
三、功能測(cè)試工具RationalRobotIBMRationalRobot是業(yè)界最頂尖的功能測(cè)試工具,它甚至可以在測(cè)試人員學(xué)習(xí)高級(jí)腳本技術(shù)之前幫助其進(jìn)行成功的測(cè)試。
它集成在測(cè)試人員的桌面IBMRationalTestManager上,在這里測(cè)試人員可以計(jì)劃、組織、執(zhí)行、管理和報(bào)告所有測(cè)試活動(dòng),包括手動(dòng)測(cè)試報(bào)告。
這種測(cè)試和管理的雙重功能是自動(dòng)化測(cè)試的理想開始。
四、功能測(cè)試工具SilkTestBorlandSilkTest2006屬于軟件功能測(cè)試工具,是Borland公司所提出軟件質(zhì)量管理解決方案的套件之一。
這個(gè)工具采用精靈設(shè)定與自動(dòng)化執(zhí)行測(cè)試,無(wú)論是程序設(shè)計(jì)新手或資深的專家都能快速建立功能測(cè)試,并分析功能錯(cuò)誤。
五、功能和性能測(cè)試的工具JMeterJMeter是Apache組織的開放源代碼項(xiàng)目,它是功能和性能測(cè)試的工具,100%的用java實(shí)現(xiàn)。
六、單元測(cè)試工具xUnit系列目前的最流行的單元測(cè)試工具是xUnit系列框架,常用的根據(jù)語(yǔ)言不同分為JUnit(java),CppUnit(C++),DUnit(Delphi),NUnit(.net),PhpUnit(Php)等等。
該測(cè)試框架的第一個(gè)和最杰出的應(yīng)用就是由ErichGamma(《設(shè)計(jì)模式》的作者)和KentBeck(XP(ExtremeProgramming)的創(chuàng)始人)提供的開放源代碼的JUnit.七、全球測(cè)試管理系統(tǒng)testdirectorTestDirector是業(yè)界第一個(gè)基于Web的測(cè)試管理系統(tǒng),它可以在您公司內(nèi)部或外部進(jìn)行全球范圍內(nèi)測(cè)試的管理。
通過在一個(gè)整體的應(yīng)用系統(tǒng)中集成了測(cè)試管理的各個(gè)部分,包括需求管理,測(cè)試計(jì)劃,測(cè)試執(zhí)行以及錯(cuò)誤跟蹤等功能,TestDirector極大地加速了測(cè)試過程。
八、自動(dòng)化白盒測(cè)試工具JtestJtest是parasoft公司推出的一款針對(duì)java語(yǔ)言的自動(dòng)化白盒測(cè)試工具,它通過自動(dòng)實(shí)現(xiàn)java的單元測(cè)試和代碼標(biāo)準(zhǔn)校驗(yàn),來(lái)提高代碼的可靠性。
parasoft同時(shí)出品的還有C++test,是一款C/C++白盒測(cè)試工具。
九、性能測(cè)試工具WASMicrosoftWebApplicationStressTool是由微軟的網(wǎng)站測(cè)試人員所開發(fā),專門用來(lái)進(jìn)行實(shí)際網(wǎng)站壓力測(cè)試的一套工具。
透過這套功能強(qiáng)大的壓力測(cè)試工具,您可以使用少量的Client端計(jì)算機(jī)仿真大量用戶上線對(duì)網(wǎng)站服務(wù)所可能造成的影響。
十、性能測(cè)試和分析工具WEBLODEwebload是RadView公司推出的一個(gè)性能測(cè)試和分析工具,它讓web應(yīng)用程序開發(fā)者自動(dòng)執(zhí)行壓力測(cè)試;webload通過模擬真實(shí)用戶的操作,生成壓力負(fù)載來(lái)測(cè)試web的性能。