> > It seems pretty fast too. > > In JBlanket's defense, the apparent speed of Emma might really be due to > the overall speedup in the build (and particularly, the increases in JUnit > tests since all tests for a module now execute within a single JVM).
It's also likely that they're using a different bytecode library. ASM [1] claims that it's 700% faster than BCEL; which JBlanket uses. I've got started with ASM in JBlanket (code is committed to CVS), but it's not finished (grrr, I'm doing too many things at once, grr). I looked at Emma today as well on my project, and realized for the first time how much I missed the branch/block/line stuff. Here's an interesting thought: There's an XML report [2] available from Emma, even thought it's format will change soon [3] it'll be around in some form for a long time. Since the point of the XC metric is to "skip" counting methods that aren't worth the coverage effort, could you achieve the same result by combining the XML output from Emma, and the LOCC output. Since the XC measurement is essentially virtual (raw data => business rule/transformation process that says "don't count that" => final numbers), JBlanket doesn't really _need_ to do the actual code coverage measurement itselft. It just needs to interpret the numbers. Perhaps we could figure out a way to create the XC metric from a variety of underlying measurement tools like Emma or others, if their output is at least down to the method level. This could eliminate the complexity of actually creating an efficient coverage tool AND a customized metric, and open the door to a host of other "heuristic metrics". Essentially, most people stop trying to get 100% coverage from normal tools, and any number after that's just fuzzy -- there's no hard line for quality. The XC concept is that this "heuristic metric" is "close enough" to warrant a hard quality push (like XP's unit test green bar). If one sensor that essentially applies heuristics to raw data, but gets better behavior results or long term adoption; perhaps other "heuristic metrics" could be designed to generate telemetry streams that sit above the raw data and provide a more realistic Red/Green goal. Perhaps there's something larger here...or perhaps it's just too soon after lunch. :-) Thoughts on my heresy? --Tim [1] http://asm.objectweb.org/ [2] http://emma.sourceforge.net/coverage_sample_c/coverage.xml [3] http://emma.sourceforge.net/samples.html
