<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Problem with Emma&#8230;</title>
	<atom:link href="http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/feed/" rel="self" type="application/rss+xml" />
	<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/</link>
	<description>Technology and Geek Stuff by Eric Burke</description>
	<lastBuildDate>Mon, 26 Jul 2010 14:36:32 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Barend</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2262</link>
		<dc:creator>Barend</dc:creator>
		<pubDate>Sat, 01 Dec 2007 18:18:13 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2262</guid>
		<description>Atlassian&#039;s continuous integration server supports various metrics-over-time, not sure if test coverage is one of them though.</description>
		<content:encoded><![CDATA[<p>Atlassian&#8217;s continuous integration server supports various metrics-over-time, not sure if test coverage is one of them though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris Bokowski</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2057</link>
		<dc:creator>Boris Bokowski</dc:creator>
		<pubDate>Tue, 27 Nov 2007 16:49:49 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2057</guid>
		<description>@Eric - thanks for the pointer!</description>
		<content:encoded><![CDATA[<p>@Eric &#8211; thanks for the pointer!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Burke</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2045</link>
		<dc:creator>Eric Burke</dc:creator>
		<pubDate>Tue, 27 Nov 2007 14:57:09 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2045</guid>
		<description>@Boris that tool is called &lt;a href=&quot;http://docs.codehaus.org/display/ASH/Guantanamo&quot; rel=&quot;nofollow&quot;&gt;Guantanamo&lt;/a&gt;. Good luck with that. Seems like with Emma, at least, a tool like that would delete valid, but allegedly untested, code, such as private constructors.</description>
		<content:encoded><![CDATA[<p>@Boris that tool is called <a href="http://docs.codehaus.org/display/ASH/Guantanamo" rel="nofollow">Guantanamo</a>. Good luck with that. Seems like with Emma, at least, a tool like that would delete valid, but allegedly untested, code, such as private constructors.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris Bokowski</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2044</link>
		<dc:creator>Boris Bokowski</dc:creator>
		<pubDate>Tue, 27 Nov 2007 14:53:16 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2044</guid>
		<description>Here is an extreme way that would enforce 100% coverage, a little evil perhaps, but IMO interesting enough to try on a toy project: Imagine a tool that (say, every night) deletes all untested pieces of code from your current HEAD or trunk.  With untested pieces of code, I mean methods that are not called, branches that were never executed, etc.  If the tool screwed up, you could easily roll back to a previous version from CVS/SVN.  Would you be able to use such a tool to your advantage, or would it just be a nuisance?</description>
		<content:encoded><![CDATA[<p>Here is an extreme way that would enforce 100% coverage, a little evil perhaps, but IMO interesting enough to try on a toy project: Imagine a tool that (say, every night) deletes all untested pieces of code from your current HEAD or trunk.  With untested pieces of code, I mean methods that are not called, branches that were never executed, etc.  If the tool screwed up, you could easily roll back to a previous version from CVS/SVN.  Would you be able to use such a tool to your advantage, or would it just be a nuisance?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Burke</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2038</link>
		<dc:creator>Eric Burke</dc:creator>
		<pubDate>Tue, 27 Nov 2007 13:18:34 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2038</guid>
		<description>@Phil I wouldn&#039;t want actual annotations in the code. The &quot;markers&quot; I&#039;m speculating about would be in some external database or data file.

@Alex I&#039;m not concerned about 100% coverage, either. I&#039;m concerned about all of the false &quot;NOT COVERED&quot; noise that bury all of the important data.</description>
		<content:encoded><![CDATA[<p>@Phil I wouldn&#8217;t want actual annotations in the code. The &#8220;markers&#8221; I&#8217;m speculating about would be in some external database or data file.</p>
<p>@Alex I&#8217;m not concerned about 100% coverage, either. I&#8217;m concerned about all of the false &#8220;NOT COVERED&#8221; noise that bury all of the important data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Miler</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2029</link>
		<dc:creator>Alex Miler</dc:creator>
		<pubDate>Tue, 27 Nov 2007 06:10:47 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2029</guid>
		<description>If you haven&#039;t tried EclEmma http://www.eclemma.org/ check it out.  This is my favorite way to use Emma (or any coverage tool) while I&#039;m writing unit tests and code to ensure the tests are covering what I expect.  

I&#039;ve had the similar problem with private constructors in Emma but then I&#039;ve never cared about 100% coverage, so didn&#039;t really bother me much.  Personally, I think you get a lot more mileage out of using something like FindBugs than squeezing out that last 15-20% of coverage.

Clover does a bunch of the reporting you mention in terms of finding coverage holes and such.  Clover 2 is really slick if you haven&#039;t tried it out.</description>
		<content:encoded><![CDATA[<p>If you haven&#8217;t tried EclEmma <a href="http://www.eclemma.org/" rel="nofollow">http://www.eclemma.org/</a> check it out.  This is my favorite way to use Emma (or any coverage tool) while I&#8217;m writing unit tests and code to ensure the tests are covering what I expect.  </p>
<p>I&#8217;ve had the similar problem with private constructors in Emma but then I&#8217;ve never cared about 100% coverage, so didn&#8217;t really bother me much.  Personally, I think you get a lot more mileage out of using something like FindBugs than squeezing out that last 15-20% of coverage.</p>
<p>Clover does a bunch of the reporting you mention in terms of finding coverage holes and such.  Clover 2 is really slick if you haven&#8217;t tried it out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phil Varner</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2026</link>
		<dc:creator>Phil Varner</dc:creator>
		<pubDate>Tue, 27 Nov 2007 05:23:48 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2026</guid>
		<description>There was a note on the Emma mailing list about the possibility of Eclipse taking over the development.  

I think the test analogy is apt.  The biggest problems with Emma right now are 
1) you can&#039;t do a diff on two runs, so that you can ensure that your overall coverage doesn&#039;t go down between code and test changes and, more importantly, that you still cover all of the code that you did before any changes
2) The metrics are too course-grained to be useful.  I care less that my 100 line class has 80% coverage than that my 1000 line class has 85% coverage.  It would be useful to rank classes by total lines not covered, and more importantly by contiguous lines not covered, which indicates you missed a branch or aren&#039;t calling a method.  Also, having a way to display in some sort of ranked &quot;problem areas&quot; format would be usefule, so you didn&#039;t need to browse through the entire report.

I agree, annotations would be a great thing.  However, most of the useful annotations would require Java 7 support for putting them anywhere in code, e.g., mark this catch IOException as &quot;don&#039;t care&quot; because even if I could figure out how to trigger one here, I&#039;m just going to bail out anyway.  The &quot;you didn&#039;t call the private constructor on this class that only has static methods&quot; is annoying, though.</description>
		<content:encoded><![CDATA[<p>There was a note on the Emma mailing list about the possibility of Eclipse taking over the development.  </p>
<p>I think the test analogy is apt.  The biggest problems with Emma right now are<br />
1) you can&#8217;t do a diff on two runs, so that you can ensure that your overall coverage doesn&#8217;t go down between code and test changes and, more importantly, that you still cover all of the code that you did before any changes<br />
2) The metrics are too course-grained to be useful.  I care less that my 100 line class has 80% coverage than that my 1000 line class has 85% coverage.  It would be useful to rank classes by total lines not covered, and more importantly by contiguous lines not covered, which indicates you missed a branch or aren&#8217;t calling a method.  Also, having a way to display in some sort of ranked &#8220;problem areas&#8221; format would be usefule, so you didn&#8217;t need to browse through the entire report.</p>
<p>I agree, annotations would be a great thing.  However, most of the useful annotations would require Java 7 support for putting them anywhere in code, e.g., mark this catch IOException as &#8220;don&#8217;t care&#8221; because even if I could figure out how to trigger one here, I&#8217;m just going to bail out anyway.  The &#8220;you didn&#8217;t call the private constructor on this class that only has static methods&#8221; is annoying, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Easter</title>
		<link>http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/comment-page-1/#comment-2024</link>
		<dc:creator>Michael Easter</dc:creator>
		<pubDate>Tue, 27 Nov 2007 04:31:30 +0000</pubDate>
		<guid isPermaLink="false">http://stuffthathappens.com/blog/2007/11/26/the-problem-with-emma/#comment-2024</guid>
		<description>re: confession. There&#039;s two ways to feel dirty. One is to write dummy unit tests.  But the other is to write the code in such a way that it bypasses Emma&#039;s limitations.  Has anyone done that, I wonder?

e.g. Has anyone written a class with a non-private constructor solely to maintain 100% code coverage? How did you cleanse your soul afterwards?</description>
		<content:encoded><![CDATA[<p>re: confession. There&#8217;s two ways to feel dirty. One is to write dummy unit tests.  But the other is to write the code in such a way that it bypasses Emma&#8217;s limitations.  Has anyone done that, I wonder?</p>
<p>e.g. Has anyone written a class with a non-private constructor solely to maintain 100% code coverage? How did you cleanse your soul afterwards?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.267 seconds -->
