How complete are your tests? Code Coverage in Eclipse Joachim Hofer 09/10/10 Code Coverage in Eclipse 1 / 10 Outline ● Motivation ● Types of Code Coverage ● Case Study: ● 09/10/10 ● Testing TestBench ● Tool Requirements Code Coverage Tools Code Coverage in Eclipse 2 / 10 Why Code Coverage? (1) ● Tests need goals! ● Black Box: – – ● White Box: – – 09/10/10 Requirement Coverage System Tests Code Coverage Integration/Unit Tests Code Coverage in Eclipse 3 / 10 Why Code Coverage? (2) ● ● Not for optimizing yet another code metric! ● Easy to increase in all the wrong ways... ● False sense of security What can go wrong with developer tests? ● … don't test what they are intended to ● … won't get executed ● … can be elaborate in the wrong places → Analyze their coverage! 09/10/10 Code Coverage in Eclipse 4 / 10 Types of Code Coverage ● ● Coverage Types ● Statement Coverage ● Branch Coverage ● Condition Coverage ● Path Coverage Not good enough! Often good enough... Difficult... Usually impractical. Instrumentation Types ● ● 09/10/10 Based on Source Code Based on Bytecode Usually recommended, but... JVM multi-language support! Code Coverage in Eclipse 5 / 10 Case Study: Testing TestBench ● System Test (QF-Test, TestBench) ● ~16k tests run every night ● Takes 10 hours ● Video capturing (due to popular request: done via vnc und vnc2flv) ● Integration/Unit Test (TestNG) ● > 1000 tests run after each commit ● Takes 10 minutes ● Complemented by FindBugs 09/10/10 Code Coverage in Eclipse 6 / 10 Case Study: Tool Requirements ● Measures Branch Coverage ● Available via Command Line for Build ● Integration into CI Server (Hudson et al) ● Eclipse Plug-in Available ● Based on Bytecode ● Free if possible... 09/10/10 Code Coverage in Eclipse 7 / 10 Code Coverage Tools looks good ● CodeCover ● Emma / EclEmma ● Clover ● Cobertura looks good not bytecode-based no branch coverage not free no Eclipse plug-in → eCobertura Eclipse plug-in 09/10/10 no CI integration Code Coverage in Eclipse yay! still pretty basic 8 / 10 Links ● ● Eclipse Plug-ins ● eCobertura - http://ecobertura.johoop.de ● EclEmma - http://eclemma.org/ ● CodeCover - http://codecover.org/ ● Clover - http://www.atlassian.com/software/clover/ Command Line / Ant ● Cobertura - http://cobertura.sourceforge.net/ ● Emma - http://emma.sourceforge.net/ ● JaCoCo - http://www.eclemma.org/jacoco/ 09/10/10 Code Coverage in Eclipse 9 / 10 Thanks! Any questions? 09/10/10 Code Coverage in Eclipse 10 / 10
© Copyright 2026 Paperzz