測試覆蓋率工具:EclEmma


測試覆蓋率工具:EclEmma

2016-08-26

目錄

1 測試覆蓋率實現技術
2 EclEmma介紹
3 EclEmma測試覆蓋率指標
4 EclEmma安裝
5 示例項目介紹
  5.1 創建項目
  5.2 用Coverage as TestNG Suite跑用例
  5.3 跑后結果
  5.4 導出HTML報告
  5.5 導入導出合並覆蓋率Session
  5.6 測試引用的jar包的覆蓋率

1 測試覆蓋率實現技術


 返回

  • Instrumentation:代碼注入,在產品代碼的關鍵位置插入統計代碼,從而獲得測試覆蓋率數據
    • Class Instrumentation: 把統計代碼插入編譯好的.class文件
    • Source Instrumentation:把統計代碼插入源代碼並編譯成新的.class文件
  • Custom JVM:在JVM中把統計代碼插入.class。測試覆蓋率分析可以在JVM執行測試代碼的過程中完成

2 EclEmma介紹


 返回

  • 一個優秀的開源軟件測試工具
  • eclipse的一個插件
  • 能夠對由 Java 語言編寫的程序進行覆蓋測試
  • 能夠在工作平台中啟動
  • 直接對代碼覆蓋進行分析
  • 覆蓋結果將立即被匯總並在Java源代碼編輯器中高亮顯示
  • 也可程序運行的結果生成詳盡的覆蓋測試報告
  • 可以結合JUnit、TestNG使用
  • 工作原理:Class Instrumentation

3 EclEmma測試覆蓋率指標


 返回

  • 行覆蓋率:  部分行覆蓋:a>b?a:b
  • 基本語句塊覆蓋率:  基本語句塊:沒有if-else分支的代碼區域
  • 類覆蓋率:  由JVM加載並初始化
  • 方法覆蓋率:  第一個基本語句塊被執行

4 EclEmma安裝


 返回

  1. 啟動eclipse -> 點擊Help菜單 -> Install New Software,在彈出的對話框中,點擊Add
  2. 輸入Name,例如EclEmma。輸入Location:http://update.eclemma.org/
  3. 安裝后重新啟動eclipse,如果成功安裝,工具欄上會出現一個新的按鈕,如圖1所示

 

圖1 EclEmma按鈕

5 示例項目介紹


 返回

下面通過項目介紹如何在使用了TestNG測試框架的項目中的使用EclEmma測試覆蓋率

TestNG請參考: TestNG 入門教程

5.1 創建項目

項目中使用TestNG測試框架,包含被測類'Calculator'和測試類'CalculatorTest'。

源代碼:TestngAndEclEmmaDemo.zip

圖2 測試結構

5.2 用Coverage as TestNG Suite跑用例

圖3 Coverage as TestNG Suite

 

5.3 跑后結果

圖5 標注源代碼和Coverage視圖 

 

5.4 導出HTML報告 

如何導出:
  1. 要導出的session (session:一次測試覆蓋率交互活動)
  2. 選擇報告的類型(HTML/XML/Text/EMMA session)
  3. 存放位置 
 圖6 導出報告 

圖7 HTML報告

HTML報告可以逐層展開,點擊方法還可以看到代碼的覆蓋情況。

列名含義:

  • missed Instructions代碼覆蓋率,
  • Missed Branches邏輯分支覆蓋率,
  • Missed Cxty判斷執行數,
  • missed Lines代碼行數,
  • Methods方法個數。 

5.5 導入導出合並覆蓋率Session  

既可以導出session,也可以導入session,還可以合並session,這樣,可以將多次測試覆蓋率的結果進行合並

圖8 合並Session

5.6 測試引用的jar包的覆蓋率

圖9 測試引用的jar包的覆蓋率

 

其他Eclipse覆蓋率插件

EclEmma、Clover與Cobertura插件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM