Emma:優(yōu)點:1 開源軟件;2 支持ANT TASK;Emma 是開源的,同時它對應(yīng)用程序執(zhí)行速度的影響非常小。
缺點:1 ANT TASK的參數(shù)指定較弱,coverage參數(shù)需要追加配置文件。
EMMA是一個免費且開源的Java代碼覆蓋率
測試工具,100%純Java編寫,不依賴與任何第三方庫。和其他代碼覆蓋率測試工具不同,EMMA支持大型項目的團隊開發(fā),每個開發(fā)人員都可以從中受益。
EMMA通過對Class文件進行增強以測試覆蓋率,它提供了Offline和Fly兩種模式,在Fly模式下,EMMA不改動編譯后的Class文件,僅僅在Class文件被ClassLoader裝載時才進行增強?!続OP技術(shù)】
EMMA支持對類,方法,代碼行和基本的分支語句的覆蓋率測試,并提供了多種格式的報告,包括純文本,HTML和XML,所有的報告都可以進行詳細設(shè)置以獲得定制報告。
使用EMMA時,不需要獲得源代碼就可進行覆蓋率測試,此外,EMMA還支持對整個jar文件測試。
EMMA默認提供了對Ant的集成,通過擴展EMMA還可以提供對Maven和Eclipse的支持。
EclEmma:
EclEmma的出現(xiàn)彌補了 Emma 用戶一個大的遺憾 ---- 缺乏圖形界面以及對集成開發(fā)環(huán)境的支持。將 Eclipse 和 Emma 這兩個在各自領(lǐng)域最為優(yōu)秀的工具結(jié)合起來,這就是 EclEmma 為我們提供的。接下來,我們就要在后續(xù)章節(jié)中和讀者朋友一起看看 EclEmma 為開發(fā)人員提供了什么。
Cobertura:
優(yōu)點:1 開源軟件;2 支持MARVEN
缺點:1 可定制參數(shù)太少,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 中國
軟件開發(fā)中心實驗室
覆蓋測試是衡量測試質(zhì)量的一個重要指標。在對一個軟件產(chǎn)品進行了
單元測試、組裝測試、集成測試以及接受測試等繁多的測試之后,我們能不能就此對軟件的質(zhì)量產(chǎn)生一定的信心呢?這就需要我們對測試的質(zhì)量進行考察。如果測試僅覆蓋了代碼的一小部分,那么不管我們寫了多少
測試用例,我們也不能相信軟件質(zhì)量是有保證的。相反,如果測試覆蓋到了軟件的絕大部分代碼,我們就能對軟件的質(zhì)量有一個合理的信心。本文將介紹一個優(yōu)秀的開源
軟件測試工具 EclEmma,它能夠?qū)τ?Java 語言編寫的程序進行覆蓋測試,從而對程序運行的結(jié)果生成詳盡的覆蓋測試報告。
======================== 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發(fā)布,配合GCC共同實現(xiàn)對C/C++文件的語句覆蓋和分支覆蓋測試;
與程序概要分析工具(profiling tool,例如gprof)一起工作,可以估計程序中哪一段代碼最耗時;
注:程序概要分析工具是分析代碼性能的工具。
2. gcov能做什么?
gcov可以統(tǒng)計
每一行代碼的執(zhí)行頻率
實際上哪些代碼確實被執(zhí)行了
每一段代碼(section code)的耗時(執(zhí)行時間)
因此,gcov可以幫你優(yōu)化代碼,當然這個優(yōu)化動作還是應(yīng)該有開發(fā)者完成。
1. Lcov是什么?
是GCOV圖形化的前端工具
是Linux Test Project維護的開放源代碼工具,最初被設(shè)計用來支持Linux內(nèi)核覆蓋率的度量
基于Html輸出,并生成一棵完整的HTML樹
輸出包括概述、覆蓋率百分比、圖表,能快速瀏覽覆蓋率數(shù)據(jù)
支持大項目,提供三個級別的視圖:目錄視圖、文件視圖、源碼視圖
========================
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的設(shè)計)。
單元測試是幾個現(xiàn)代敏捷開發(fā)方法的基礎(chǔ),使得PHPUnit成為許多大型PHP項目的關(guān)鍵工具。
這個工具也可以被Xdebug擴展用來生成代碼覆蓋率報告 ,并且可以與phing集成來自動測試,最后它還可以和Selenium整合來完成大型的自動化集成測試。