在IBM Rational Application Developer 中實現 Java 程式碼

myattitude發表於2009-11-05

轉自:http://www.ibm.com/developerworks/cn/rational/r-cn-radv75racjava/index.html

覆蓋率分析介紹

覆蓋率是用來度量測試完整性的一個手段。軟體的覆蓋率總體上分為邏輯覆蓋(程式碼覆蓋率和結構化覆蓋)和功能覆蓋。通過覆蓋率資料,可以知道測試得是否充分,測試得弱點在哪些方面,進而可以指導我們設計能夠增加覆蓋率的測試用例。

程式碼覆蓋率是一種用來度量已執行的軟體測試水平的方法。收集覆蓋度量資料的過程很簡單:監測您的程式碼,並對所監測的版本執行測試。這樣就可以生成相關資料,展示已執行哪些程式碼以及未執行哪些程式碼。覆蓋測試是對單元測試的完美補充:單元測試可以顯示出是否程式碼按預期執行,而程式碼覆蓋率可以表明還需要對哪些程式碼進行測試。

使用 RAD 進行程式碼覆蓋率分析簡介

IBM® Rational® Application Developer(RAD),構建在用於構造和整合軟體開發工具的可擴充套件平臺 Eclipse 上,提供了非常強大的構架、開發、測試、分析及部署軟體解決方案的能力。

它不僅為設計開發人員提供了一個豐富的建模、架構設計和整合開發環境,同時也為開發測試人員定位執行時問題,提高程式碼質量提供了資料分析,比如記憶體洩漏分析,效能瓶頸分析以及程式碼覆蓋率分析。

IBM Rational Agent Controller(RAC)起源於資料收集引擎,是一個守護程式,讓客戶機應用可以啟動並管理本地或遠端的應用程式,併為其他應用程式提供有關正在執行的程式的一些資訊。它是和 Rational 開發工具(Rational Application Developer、Rational Web Developer 或 Rational Software Architect)一起安裝的元件。安裝以後它成為你的 PC 中執行的一個服務,管理代理以及代理產生的資料。在安裝 Agent Controller 之後,就可以使用以下的工具了:

1. 效能剖析工具,用來對程式進行剖析。(在要剖析的程式所在的系統上安裝 Agent Controller。)

2. 日誌記錄工具,用來匯出遠端日誌檔案(在要匯出日誌檔案的遠端系統上安裝並啟動 Agent Controller。)

3. 執行測試用例所需要的元件測試工具。(在執行測試用例的系統上安裝 Agent Controller。)

4. 可以進行程式碼插入、覆蓋和記憶體洩漏分析的一些執行時分析工具。比如:顯示那些行和方法被執行了?哪些程式碼在我當前寫的測試例中沒有被呼叫?

5. 用於 WebSphere® Application Server 上的遠端應用程式測試的工具。

關於程式碼覆蓋率分析的方式和過程,RAD7.0 和 RAD7.5 這兩個主流版本,有很大差別,建議讀者選擇適合自己需要的版本。

  • RAD7.0 的程式碼覆蓋率是 profiling 功能的一部分(依賴於 Agent Controller),而 RAD7.5 把程式碼覆蓋率從 profiling 功能中獨立了出來。
  • RAD7.0 支援程式碼中方法級別的覆蓋,而 RAD7.5 支援到行級程式碼覆蓋率。

下面將通過示例的方式,一步步地介紹如何實現程式碼覆蓋率分析。由於 RAD7.0 和 RAD7.5 的實現過程差異很大,本文會分別介紹這兩個版本。

RAD7.0 中如何做程式碼覆蓋率分析

準備知識

RAD 中的 Profiling 功能可以收集到 java 程式執行時的各種資料,本文僅討論程式碼覆蓋率方面的 Profiling 功能。Java 程式執行時,使用者的一系列操作在 JVM 層面可以觀察到程式碼的執行路徑,比如哪個 class 被呼叫了,哪個 method 被呼叫了,呼叫順序是什麼,呼叫了幾次等。

RAD 中的 Profiling 功能來自於 Eclipse 的 TPTP plugins,如果您使用 Eclipse 作為 IDE,可以登入 Eclipse 網站下載安裝。

RAD 使用 Rational Agent Controller(RAC) 來收集各項 profiling 資料,Rational Agent Controller 分為兩種,一種是 integrated agent controller,一種是 standalone agent controller。在一臺機器上,同時只能有一個 agent controller 起作用,因此在安裝 RAD 的機器上就不必再安裝 agent controller 了。

RAD7.0 中收集程式碼覆蓋率資料的方式概覽

RAD7.0 中只能獲取到 method 級別的程式碼覆蓋率資料。根據待分析的 java application 所處位置和所需軟體的不同,本文把 RAD7.0 的 profiling 分析劃分為四種方式。

首先概要介紹四種方式在什麼情況下使用,

方式一,java application 是在 RAD 中建立的一個 java project。

環境:一臺機器,該臺機器上僅安裝 RAD7.0。RAD 使用 integrated agent controller 來收集 profiling 資料,收集結束之後在“Profiling and Logging”檢視中展示。


圖 1. 測試 RAD 中的 Java project
圖 1. 測試 RAD 中的 Java project

方式二,java application 和 RAD 在同一臺機器,但是它不是 RAD 中的一個 Java project。

環境:一臺機器,該臺機器上僅安裝 RAD7.0。RAD 使用 integrated agent controller 來收集 profiling 資料,收集結束之後在“Profiling and Logging”檢視中展示。


圖 2. 測試非 RAD 中的 Java project
圖 2. 測試非 RAD 中的 Java project

方式三,java application 和 RAD 在不同機器上。

環境:兩臺機器,機器 A 上僅安裝 RAD7.0,機器 B 上僅安裝 Rational Agent Controller。 RAD 連線機器 B 上的 standalone agent controller 來收集 profiling 資料,收集結束之後在“Profiling and Logging”檢視中展示。


圖 3. 測試遠端機器上的 Java project
圖 3. 測試遠端機器上的 Java project

方式四,java application 和 RAC 在同一臺機器上,無 RAD。

環境:一臺機器,該臺機器上僅安裝 Rational Agent Controller。使用者新增 profiling 執行引數,在 command line 啟動 java application。RAC 即可收集 profiling 資料,收集到的資料儲存到磁碟檔案中。


圖 4. 僅使用 RAC 進行測試
圖 4. 僅使用 RAC 進行測試

RAD7.0 中收集程式碼覆蓋率資料的詳細過程

上面簡單介紹了四種方式的 profiling 分析,接下來詳細介紹這四種方式的操作過程。

接下來以一個 JDK 提供的例子程式作為分析物件,介紹 RAD7.0/RAC7.0 中如何通過 profiling 進行程式碼覆蓋率分析。

所用的 JDK 例子為 Notepad,包含了兩個原始碼檔案。在 RAD7. 0 中建立一個專案,叫 Notepad,然後把 JDK 提供的原始碼 java 檔案拷貝到 src 中,並把 resource 目錄拷貝到專案資料夾下,就完成了專案的建立。嘗試編譯執行一下,如果沒有問題,就可以進行下面的步驟了。

方式一,對 RAD 中的 java project 做 profiling 分析,這種方式下只能針對 RAD 中的 java project。

首先開啟 RAD 的”Profile…”選單:


圖 5. RAD Profile 選單
圖 5. RAD Profile 選單

檢視大圖

然後在”Java Application”類別下建立一個新的 configuration,在這個 configuration 中指定我們需要做 Profiling 的 Project 以及 Main Class


圖 6. RAD Profile 介面
圖 6. RAD Profile 介面

檢視大圖

接著在 Monitor 標籤中選擇需要收集的資料,這裡我們選擇”Method 程式碼覆蓋率”,也就是 method 級別的程式碼覆蓋率資料。


圖 7. RAD Profile 中程式碼覆蓋率選項
圖 7. RAD Profile 中程式碼覆蓋率選項

檢視大圖

然後點選”Profile”按鈕,RAD 就會啟動前面指定的 Java application,我們在啟動的 Application 中做一些操作:


圖 8. 測試例程
圖 8. 測試例程

檢視大圖

對啟動的 Application 中做的一系列操作,通過 Profiling 記錄了以下資訊:哪個 class 被呼叫了,哪個 method 被呼叫了,呼叫了幾次等。操作結束之後關閉 Application,那麼 Profiling 的操作也就結束了,這時候 RAD 會把記錄下來的程式碼覆蓋率資料以 report 方式展示出來:


圖 9. 測試結果
圖 9. 測試結果

檢視大圖

方式二,對本機上的一個 java application 做 profiling 分析,這種方式下 java application 只需能夠在命令列啟動即可,不需要在 RAD 中建立 java project。

首先開啟 RAD 的“Profile…”選單,在“External Java Application”類別下建立一個新的 configuration,在這個 configuration 中指定連線方式為”Local Direct Connection”。


圖 10. 建立遠端 Profile
圖 10. 建立遠端 Profile

指定我們需要做 Profiling 的 java application 以及 Main Class:


圖 11. 建立遠端 Profile(2)
圖 11. 建立遠端 Profile(2)

接著在 Monitor 標籤中選擇需要收集的資料,這裡我們選擇“Method 程式碼覆蓋率”,也就是 method 級別的程式碼覆蓋率資料。


圖 12. 啟用程式碼覆蓋率選項
圖 12. 啟用程式碼覆蓋率選項

然後點選“Profile”按鈕,RAD 就會啟動前面指定的 Java application,我們在啟動的 Application 中做一些操作:


圖 13. 測試例程
圖 13. 測試例程

檢視大圖

上述操作呼叫了哪個 class,呼叫了哪個 method,呼叫了幾次等資料都會被一一記錄下來。操作結束之後關閉 Application,RAD 會把記錄下來的程式碼覆蓋率資料以 report 方式展示出來:


圖 14. 測試結果
圖 14. 測試結果

檢視大圖

方式三,對遠端機器上的一個 java application 做 profiling 分析,這種方式更加靈活,RAD 能夠通過 RAC 啟動遠端的 java application,並且收集執行資料,生成程式碼覆蓋率報告。

首先開啟 RAD 的“Profile…”選單,在“External Java Application”類別下建立一個新的 configuration,在這個 configuration 中新增一個到遠端 agent controller 所在機器的連線。


圖 15. 新增遠端連結
圖 15. 新增遠端連結

然後測試一下到遠端機器的連線是否可以工作:


圖 16. 測試遠端連結
圖 16. 測試遠端連結

指定我們需要做 Profiling 的 java application 以及 Main Class:


圖 17. 指定測試物件
圖 17. 指定測試物件

接著在 Monitor 標籤中選擇需要收集的資料,這裡我們選擇“Method 程式碼覆蓋率”,也就是 method 級別的程式碼覆蓋率資料。


圖 18. 啟用程式碼覆蓋選項
圖 18. 啟用程式碼覆蓋選項

然後點選“Profile”按鈕,RAD 通過 agent controller 啟動遠端機器上的 Java application,我們在啟動的 Application 中做一些操作:


圖 19. 測試例程
圖 19. 測試例程

其間,哪個 class 被呼叫了,哪個 method 被呼叫了,呼叫了幾次等資料會被 profiling 記錄下來。操作結束之後關閉 Application,那麼 Profiling 的操作也就結束了,RAD 將從遠端機器上收集下來的程式碼覆蓋率資料以 report 方式展示出來:


圖 20. 測試結果
圖 20. 測試結果

檢視大圖

方式四,機器上只安裝了 RAC7.0,沒有安裝 RAD。通過新增 profiling 執行引數,在 command line 啟動 java application。RAC 即可收集 profiling 資料,收集到的資料儲存到磁碟檔案中。

例子程式 Notepad 的啟動方法命令是:

java -XrunpiAgent:server=standalone,filters=filter.txt,file=MyCoverage.trcxml -jar Notepad.jar

可以看到,和普通的執行 java application 程式的命令相比,多了一個引數:

-XrunpiAgent:server=standalone,filters=filter.txt,file=MyCoverage.trcxml

這個引數中有三個選項:

Server=standalone,表明這個 RAC 是獨立執行的,和 RAD 沒有互動。

Filters=filter.txt,指定一個 filter 檔案,定義需要 / 不需要收集什麼樣的資料。

File=MyCoverage.trcxml,採集到的程式碼覆蓋率資料放在這個檔案裡。

上面提到的第二個選項“Filters=filter.txt”需要說明一下,這個檔案是一個文字檔案,每一行有三個欄位,以空格隔開(package/class method mode)。下面是一個例子,讀者一看就明白了:

com.ibm* * EXCLUDE

com.sun* * EXCLUDE

COM.ibm* * EXCLUDE

java* * EXCLUDE

org* * EXCLUDE

sun* * EXCLUDE

上面提到的第三個選項也需要說明一下,RAC 獲取到的程式碼覆蓋資料就儲存在這個檔案裡。它是一個 xml 檔案,使用者可以自己寫程式解析這個檔案,也可以使用 RAD 開啟它並檢視程式碼覆蓋情況(在 RAD 的“Profiling and Logging”檢視中匯入即可)。

RAD7.5 中如何做程式碼覆蓋率分析

RAD7.5 中幾乎完美的支援了 java 程式的“行級”程式碼覆蓋率。不但可以在 IDE 中方便的設定和展示測試結果,同時也很好的支援了在 command line 環境下的 do instrument,生成測試 log 以及生成結果報告。後者為行級程式碼覆蓋率的測試和生成報告的全自動化提供了可能。

在安裝 RAD7.5 時,行級程式碼覆蓋率功能會作為一個元件包含在可選元件列表中,預設安裝時是選中的。

IDE 中進行行級程式碼覆蓋率測試

在這裡,本文同樣以 JDK 自帶的 Notepad 為例,講述如何在 RAD7.5 中進行行級程式碼覆蓋率測試。

啟用程式碼覆蓋率功能

在專案的屬性頁中,程式碼覆蓋率是一個獨立的項,預設是不啟用的。選中“Enable 程式碼覆蓋率”,就啟用了程式碼覆蓋率。下面的引數是對程式碼覆蓋率進行標註的設定,如果沒有達到設定的程式碼覆蓋率,相應的物件會被標註為紅色,反之則會被標註為綠色。再下面是過濾器的設定,這個根據具體的專案可以設定哪些原始碼檔案會進行測試或者哪些會被排除在外。


圖 21. 啟用程式碼覆蓋率測試功能
圖 21. 啟用程式碼覆蓋率測試功能

檢視大圖

在確定選擇之後,RAD 彈出對話方塊,為了啟用程式碼覆蓋率,要重新 build 整個專案,在這裡請選擇 Yes。否則程式碼覆蓋率還是沒有被啟用,直到下一次重新 build 專案。


圖 22. 重新 build 專案
圖 22. 重新 build 專案

在專案被重新 build 後,專案中會增加一項 Referenced Libraries,這個 RLC.jar 就是完成行級程式碼覆蓋率功能的檔案。


圖 23. 程式碼覆蓋率功能檔案
圖 23. 程式碼覆蓋率功能檔案

測試及生成結果

下面就開始進行程式碼覆蓋率測試。先執行專案,彈出了 Notepad 的介面,在這裡我們只做一次開啟檔案的操作,來看看開啟檔案的操作覆蓋了哪些程式碼。


圖 24. 測試例程
圖 24. 測試例程

點選 Open 之後關閉整個 Notepad 視窗,結束專案的執行。然後來到 RAD7.5 中開啟 Notepad 專案的 src 目錄,這時 package 和原始碼檔案以及每一個可以開啟的節點都被標上了顏色,後面還有一個百分比數字。顏色就表示這次對該物件,程式碼覆蓋率是否達到了之前設定的值。數字就是行級程式碼覆蓋率。


圖 25. RAD 顯示測試結果
圖 25. RAD 顯示測試結果

檢視大圖

在圖中,我們也可以看到在程式碼顯示視窗,有綠色和紅色的標識來顯示哪些程式碼行被覆蓋了而哪些沒有被覆蓋到。

生成報告

很多情況下對程式碼覆蓋率的測試不只是在 IDE 中觀察,而需要輸出報告。RAD7.5 提供了完整的報告生成功能。

選擇選單 Run->Code Coverage->Generate Report,列出了可以生成報告的專案和測試狀態。使用者可以選擇輸出 Eclipse 或者 HTML 報告格式,也可以選擇報告儲存的地點。


圖 26. 報告生成介面
圖 26. 報告生成介面

下面是一個 Eclipse 格式的報告的例子,在圖中,我們可以清楚的看到總行數,覆蓋到的行數以及百分比。雙擊某個想要檢視的專案就會開啟對應的原始碼檢視。


圖 27. Eclipse 格式報告
圖 27. Eclipse 格式報告

這裡是一個 HTML 報告的例子,HTML 格式的報告無法做到包含所有的原始碼,但優點是可以直接在測試報告的網站中使用,或者直接釋出給所有關心測試結果的人檢視。


圖 28. HTML 格式報告
圖 28. HTML 格式報告

檢視大圖


圖 29. HTML 格式報告 (2)
圖 29. HTML 格式報告 (2)

檢視大圖

Command Line 環境中進行行級程式碼覆蓋率測試

在 IDE 環境中很多細節都由 RAD 處理了,使用者之需要選擇一些選項就可以了,可是對於需要在 Command Line 環境下進行測試和生成報告的使用者來說,就需要了解更多的細節。

啟用程式碼覆蓋

對於一個普通的 java 專案 jar 包,首先需要對它做 instrument。這個過程與在 IDE 中對某個專案啟用程式碼覆蓋,並且重新構建是一樣的。只不過程式碼覆蓋需要的內容被直接插入到了 jar 包中。我們用沒有 enable 程式碼覆蓋率的 Notepad 專案輸出 Notepad.jar 作為下面的例子。(在輸出 jar 檔案時,RAD7.5 還提供了一個直接輸出做過 instrument 的 jar 檔案的選擇。)

要做 instrument,首先需要在系統中設定 ECLIPSE_HOME 和 JAVA_HOME 環境變數。如果沒有這兩個變數,工具會從 RAD 安裝目錄下查詢。為了避免以後的麻煩,還是設定上更為穩妥。兩個變數的內容顧名思義,就不用多解釋了。

然後尋找到 instrument.bat 檔案。該檔案應該被儲存在 RAD7.5 安裝時設定的 Shared 目錄中。如果機器上還安裝過其他的 Rational 產品,該目錄有可能與 RAD7.5 不在同一個父目錄下。比如使用者安裝過 RFT7.0 在 C:\ibm 目錄,那麼該 Shared 目錄就是 c:\ibm\SDP70Shared。在作者的機器上,instrument.bat 位於

C:\IBM\SDP70Shared\plugins\com.ibm.rational.llc.engine_1.0.0.v20080821_1200\Scripts 目錄下。為了使用方便你可以選擇把這個路徑加入到系統 Path 環境變數中。

按照 RAD7.5 的幫助文件,我們就可以來對 Notepad.jar 做 instrument 了。可實際上還有一個路徑需要新增才可以。在 Rational 產品的 Shared 目錄中查詢 ort.eclipse.hyades.probekit 的最新版本,然後找到裡面包含的 ProbeInstrumenter.exe 所在的目錄,新增到系統 Path 環境變數中。在作者的機器上,該路徑是:

C:\IBM\SDP70Shared\plugins\org.eclipse.hyades.probekit_4.2.400.v200809010100\os\win32\x86

我們先把 Notepad.jar 放到 c:\source 目錄下,並建立好 c:\output 目錄作為輸出目錄,然後按照下面的格式即可對 Notepad.jar 進行 instrument 操作:

Instrument –in c:\source\Notepad.jar –output c:\output

如果成功的話,就會在 c:\output 下面生成一個 Notepad.jar,這個 jar 檔案就可以用來做程式碼覆蓋率測試了。

程式碼覆蓋測試

把 Notepad 的 resource 目錄拷貝到 c:\output 目錄。這時如果嘗試執行 Notepad.jar,會產生某些 class 無法找到得錯誤。這是因為注入到 Notepad.jar 中的程式碼覆蓋率內容需要幾個 jar 檔案的支援。下面是我執行做過 instrument 之後的 Notepad.jar 檔案的命令:

Java -Dcoverage.out.file=C:\coverage_data.coveragedata -classpath d:\work\javades\Notepad.jar;C:\IBM\SDP70Shared\plugins\org.eclipse.hyades.probekit_4.2.400.v200809010100\probekit.jar;C:\IBM\SDP70Shared\plugins\com.ibm.rational.llc.engine_1.0.0.v20080821_1200\RLC.jar Notepad

其中 Dcoverage.out.file 引數指定的就是程式碼覆蓋測試的結果檔案。在 classpath 中指定的兩個 jar 檔案也是必須的。

如同前面介紹的在 IDE 中做程式碼測試的過程,在 Notepad 的介面中進行需要的操作,然後退出。

這時檢查 c:\coverage_data.coveragedata 檔案,已經被產生並且有了內容。該檔案是一個 XML 檔案,記錄了詳細的行級程式碼覆蓋內容,使用者可以根據檔案的內容自行生成測試報告。

當然更為方便的做法還是利用 RAD7.5 來生成報告。

生成報告

在 RAD7.5 的 IDE 中選中 Notepad 專案,然後選擇選單 File->Import,選擇 Code Coverage->Code Coverage Data File,選擇 Data File is located on the file system。選擇剛才生成的 c:\coverage_data.coveragedata,選擇匯入的資料夾和專案。如果該專案沒有 enable 程式碼覆蓋的話,會有一個對話方塊詢問,選擇 yes。該檔案就被匯入到 Notepad 專案中。

選擇 Run->Code Coverage->Generate Report,可以看到在可以生成報告的列表中多了一項 coverage_data,選擇它生成的報告就是剛才匯入的 coverage_data.coveragedata 資料檔案中的內容。

這個生成報告的過程也可以通過 Ant 來完成。首先需要下載 BIRT Runtime Report Engine,這個工具可以在http://download.eclipse.org/birt/downloads下面下載到。然後指定 LLC_COMMON_PLUGIN, LLC_REPORT_PLUGIN 和 BIRT_HOME 三個引數到各自的內容。在作者的機器上,設定內容為:

LLC_COMMON_PLUGIN= C:\IBM\SDP70Shared\plugins\com.ibm.rational.llc.engin_1.0.0.v20080821_1200

LLC_REPORT_PLUGIN= C:\IBM\SDP70Shared\plugins\com.ibm.rational.llc.report.birt_1.0.0.v20080818_1950

BIRT_HOME=c:\birt-runtime-2_5_0

在 Ant 中設定的例子為:

然後定義一個新的 task:

用下面的內容定義報告的引數:

使用這種方法只能生成 HTML 格式的 report,不過對於 command line 環境來說,這就足夠了,eclipse 格式的報告並無意義。

RSA 中如何進行程式碼覆蓋率分析

RSA 是一個用於創新和協作的整合平臺。它是行業最佳、全面的工具集合,為使用者的通訊和協作提供便利,可以幫助使用者創新和加速交付軟體開發專案。

RSA 所能提供比 RAD 更多的新特性有:

  • 利用各種不同領域中最新的建模和圖形編輯技術,這些領域包括 UML™ 2、Java、XSD、Web、技術基礎設施等等。
  • 建立和利用使用者自己的領域特定建模語言 (DSML),以表示您獨特的業務問題和解決方案領域。
  • 確保使用者的軟體解決方案始終正確地部署——使用智慧工具進行部署定義和驗證。
  • 全面支援更簡單的、全新的程式設計模型,包括 Web2.0、J2EE 5、EJB3.0、JPA。
  • 採用可追溯的平臺,更高效地管理使用者的開發風險和專案,幫助使用者分析從需求到設計再到實現的影響。
  • 通過已包含的和定製的轉換功能,以及已有的創作工具,啟動開發流程並自動化單調的任務。
  • 包含 IBM Rational Application Developer,能夠提供完整的設計和開發體驗。
  • 架構分析工具可用於稽核和管理使用者的 java 和麵向服務應用程式的結構。
  • 面向並行開發和架構重構的靈活的模型管理,使使用者能夠分離、組合、比較和合並模型和模型片段。
  • 與 IBM Rational 軟體交付平臺無縫整合的協作平臺,這些軟體交付平臺包括 IBM Rational Team Concert、IBM Rational Asset Manager、IBM Rational Requirements Management and Change Management 解決方案。

因為在 RSA 中包含了完整的 RAD,所以在 RSA7.0 和 RSA7.5 中可以使用與 RAD 完全相同的方式實現程式碼覆蓋率測試。程式碼覆蓋率涉及到的選單位置在 RSA 中也和在 RAD 中相同。使用 RSA 的使用者使用本文提供的方案可以實現和 RAD 一樣的程式碼覆蓋率分析功能。

總結

如前所述,RAD7.0 和 7.5 兩個版本上以不同的方式支援了程式碼覆蓋分析,使用者可以根據自己的需要進行選擇。

RAD7.0 的使用者可以很方便地針對本機以及遠端機器上的 java 程式進行程式碼覆蓋分析,分析報告可自動生成。同時它也支援 Command Line 方式收集程式碼分析資料並儲存到檔案,這種方式比較容易和使用者已有的自動化功能測試結合進行程式碼覆蓋分析。

RAD7.5 提供了完整靈活的 IDE 及 Command Line 環境進行程式碼覆蓋率分析的支援。開發人員可以很方便的對自己編寫的單元測試或者臨時的手工測試進行程式碼覆蓋率的檢視,以提高程式碼質量。同時對於無人值守的全自動單元測試和功能測試來說,RAD7.5 也提供了強大的支援,可以在與自動化測試工具結合後,實現自動做 instrument,自動生成報告的流程。並且做過 instrument 的 jar 檔案或 class 檔案基本不會影響程式執行的速度,這樣對正常測試的影響就被減到了最小。

程式碼覆蓋率在實際應用中常與自動測試相結合以達到最好的效果。自動測試過程中的程式碼覆蓋率分析,以最小的測試代價,最精確的分析,來獲得當前的測試完成情況,為測試人員提高了良好的分析報告,以便測試人員改進和新增新的測試用例。大大提高了迴歸測試的測試效率與質量。

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

相關文章