軟體測試技術在J2EE專案中的應用

shbwf發表於2009-07-02

系統軟體已深入到生活各方面,對軟體質量的要求在不斷提高,軟體測試成為軟體開發中一個重要部分,對軟體測試技術要求也越來越高。軟體測試是使用為發現錯誤所選擇的輸入和狀態的組合而執行程式碼的過程。軟體測試技術包括白盒測試和?脅饈浴|盒測試不考慮內部邏輯結構,只依據程式規格說明書,檢查程式功能。白盒測試利用程式內部邏輯結構,設計或選擇測試用例,對程式所有邏輯路徑進行測試。J2EE應用開發越來越流行,並應用到各種大型電子商務中,這些電子商務對軟體質量要求非常高,要是在應用中出現錯誤,會造成嚴重的損失。本文給出及J2EE專案開發時的測試過程,以及各測試階段用到的軟體測試工具。

J2EE是一種利用java2平臺來簡化與企業解決方案的開發,部署和管理相關的複雜問題的體系結構。J2EE技術的基礎是java2平臺的標準版。 J2EE不僅鞏固了標準版中的許多優點,還提供了對EJB,ServletJSPXML的全面支援。J2EE包括四個層次,分別是客戶層,web層,業務層和企業資訊系統層。一個多層的分散式應用模型意味著根據功能應用邏輯被劃分成元件,並可以在同一伺服器或不同的伺服器上安裝組成J2EE應用的這些不同的元件。J2EE結構複雜,層次多,需求會不斷更新,如何保證最終開發的質量變得至關重要。

在極限程式設計思想中定義了兩種測試的型別。

1.單元測試,對系統內部模組的測試。為了適應J2EE平臺,還發展出與J2EE容器緊密結合的整合測試。

2.功能測試。在軟體測試中還有一個經常聽到的是效能測試。由於效能測試與客戶的需求密不可分,將它歸類於接受度測試的延伸應用。考慮到J2EE的結構和技術,不但要對其中用到的技術進行測試,還要測試各層之間的聯絡。

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

單元是整個軟體工程的基礎,因此單元的質量是整個軟體質量的基礎。在J2EE開發中,最小可測試單位是封裝的類或物件,JUnit是一個很好的單元測試工具。Junit的核心類別是Testcase,每一個testcase代表一個命令物件,Testcase包含數個測試方法。用來測試被測類別中成員方法的輸出與預期的結果是否相同。Junit平臺還有一個核心類別是testSuite,每個testSuite代表一個複合的物件,一個testSuite 可以由多個Testcase或多個testSuite組成。

在單元測試的基礎上,需要將所有的模組按照要求組裝成系統。在開發過程中需要考慮的問題如下

1.一個模組的功能是否對另一個模組的功能產生不利的影響。

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

因此在單元測試的同時可進行整合測試,發現並排除在模組連線中可能出現的問題。整合測試提供了J2EE容器的環境,可以快速輕易的檢驗出域物件與與 J2EE容器的互動行為是否合乎邏輯。因此整合測試的物件是以一個EJBServletJSP的程式程式碼為基本單元。Cactus就是為解決整合測試問題而誕生的軟體測試工具。Cactus是軟體測試工具Junit的一個擴充套件,但和Junit又有些不同,它分三種不同的測試類別:Jsp TestcaseServlet testcasefilter testcaseJunit的測試程式碼僅在客戶端,而cactus的測試程式碼有伺服器和客戶端兩個部分,協同工作。

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

HttpUnit是為功能測試而發展起來的測試工具。HttpUnit是用java編寫的虛擬瀏覽器,用來模擬瀏覽器的內部行為。HttpUnit平臺模擬使用者瀏覽網站所發出的request物件,將其送到目的網站,等網站發出response物件傳回給httpUnitHttpUnit是一種黑箱作業形式的測試工具,因此只要專注如何編寫模擬瀏覽器行為的測試程式碼即可。

本文轉載自51Testing軟體測試網(檢視全文):http://www.51testing.com/html/06/n-120506.html

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1023696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章