您的位置:軟件測試 > 開源軟件測試 > 開源軟件測試解決方案 >
軟件測試技術(shù)在J2EE項目中的應(yīng)用
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2012/12/13 13:27:42 ] 推薦標(biāo)簽:

  系統(tǒng)軟件已深入到生活各方面,對軟件質(zhì)量的要求在不斷提高,軟件測試成為軟件開發(fā)中一個重要部分。軟件測試是使用為發(fā)現(xiàn)錯誤所選擇的輸入和狀態(tài)的組合而執(zhí)行代碼的過程。包括白盒測試和?盒測試。?盒測試不考慮內(nèi)部邏輯結(jié)構(gòu),只依據(jù)程序規(guī)格說明書,檢查程序功能。白盒測試?yán)贸绦騼?nèi)部邏輯結(jié)構(gòu),設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。J2EE應(yīng)用開發(fā)越來越流行,并應(yīng)用到各種大型電子商務(wù)中,這些電子商務(wù)對軟件質(zhì)量要求非常高,要是在應(yīng)用中出現(xiàn)錯誤,會造成嚴(yán)重的損失。本文給出及J2EE項目開發(fā)時的測試過程,以及各測試階段用到的測試工具。

  J2EE是一種利用java2平臺來簡化與企業(yè)解決方案的開發(fā),部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)是java2平臺的標(biāo)準(zhǔn)版。 J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點,還提供了對EJB,Servlet,JSP,XML的全面支持。J2EE包括四個層次,分別是客戶層,web層,業(yè)務(wù)層和企業(yè)信息系統(tǒng)層。一個多層的分布式應(yīng)用模型意味著根據(jù)功能應(yīng)用邏輯被劃分成組件,并可以在同一服務(wù)器或不同的服務(wù)器上安裝組成J2EE應(yīng)用的這些不同的組件。J2EE結(jié)構(gòu)復(fù)雜,層次多,需求會不斷更新,如何保證終開發(fā)的質(zhì)量變得至關(guān)重要。

  在極限編程思想中定義了兩種測試的類型。1.單元測試,對系統(tǒng)內(nèi)部模塊的測試。為了適應(yīng)J2EE平臺,還發(fā)展出與J2EE容器緊密結(jié)合的整合測試。2.功能測試。在軟件測試中還有一個經(jīng)常聽到的是性能測試。由于性能測試與客戶的需求密不可分,將它歸類于接受度測試的延伸應(yīng)用。考慮到J2EE的結(jié)構(gòu)和技術(shù),不但要對其中用到的技術(shù)進行測試,還要測試各層之間的聯(lián)系。

  下面對J2EE應(yīng)用的測試過程進行具體介紹,主要包括對測試各階段用到的測試類型和測試工具。

  單元是整個軟件工程的基礎(chǔ),因此單元的質(zhì)量是整個軟件質(zhì)量的基礎(chǔ)。在J2EE開發(fā)中,小可測試單位是封裝的類或?qū)ο螅琂Unit是一個很好的單元測試工具。Junit的核心類別是Testcase,每一個testcase代表一個命令對象,Testcase包含數(shù)個測試方法。用來測試被測類別中成員方法的輸出與預(yù)期的結(jié)果是否相同。Junit平臺還有一個核心類別是testSuite,每個testSuite代表一個復(fù)合的對象,一個testSuite 可以由多個Testcase或多個testSuite組成。

  在單元測試的基礎(chǔ)上,需要將所有的模塊按照要求組裝成系統(tǒng)。在開發(fā)過程中需要考慮的問題如下

  1.一個模塊的功能是否對另一個模塊的功能產(chǎn)生不利的影響。

  2.各個子功能組合起來,能否達到預(yù)期要求的父功能。

  因此在單元測試的同時可進行整合測試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問題。整合測試提供了J2EE容器的環(huán)境,可以快速輕易的檢驗出域?qū)ο笈c與 J2EE容器的互動行為是否合乎邏輯。因此整合測試的對象是以一個EJB,Servlet或JSP的程序代碼為基本單元。Cactus是為解決整合測試問題而誕生的工具。Cactus是Junit的一個擴展,但和Junit又有些不同,它分三種不同的測試類別:Jsp Testcase,Servlet testcase,filter testcase。Junit的測試代碼僅在客戶端,而cactus的測試代碼有服務(wù)器和客戶端兩個部分,協(xié)同工作。

  功能測試檢查在公共API邊界處的代碼,其目標(biāo)是檢驗在用例中描述的行為,測試系統(tǒng)是否滿足所需要的功能。每當(dāng)完成一個階段性的功能測試,也代表著完成了部分的系統(tǒng)功能。

  HttpUnit是為功能測試而發(fā)展起來的測試工具。HttpUnit是用java編寫的虛擬瀏覽器,用來模擬瀏覽器的內(nèi)部行為。HttpUnit平臺模擬使用者瀏覽網(wǎng)站所發(fā)出的request對象,將其送到目的網(wǎng)站,等網(wǎng)站發(fā)出response對象傳回給httpUnit。HttpUnit是一種黑箱作業(yè)形式的測試工具,因此只要專注如何編寫模擬瀏覽器行為的測試代碼即可。

  功能能否正確執(zhí)行很重要,但多用戶同時執(zhí)行的效果又如何?這需要性能測試。在J2EE應(yīng)用中,主要做的是壓力測試。大多數(shù)壓力測試檢驗應(yīng)用程序能夠在短時間內(nèi)響應(yīng)大量的用戶請求。JMeter測試工具能夠自動發(fā)送設(shè)定好的請求及跟蹤應(yīng)用程序的響應(yīng)時間。通過分析測試報告能夠找到J2EE應(yīng)用程序的瓶頸,并對應(yīng)用程序進行優(yōu)化。

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