您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源軟件測(cè)試解決方案 >
企業(yè)級(jí)應(yīng)用開發(fā)中的JAVA開源項(xiàng)目
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/3 16:02:29 ] 推薦標(biāo)簽:

  下面按照一般的測(cè)試分類,介紹各個(gè)領(lǐng)域內(nèi)的開源測(cè)試工具:

  單元測(cè)試:JUnit (http://www.junit.org)

  JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個(gè)回歸測(cè)試框架(regression testing framework),用于Java開發(fā)人員編寫單元測(cè)試之用。下面介紹的開源測(cè)試工具,很多都是對(duì)于JUnit的擴(kuò)展。

  它目前的版本為3.7,為編寫單元測(cè)試提供了主要的接口。目前主流的IDE都提供了對(duì)于JUnit的支持。

  XP強(qiáng)調(diào)測(cè)試先行,尤其重視單元測(cè)試。系統(tǒng)集成商需要通過軟件開發(fā)過程的執(zhí)行,來強(qiáng)化JUnit的使用。

  目前很多商業(yè)測(cè)試軟件都提供了與JUnit的聯(lián)合使用,例如獲得1999和2000年Jolt測(cè)試類工具亞軍和生產(chǎn)率大獎(jiǎng)的Jtest (ParaSoft公司產(chǎn)品,內(nèi)置200余條編碼規(guī)范,提供Java代碼靜態(tài)和動(dòng)態(tài)檢查,同時(shí)還可以自動(dòng)生成簡(jiǎn)單的測(cè)試用例等等)可以導(dǎo)入和導(dǎo)出JUnit的測(cè)試用例。

  集成與功能測(cè)試:HttpUnit (http://unit.sourceforge.net) & Cactus(http://jakarta.apache.org/cactus/)

  HttpUnit是一套通過HTTP連接測(cè)試Web應(yīng)用程序的Java類。在結(jié)合JUnit的情況下,HttpUnit可以作為一種創(chuàng)建測(cè)試程序的強(qiáng)大工具用來保證Web應(yīng)用程序正常的端對(duì)端功能。

  雖然JUnit自身可以通過編寫單一類的測(cè)試程序?qū)Ψ⻊?wù)器端Java代碼進(jìn)行測(cè)試,不過,有了HttpUnit的幫助,JUnit可以擴(kuò)展為模擬Web瀏覽器-Web服務(wù)器的工作方式對(duì)整個(gè)Web程序結(jié)構(gòu)進(jìn)行測(cè)試。

  Cactus為我們提供了一種測(cè)試SERVLET等WEB組件的有效手段。它是JUnit的一個(gè)擴(kuò)展,但是它又和JUnit有一些不同。Cactus的測(cè)試分為三種不同的測(cè)試類別,JspTestCase, ServletTestCase, FilterTestCase, 而不是像JUnit一種TestCase。Cactus的測(cè)試代碼有服務(wù)器端和客戶端兩個(gè)部分,他們協(xié)同工作。

  一般意義上,可以采用Cactus作集成測(cè)試;而使用HttpUnit做功能測(cè)試。

  雖然在集成與功能測(cè)試方面,有很多的開源工具,但是在實(shí)際應(yīng)用過程中,還是采用商業(yè)測(cè)試軟件的比較多,對(duì)于復(fù)雜應(yīng)用更是如此。這是因?yàn)榧膳c功能測(cè)試大部分還是由專門的測(cè)試人員進(jìn)行,而他們對(duì)于已有的商業(yè)軟件,例如Rational Robot、E-Test Suite、WinRunner等都比較熟悉,同時(shí)商業(yè)軟件也提供了更為強(qiáng)大的功能。

  壓力與性能測(cè)試: JMeter (http://jakarta.apache.org/jmeter/)

  由于企業(yè)應(yīng)用越來越復(fù)雜,用戶數(shù)量也是越來越多,系統(tǒng)的性能參數(shù)以及眾多的非功能性需求在開發(fā)中獲得了越來越多的重視。因此,很多壓力與性能測(cè)試工具也開始出現(xiàn),這其中有一定影響的是Apache Software Foundation的JMeter。

  JMeter是的JAVA桌面應(yīng)用,用來測(cè)試系統(tǒng)的負(fù)載與性能。它開始設(shè)計(jì)是用來測(cè)試WEB應(yīng)用,后來加以擴(kuò)展,可以測(cè)試Http,F(xiàn)TP,支持JDBC的關(guān)系型數(shù)據(jù)庫(kù)的性能與壓力。同時(shí),JMeter提供一定的定制功能,系統(tǒng)集成商可以自行開發(fā)針對(duì)EJB、CORBA或者SOAP的插件。

  壓力與性能測(cè)試方面,由于測(cè)試比較復(fù)雜,實(shí)際企業(yè)應(yīng)用測(cè)試中,也是采用商業(yè)測(cè)試軟件比較多,例如LoadRunner、JProbe Suite以及與JBuilder8 同步發(fā)布的OptimizerIT;

  3)日構(gòu)建

  在軟件開發(fā)的領(lǐng)域里有各種各樣的"佳實(shí)踐",它們經(jīng)常被人們談起,但是似乎很少有真正得到實(shí)現(xiàn)的。這些實(shí)踐基本、有價(jià)值的是:都有一個(gè)完全自動(dòng)化的創(chuàng)建、測(cè)試過程,讓開發(fā)團(tuán)隊(duì)可以每天多次創(chuàng)建他們的軟件。

  "日創(chuàng)建"也是人們經(jīng)常討論的一個(gè)觀點(diǎn),McConnell在他的《快速軟件開發(fā)》中將日創(chuàng)建作為一個(gè)佳實(shí)踐來推薦,同時(shí)日創(chuàng)建也是微軟很出名的一項(xiàng)開發(fā)方法。但是,我們更支持XP社群的觀點(diǎn):日創(chuàng)建只是低要求。一個(gè)完全自動(dòng)化的過程讓你可以每天完成多次創(chuàng)建,這是可以做到的,也是完全值得的。

  Ant是Apache Jakarta的一個(gè)項(xiàng)目,是"不帶 make 缺點(diǎn)的 make"。Ant 正在成為開放源代碼世界中實(shí)際上的標(biāo)準(zhǔn)。原因很簡(jiǎn)單:Ant 是使用 Java 語(yǔ)言編寫的,這種語(yǔ)言可以讓創(chuàng)建過程在多種平臺(tái)上使用。

  Ant目前的版本為1.5,它的執(zhí)行是基于一個(gè)XML文件,配置文件由目標(biāo)樹構(gòu)成。每個(gè)目標(biāo)都包含了要執(zhí)行的任務(wù),其中任務(wù)是可以執(zhí)行的代碼。在下面給出的例子中,mkdir 是目標(biāo) compile 的任務(wù)。mkdir 是建立在 Ant 中的一個(gè)任務(wù),用于創(chuàng)建目錄。 Ant 帶有一套健全的內(nèi)置任務(wù),也可以通過擴(kuò)展 Ant 任務(wù)類來添加自己的功能。

  Ant內(nèi)置了對(duì)于JUnit、CVS、ClearCase、Visual SourceSafe以及CheckStyle的支持,通過于系統(tǒng)定時(shí)功能,例如Windows的"任務(wù)計(jì)劃"或者Linux/Unix的"cron",可以很方便的利用Ant來自動(dòng)完成每日構(gòu)建的工作。

  4)持續(xù)集成

  持續(xù)集成是XP的重要實(shí)踐之一,Martin Fowler在參考文獻(xiàn)[6]中有詳細(xì)的介紹,上述實(shí)踐都是它的基礎(chǔ)。

  開源項(xiàng)目中有一個(gè)的工具是用來幫助實(shí)現(xiàn)持續(xù)集成的:CruiseControl,其次,目前還有一款商業(yè)軟件AntHill也為持續(xù)集成提供了很好的支持。

  CruiseControl (http://cruisecontrol.sourceforge.net/)

  CruiseControl是的ThoughtWorks公司的產(chǎn)品,目前它的源碼已經(jīng)公開,它是一個(gè)持續(xù)集成的框架。它包含,但是并不局限于Email通知、Ant以及其他源碼控制工具。同時(shí),它還提供了WEB界面來查看當(dāng)前和已往Build的詳細(xì)信息。

  AntHill (http://www.urbancode.com/projects/anthill/)

  AntHill可以確保Build過程受控,同時(shí),幫助組織內(nèi)部的知識(shí)共享。它在每次Build之前從源碼控制系統(tǒng) (CVS、VisualSourceSafe、ClearCase等) 中獲取新的源碼,同時(shí)在 Build完成之后為源碼分配一個(gè)的數(shù)字進(jìn)行標(biāo)定。同時(shí),它還會(huì)在根據(jù)Build的情況,更新Intranet的信息。

  5)小步發(fā)布

  有了以上實(shí)踐的支持,小步發(fā)布有了實(shí)現(xiàn)的可能。XP強(qiáng)調(diào)在非常短的周期內(nèi)以遞增的方式發(fā)布新版本,從而可以很容易地估計(jì)每個(gè)迭代周期的進(jìn)度,便于控制工作量和風(fēng)險(xiǎn);同時(shí),也可以及時(shí)處理用戶的反饋。


  為了成功的進(jìn)行應(yīng)用系統(tǒng)的版本發(fā)布,需要SCM,尤其是源碼控制程序的配合。在開源項(xiàng)目中,CVS (Concurrent Version System) 是的版本控制程序。

  目前CVS的版本為1.5.11,它是一個(gè)將一組文件放在層次目錄樹中以保持同步的系統(tǒng)。人們可以從 CVS 服務(wù)器上更新他們的本地層次樹副本,并將修改的結(jié)果或新文件發(fā)回;或者刪除舊文件。CVS 基于客戶端/服務(wù)器的行為使得其可容納多用戶,構(gòu)成網(wǎng)絡(luò)也很方便。這一特性使得 CVS 成為位于不同地點(diǎn)的人同時(shí)處理數(shù)據(jù)文件(特別是程序的源代碼)時(shí)的。所有重要的免費(fèi)軟件項(xiàng)目都使用 CVS 作為其程序員之間的中心點(diǎn),以便能夠綜合各程序員的改進(jìn)和更改。

  基于多個(gè)操作系統(tǒng)的CVS的客戶端軟件也很多,其中以WinCVS為。

  2、開源項(xiàng)目與Framework:

  目前,對(duì)于基于J2EE的應(yīng)用程序開發(fā),有很多開源的Framework,例如Struts (http://jakarta.apache.org/struts/)、WebWork等,都提供了利用J2EE技術(shù)的解決方案。其中,Struts是目前應(yīng)用為廣泛和獲得關(guān)注多的框架之一。

  Struts目前的版本為1.1,它是基于Model2的MVC實(shí)現(xiàn)框架。Struts的核心是基于Servlet、JavaBean、ResourceBundles和XML技術(shù)的控制層。

  還有很多開源項(xiàng)目為Struts提供支持,例如:

  配置文件GUI:Struts Console;

  Code Generator:Easy Struts;

  Unit-Test:StrutsTestCase;

  獲得2002年JAVA IDE大獎(jiǎng)的JBuilder 8更是內(nèi)置了對(duì)于Struts的支持,這也從另外一個(gè)側(cè)面體現(xiàn)了Struts的重要意義。

  同時(shí),需要注意的是,Struts本身并沒有提供Persistence層的標(biāo)準(zhǔn)實(shí)現(xiàn),但是,目前這個(gè)方面的解決方案比較多,系統(tǒng)集成開發(fā)商可以根據(jù)具體情況加以選擇。

  如果可以在Struts等Framework的基礎(chǔ)上,結(jié)合不同業(yè)務(wù)系統(tǒng)的專業(yè)知識(shí),開發(fā)獨(dú)立的系統(tǒng)平臺(tái),系統(tǒng)集成商的項(xiàng)目開發(fā)速度和質(zhì)量都會(huì)有很大的提高。

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd