Emma:優點:1 開源軟件;2 支持ANT TASK;Emma 是開源的,同時它對應用程序執行速度的影響非常小。
缺點:1 ANT TASK的參數指定較弱,coverage參數需要追加配置文件。
EMMA是一個免費且開源的Java代碼覆蓋率
測試工具,100%純Java編寫,不依賴與任何第三方庫。和其他代碼覆蓋率測試工具不同,EMMA支持大型項目的團隊開發,每個開發人員都可以從中受益。
EMMA通過對Class文件進行增強以測試覆蓋率,它提供了Offline和Fly兩種模式,在Fly模式下,EMMA不改動編譯后的Class文件,僅僅在Class文件被ClassLoader裝載時才進行增強。【AOP技術】
EMMA支持對類,方法,代碼行和基本的分支語句的覆蓋率測試,并提供了多種格式的報告,包括純文本,HTML和XML,所有的報告都可以進行詳細設置以獲得定制報告。
使用EMMA時,不需要獲得源代碼就可進行覆蓋率測試,此外,EMMA還支持對整個jar文件測試。
EMMA默認提供了對Ant的集成,通過擴展EMMA還可以提供對Maven和Eclipse的支持。
EclEmma:
EclEmma的出現彌補了 Emma 用戶一個大的遺憾 ---- 缺乏圖形界面以及對集成開發環境的支持。將 Eclipse 和 Emma 這兩個在各自領域最為優秀的工具結合起來,這就是 EclEmma 為我們提供的。接下來,我們就要在后續章節中和讀者朋友一起看看 EclEmma 為開發人員提供了什么。
Cobertura:
優點:1 開源軟件;2 支持MARVEN
缺點:1 可定制參數太少,UTF-8編碼文件,直接掛掉,從文件的輸出上來看,還是以xml,html生成為主。
http://www.ibm.com/developerworks/cn/java/j-lo-eclemma/index.html 使用 EclEmma 進行覆蓋測試
2007 年 5 月 10 日;級別: 初級 ;甘 志 (ganzhi@cn.ibm.com), 軟件工程師,
IBM 中國
軟件開發中心實驗室
覆蓋測試是衡量測試質量的一個重要指標。在對一個軟件產品進行了
單元測試、組裝測試、集成測試以及接受測試等繁多的測試之后,我們能不能就此對軟件的質量產生一定的信心呢?這就需要我們對測試的質量進行考察。如果測試僅覆蓋了代碼的一小部分,那么不管我們寫了多少
測試用例,我們也不能相信軟件質量是有保證的。相反,如果測試覆蓋到了軟件的絕大部分代碼,我們就能對軟件的質量有一個合理的信心。本文將介紹一個優秀的開源
軟件測試工具 EclEmma,它能夠對由 Java 語言編寫的程序進行覆蓋測試,從而對程序運行的結果生成詳盡的覆蓋測試報告。
======================== linux+ c/c++ +gcc: gcov/lcov: http://ggcov.sourceforge.net http://blog.csdn.net/livelylittlefish/article/details/6321861 http://blog.csdn.net/livelylittlefish/article/details/6321887 |
1. gcov是什么?
Gcov is GCC Coverage
是一個測試代碼覆蓋率的工具
是一個命令行方式的控制臺程序
伴隨GCC發布,配合GCC共同實現對C/C++文件的語句覆蓋和分支覆蓋測試;
與程序概要分析工具(profiling tool,例如gprof)一起工作,可以估計程序中哪一段代碼最耗時;
注:程序概要分析工具是分析代碼性能的工具。
2. gcov能做什么?
gcov可以統計
每一行代碼的執行頻率
實際上哪些代碼確實被執行了
每一段代碼(section code)的耗時(執行時間)
因此,gcov可以幫你優化代碼,當然這個優化動作還是應該有開發者完成。
1. Lcov是什么?
是GCOV圖形化的前端工具
是Linux Test Project維護的開放源代碼工具,最初被設計用來支持Linux內核覆蓋率的度量
基于Html輸出,并生成一棵完整的HTML樹
輸出包括概述、覆蓋率百分比、圖表,能快速瀏覽覆蓋率數據
支持大項目,提供三個級別的視圖:目錄視圖、文件視圖、源碼視圖
========================
Python代碼覆蓋工具coverage.py介紹(http://nedbatchelder.com/code/coverage/)
http://magustest.com/blog/whiteboxtesting/python-coverage-py/
========================
JavaScript:
JavaScript測試覆蓋率檢測工具JSCoverage
========================
PHP:
PHPUnit是一個輕量級的PHP測試框架。它是在PHP5下面對JUnit3系列版本的完整移植,是xUnit測試框架家族的一員(它們都基于模式先鋒Kent Beck的設計)。
單元測試是幾個現代敏捷開發方法的基礎,使得PHPUnit成為許多大型PHP項目的關鍵工具。
這個工具也可以被Xdebug擴展用來生成代碼覆蓋率報告 ,并且可以與phing集成來自動測試,最后它還可以和Selenium整合來完成大型的自動化集成測試。