<?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: Is Code Coverage Really All That Useful?</title>
	<atom:link href="http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/</link>
	<description>ASP.NET Developer. ALT.NET Supporter. Pragmatic Programmer. Published Writer.</description>
	<lastBuildDate>Tue, 07 Sep 2010 02:39:10 +0000</lastBuildDate>
	
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mark Utting</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-951</link>
		<dc:creator>Mark Utting</dc:creator>
		<pubDate>Tue, 09 Dec 2008 20:59:34 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-951</guid>
		<description>As Mathias said (10/29/2008): &quot;a good test suite should be sensitive and reflect tightly your requirements/assumptions; therefore, if you mutated your code, your tests should fail. So you could measure your tests quality by mutating the code, and looking at how much failure you create.&quot;

I like to use mutation testing to measure the effectiveness/quality of my JUnit test suites.
It is more demanding than code coverage...

Jumble (http://jumble.sourceforge.net) is a fast and effective tool that gives you a 0..100% score for each of your Java source code classes, by applying one or two simple mutations to each command and expression in the class and seeing if your tests are strong enough to detect the mutation.  It works by mutating the bytecode directly.  

The current release of Jumble (June 2007) works with JUnit 3.8.1, but the SVN repository version works with  JUnit 4.4, as will the real-soon-now release.</description>
		<content:encoded><![CDATA[<p>As Mathias said (10/29/2008): &quot;a good test suite should be sensitive and reflect tightly your requirements/assumptions; therefore, if you mutated your code, your tests should fail. So you could measure your tests quality by mutating the code, and looking at how much failure you create.&quot;</p>
<p>I like to use mutation testing to measure the effectiveness/quality of my JUnit test suites.<br />
It is more demanding than code coverage&#8230;</p>
<p>Jumble (<a href="http://jumble.sourceforge.net" rel="nofollow">http://jumble.sourceforge.net</a>) is a fast and effective tool that gives you a 0..100% score for each of your Java source code classes, by applying one or two simple mutations to each command and expression in the class and seeing if your tests are strong enough to detect the mutation.  It works by mutating the bytecode directly.  </p>
<p>The current release of Jumble (June 2007) works with JUnit 3.8.1, but the SVN repository version works with  JUnit 4.4, as will the real-soon-now release.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-949</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Wed, 05 Nov 2008 07:41:24 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-949</guid>
		<description>I don&#039;t think any rational person would see code coverage as the be-all-end-all or silver bullet.  It&#039;s a great metric, but only 1 metric of MANY to determine quality.  CI, functional and system testing needs to happen in conjunction with unit testing and those unit tests should be code reviewed by humans to make sure they are useful tests.  100% code coverage is useless if the tests suck.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think any rational person would see code coverage as the be-all-end-all or silver bullet.  It&#8217;s a great metric, but only 1 metric of MANY to determine quality.  CI, functional and system testing needs to happen in conjunction with unit testing and those unit tests should be code reviewed by humans to make sure they are useful tests.  100% code coverage is useless if the tests suck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andr&#233; Cardoso</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-948</link>
		<dc:creator>Andr&#233; Cardoso</dc:creator>
		<pubDate>Wed, 05 Nov 2008 04:02:38 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-948</guid>
		<description>I remember from university that there are other metrics related to data paths/data flow, that could be useful for measuring if the corner cases are &quot;covered&quot; (boundary tests, data equivalence partitions, loops, etc). </description>
		<content:encoded><![CDATA[<p>I remember from university that there are other metrics related to data paths/data flow, that could be useful for measuring if the corner cases are &quot;covered&quot; (boundary tests, data equivalence partitions, loops, etc).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-947</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Wed, 05 Nov 2008 01:56:38 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-947</guid>
		<description>For really serious code thrashing, try mutation testing (ref: Wikipedia). For Ruby there&#039;s heckle http://github.com/ryansobol/heckle , for Java there&#039;s Jester (though that doesn&#039;t look very current). Even if you have 100% coverage, mutating the code can help you find unexpected weirdness.</description>
		<content:encoded><![CDATA[<p>For really serious code thrashing, try mutation testing (ref: Wikipedia). For Ruby there&#8217;s heckle <a href="http://github.com/ryansobol/heckle" rel="nofollow">http://github.com/ryansobol/heckle</a> , for Java there&#8217;s Jester (though that doesn&#8217;t look very current). Even if you have 100% coverage, mutating the code can help you find unexpected weirdness.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lava kafle</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-946</link>
		<dc:creator>lava kafle</dc:creator>
		<pubDate>Tue, 04 Nov 2008 21:46:43 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-946</guid>
		<description>hey a new approach but we need to use coverage tools to get rid of Miss counts so we do not miss optimal path essential for covering certain codes duri9ng testing. We need to get experience from rigorous manual testing first to use code coverage effectively.</description>
		<content:encoded><![CDATA[<p>hey a new approach but we need to use coverage tools to get rid of Miss counts so we do not miss optimal path essential for covering certain codes duri9ng testing. We need to get experience from rigorous manual testing first to use code coverage effectively.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Pang</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-945</link>
		<dc:creator>Kevin Pang</dc:creator>
		<pubDate>Tue, 04 Nov 2008 16:11:45 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-945</guid>
		<description>@Comment

Not rude at all.  In fact, I would agree with you if only for one thing: the strawman isn&#039;t really a strawman -- to me at least -- since I&#039;ve had to deal with customers and management who have said exactly that.

If it seems like I&#039;m arguing against a silly assumption, it&#039;s because I am and it is.  Unfortunately, it&#039;s an argument that needs to be made because a lot of developers and managers out there *do* see code coverage as silver bullet.  Maybe I&#039;m preaching to the choir. :-P</description>
		<content:encoded><![CDATA[<p>@Comment</p>
<p>Not rude at all.  In fact, I would agree with you if only for one thing: the strawman isn&#8217;t really a strawman &#8212; to me at least &#8212; since I&#8217;ve had to deal with customers and management who have said exactly that.</p>
<p>If it seems like I&#8217;m arguing against a silly assumption, it&#8217;s because I am and it is.  Unfortunately, it&#8217;s an argument that needs to be made because a lot of developers and managers out there *do* see code coverage as silver bullet.  Maybe I&#8217;m preaching to the choir. <img src='http://www.kevinwilliampang.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Comment</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-944</link>
		<dc:creator>Comment</dc:creator>
		<pubDate>Tue, 04 Nov 2008 15:48:47 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-944</guid>
		<description>Not to be rude in any way, and haven&#039;t read all the comments on your page, but you are beating a straw man here.

Opponents assumed argument:
100% code coverage is the the reliable measurement.

Your argument:
Proof that 100% line coverage does not fullfill above stated argument.

Conclusion:
Code coverage is not useful

Of course tests are useful, it&#039;s a matter of using them right. To travesty our analogy: the engineer should run a ten ton truck with run down tires over the bridge intended to be tested.

Your comment is, truth to be said, a bit naive, and it seems that you are a bit irritated with the fanboys of code coverage.

Testing is of course useful.

No silver bullet.</description>
		<content:encoded><![CDATA[<p>Not to be rude in any way, and haven&#8217;t read all the comments on your page, but you are beating a straw man here.</p>
<p>Opponents assumed argument:<br />
100% code coverage is the the reliable measurement.</p>
<p>Your argument:<br />
Proof that 100% line coverage does not fullfill above stated argument.</p>
<p>Conclusion:<br />
Code coverage is not useful</p>
<p>Of course tests are useful, it&#8217;s a matter of using them right. To travesty our analogy: the engineer should run a ten ton truck with run down tires over the bridge intended to be tested.</p>
<p>Your comment is, truth to be said, a bit naive, and it seems that you are a bit irritated with the fanboys of code coverage.</p>
<p>Testing is of course useful.</p>
<p>No silver bullet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Bullock</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-943</link>
		<dc:creator>David Bullock</dc:creator>
		<pubDate>Tue, 04 Nov 2008 15:34:41 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-943</guid>
		<description>Will people ever stop asking meaningless questions to bait unsuspecting readers into reading whatever happened to enter the author&#039;s mind one afternoon?</description>
		<content:encoded><![CDATA[<p>Will people ever stop asking meaningless questions to bait unsuspecting readers into reading whatever happened to enter the author&#8217;s mind one afternoon?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Nash</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-942</link>
		<dc:creator>Chris Nash</dc:creator>
		<pubDate>Tue, 04 Nov 2008 15:27:00 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-942</guid>
		<description>Agree with the main point here - all code coverage tells you for certain is how much of your code has *never* been run, not how much actually works. I&#039;ve worked on projects that have bragged about 90% code coverage - I&#039;d much rather people be more honest, and say there&#039;s 10% out there we know nothing at all about.</description>
		<content:encoded><![CDATA[<p>Agree with the main point here &#8211; all code coverage tells you for certain is how much of your code has *never* been run, not how much actually works. I&#8217;ve worked on projects that have bragged about 90% code coverage &#8211; I&#8217;d much rather people be more honest, and say there&#8217;s 10% out there we know nothing at all about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig D</title>
		<link>http://www.kevinwilliampang.com/2008/10/28/is-code-coverage-really-all-that-useful/#comment-941</link>
		<dc:creator>Craig D</dc:creator>
		<pubDate>Tue, 04 Nov 2008 14:38:00 +0000</pubDate>
		<guid isPermaLink="false">/post/Is-Code-Coverage-Really-All-That-Useful.aspx#comment-941</guid>
		<description>I&#039;ve seen -- and admittedly created -- enough lame unit tests to realize that code coverage is a useless measure. Unit testing should be about quality, not quantity. Testing needs to cover boundry cases and use random inputs when possible to be of any use in catching errors that a BDEU (brain dead end user) can easily invoke. </description>
		<content:encoded><![CDATA[<p>I&#8217;ve seen &#8212; and admittedly created &#8212; enough lame unit tests to realize that code coverage is a useless measure. Unit testing should be about quality, not quantity. Testing needs to cover boundry cases and use random inputs when possible to be of any use in catching errors that a BDEU (brain dead end user) can easily invoke.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
