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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3)日構(gòu)建

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

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

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

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

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

  4)持續(xù)集成

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

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

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

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

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

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

  5)小步發(fā)布

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


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

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

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

  2、開源項目與Framework:

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

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

  還有很多開源項目為Struts提供支持,例如:

  配置文件GUI:Struts Console;

  Code Generator:Easy Struts;

  Unit-Test:StrutsTestCase;

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

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

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

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