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

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

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

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

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

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

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

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

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

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

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

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

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

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