<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Why I test, and why do you test?</title>
	<atom:link href="http://notincode.wordpress.com/2008/02/07/why-i-test-and-why-do-you-test/feed/" rel="self" type="application/rss+xml" />
	<link>http://notincode.wordpress.com/2008/02/07/why-i-test-and-why-do-you-test/</link>
	<description>Software is about people</description>
	<lastBuildDate>Sun, 23 Nov 2008 19:55:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Wes Sheldahl</title>
		<link>http://notincode.wordpress.com/2008/02/07/why-i-test-and-why-do-you-test/#comment-222</link>
		<dc:creator>Wes Sheldahl</dc:creator>
		<pubDate>Wed, 16 Jul 2008 15:24:32 +0000</pubDate>
		<guid isPermaLink="false">http://notincode.wordpress.com/?p=226#comment-222</guid>
		<description>I know what you mean about mind-numbingly boring tests. Still, I think they give more safety than the other options you mentioned. Watching code execute in a debugger might be fine to verify it the first time, but who does that repeatedly every time a change is made that might affect that stretch of code? Tests need to be automated.

Big bang integration tests might make a good substitute, IF they actually execute all the code paths. I haven&#039;t done much with these, but they seem like they would take even longer to run than a big suite of unit tests... especially if I just want to test the change I made to one class, and have to run the whole integration test suite to do so.

Having regression testing can help in a couple different scenarios. One is when you need to make a change to a piece of code that some other developer wrote; it can be hard to know for sure if your change will break something, but a good automated test suite may help you catch things like that sooner. The other is refactoring. If you have a good test suite, you don&#039;t need to be afraid to refactor your code, whether for performance, clarity or to get to a better design as the codebase evolves.

Test Driven Development also has the design benefits from having written the tests before the code, but I won&#039;t go into those right now.</description>
		<content:encoded><![CDATA[<p>I know what you mean about mind-numbingly boring tests. Still, I think they give more safety than the other options you mentioned. Watching code execute in a debugger might be fine to verify it the first time, but who does that repeatedly every time a change is made that might affect that stretch of code? Tests need to be automated.</p>
<p>Big bang integration tests might make a good substitute, IF they actually execute all the code paths. I haven&#8217;t done much with these, but they seem like they would take even longer to run than a big suite of unit tests&#8230; especially if I just want to test the change I made to one class, and have to run the whole integration test suite to do so.</p>
<p>Having regression testing can help in a couple different scenarios. One is when you need to make a change to a piece of code that some other developer wrote; it can be hard to know for sure if your change will break something, but a good automated test suite may help you catch things like that sooner. The other is refactoring. If you have a good test suite, you don&#8217;t need to be afraid to refactor your code, whether for performance, clarity or to get to a better design as the codebase evolves.</p>
<p>Test Driven Development also has the design benefits from having written the tests before the code, but I won&#8217;t go into those right now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hiremaga</title>
		<link>http://notincode.wordpress.com/2008/02/07/why-i-test-and-why-do-you-test/#comment-212</link>
		<dc:creator>hiremaga</dc:creator>
		<pubDate>Sat, 12 Apr 2008 10:10:34 +0000</pubDate>
		<guid isPermaLink="false">http://notincode.wordpress.com/?p=226#comment-212</guid>
		<description>Any ceremony can start to seem pointless without revisiting its purpose from time to time.

A big part of why I write tests is initially to clarify my own understanding and later to communicate intent to anybody who might want to change this code.

These tests as a regression suite relates to the latter only, so I find my tests can look one way when I&#039;m exploring at first and quite different when I&#039;ve finished. I often find the first few tests look more like functional tests, but the ones I leave behind are a larger group of much more focused (unit?) tests with only a few functional tests.

Systematically producing long running tests is going to slow down the build considerably and, as I&#039;m sure you&#039;ve experienced, this can be debilitating in an agile team - but that&#039;s another discussion :)</description>
		<content:encoded><![CDATA[<p>Any ceremony can start to seem pointless without revisiting its purpose from time to time.</p>
<p>A big part of why I write tests is initially to clarify my own understanding and later to communicate intent to anybody who might want to change this code.</p>
<p>These tests as a regression suite relates to the latter only, so I find my tests can look one way when I&#8217;m exploring at first and quite different when I&#8217;ve finished. I often find the first few tests look more like functional tests, but the ones I leave behind are a larger group of much more focused (unit?) tests with only a few functional tests.</p>
<p>Systematically producing long running tests is going to slow down the build considerably and, as I&#8217;m sure you&#8217;ve experienced, this can be debilitating in an agile team &#8211; but that&#8217;s another discussion :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: benhutchison</title>
		<link>http://notincode.wordpress.com/2008/02/07/why-i-test-and-why-do-you-test/#comment-211</link>
		<dc:creator>benhutchison</dc:creator>
		<pubDate>Wed, 02 Apr 2008 10:54:18 +0000</pubDate>
		<guid isPermaLink="false">http://notincode.wordpress.com/?p=226#comment-211</guid>
		<description>Ive been feeling uncertain about the merits of doing lots of automated testing of late.

At IBS now, we are approaching 100% test coverage through fairly orthodox TDD. What Ive noticed is that (a) even using latest- and greatest- techniques, we are spending lots of time writing mind-numbingly boring tests to test-drive simple code, (b) the tests are basically regression tests that assert the code does what it does, (c)  they obstruct us when we want to change stuff.

Honestly, if you just want to verify a piece of code works, it can be cheaper to use a big-bang integration test, or watch it execute in a debugger, than to write unit tests over every branch. 

So it seems that tests are really most valuable in preventing regression. Thus one&#039;s &quot;payback&quot; from faithful TDD is perhaps accrued slowly as the code is used and modified. If TDD code is changed or discarded soon after its written, it seems that economically, TDD wasn&#039;t then worth it.</description>
		<content:encoded><![CDATA[<p>Ive been feeling uncertain about the merits of doing lots of automated testing of late.</p>
<p>At IBS now, we are approaching 100% test coverage through fairly orthodox TDD. What Ive noticed is that (a) even using latest- and greatest- techniques, we are spending lots of time writing mind-numbingly boring tests to test-drive simple code, (b) the tests are basically regression tests that assert the code does what it does, (c)  they obstruct us when we want to change stuff.</p>
<p>Honestly, if you just want to verify a piece of code works, it can be cheaper to use a big-bang integration test, or watch it execute in a debugger, than to write unit tests over every branch. </p>
<p>So it seems that tests are really most valuable in preventing regression. Thus one&#8217;s &#8220;payback&#8221; from faithful TDD is perhaps accrued slowly as the code is used and modified. If TDD code is changed or discarded soon after its written, it seems that economically, TDD wasn&#8217;t then worth it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
