<?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: Do you test? If not, why not?</title>
	<atom:link href="http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/</link>
	<description>Stuff you pick up on the way...</description>
	<lastBuildDate>Thu, 02 Jul 2009 15:03:28 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Merlyn Albery-Speyer</title>
		<link>http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/comment-page-1/#comment-40</link>
		<dc:creator>Merlyn Albery-Speyer</dc:creator>
		<pubDate>Sun, 04 Nov 2007 07:20:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/?p=61#comment-40</guid>
		<description>I found some more material you might be interested in.

http://www.testearly.com/2006/10/03/test-first-or-second/

&quot;Teams new to developer testing should ensure they can walk (i.e. write tests for non-trivial logic) before attempting to sprint (i.e. write tests first). Once the team is comfortable writing tests and understands how to test difficult scenarios like dealing with databases, etc, then perhaps a test first stipulation can stick. But by then, a developer testing process has most likely already stuck.&quot;

xUnit Test Patterns also list testing skills in the order a developer would ideally learn them (single assert through to non OO legacy code).</description>
		<content:encoded><![CDATA[<p>I found some more material you might be interested in.</p>
<p><a href="http://www.testearly.com/2006/10/03/test-first-or-second/" rel="nofollow">http://www.testearly.com/2006/10/03/test-first-or-second/</a></p>
<p>&#8220;Teams new to developer testing should ensure they can walk (i.e. write tests for non-trivial logic) before attempting to sprint (i.e. write tests first). Once the team is comfortable writing tests and understands how to test difficult scenarios like dealing with databases, etc, then perhaps a test first stipulation can stick. But by then, a developer testing process has most likely already stuck.&#8221;</p>
<p>xUnit Test Patterns also list testing skills in the order a developer would ideally learn them (single assert through to non OO legacy code).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Merlyn Albery-Speyer</title>
		<link>http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/comment-page-1/#comment-38</link>
		<dc:creator>Merlyn Albery-Speyer</dc:creator>
		<pubDate>Sun, 04 Nov 2007 06:37:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/?p=61#comment-38</guid>
		<description>Yep. That pretty much sums it up.

It&#039;s not all that bad though. If you take a test-infected developer and pair them with another developer there&#039;s always a chance they&#039;ll take an interest. Or at the very least they&#039;ll better understand why other developers like to test first. So there is hope. ;)</description>
		<content:encoded><![CDATA[<p>Yep. That pretty much sums it up.</p>
<p>It&#8217;s not all that bad though. If you take a test-infected developer and pair them with another developer there&#8217;s always a chance they&#8217;ll take an interest. Or at the very least they&#8217;ll better understand why other developers like to test first. So there is hope. <img src='http://www.clevegibbon.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cleve gibbon</title>
		<link>http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/comment-page-1/#comment-37</link>
		<dc:creator>cleve gibbon</dc:creator>
		<pubDate>Sun, 04 Nov 2007 05:42:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/?p=61#comment-37</guid>
		<description>Merlyn, after reading your comment and post on testing (http://curious-attempt-bunny.blogspot.com/2007/10/how-i-feel-about-writing-tests.html)  I&#039;m even more convinced that effective testing really, really hard.  

As you say, it requires discpline and also creativity.  It is not easy to comprehensively test your code.

Also, code-first tesing is unsustainable, boring and a massive burden on developers that take pleasure from building stuff and not really testing it.  (Personally, I feel that testing is part of the building process.)

So basically, if you&#039;re not writing tests first, its unlikely that you will write them at all.  And even if you do write the tests later, its unlikely that the same level of attention and due diligence will be applied given that the code is already cut and out there.

Hmmm...not a very nice picture</description>
		<content:encoded><![CDATA[<p>Merlyn, after reading your comment and post on testing (<a href="http://curious-attempt-bunny.blogspot.com/2007/10/how-i-feel-about-writing-tests.html" rel="nofollow">http://curious-attempt-bunny.blogspot.com/2007/10/how-i-feel-about-writing-tests.html</a>)  I&#8217;m even more convinced that effective testing really, really hard.  </p>
<p>As you say, it requires discpline and also creativity.  It is not easy to comprehensively test your code.</p>
<p>Also, code-first tesing is unsustainable, boring and a massive burden on developers that take pleasure from building stuff and not really testing it.  (Personally, I feel that testing is part of the building process.)</p>
<p>So basically, if you&#8217;re not writing tests first, its unlikely that you will write them at all.  And even if you do write the tests later, its unlikely that the same level of attention and due diligence will be applied given that the code is already cut and out there.</p>
<p>Hmmm&#8230;not a very nice picture</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Merlyn Albery-Speyer</title>
		<link>http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/comment-page-1/#comment-36</link>
		<dc:creator>Merlyn Albery-Speyer</dc:creator>
		<pubDate>Sat, 03 Nov 2007 17:33:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/?p=61#comment-36</guid>
		<description>If don&#039;t write a unit test it&#039;s generally because I&#039;ve already written the unit of code and feel less inclined. That&#039;s part of why test driven development is hard. It requires discipline.

I think writing tests after the code is also a big issue for many developers. The code is what&#039;s required so why add to the effort by creating unit tests?

Unit testing tends to be the sticking point too. I meet very few developers who don&#039;t see that value in automated end-to-end tests.

Unfortunately I think that&#039;s the reason developers who try writing tests go off testing in general. They do the obvious thing of writing lots of end-to-end tests that end up being slow, break easily as the system changes, and end up as enormous maintainence burdens.</description>
		<content:encoded><![CDATA[<p>If don&#8217;t write a unit test it&#8217;s generally because I&#8217;ve already written the unit of code and feel less inclined. That&#8217;s part of why test driven development is hard. It requires discipline.</p>
<p>I think writing tests after the code is also a big issue for many developers. The code is what&#8217;s required so why add to the effort by creating unit tests?</p>
<p>Unit testing tends to be the sticking point too. I meet very few developers who don&#8217;t see that value in automated end-to-end tests.</p>
<p>Unfortunately I think that&#8217;s the reason developers who try writing tests go off testing in general. They do the obvious thing of writing lots of end-to-end tests that end up being slow, break easily as the system changes, and end up as enormous maintainence burdens.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sebastian Zarzycki</title>
		<link>http://www.clevegibbon.com/wordpress/2007/10/30/do-you-test-if-not-why-not/comment-page-1/#comment-30</link>
		<dc:creator>Sebastian Zarzycki</dc:creator>
		<pubDate>Tue, 30 Oct 2007 22:44:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.clevegibbon.com/wordpress/?p=61#comment-30</guid>
		<description>Very nice and well thought post.

For most of the parts, I agree with you. I mean, we all (developers) would probably agree with you - that tests help maintaining the code, verify its accuracy, etc etc.

The problem is : we don&#039;t do tests. It&#039;s a fact. You&#039;ve stated it. 

Stop here.

Most people jump over this quickly, and just blame it into lazyness, lack of time, whatnot. I think it&#039;s a psychological barrier, that keeps us away from testing and I think there is probably a good reason for that. I&#039;m not sure how to put it, but let me describe my stance.

I do testing. I don&#039;t write tests. This is fundamental difference for me. Maybe because I&#039;m not &quot;just developer&quot; in my heart, but always trying to step aside, and look at everything (that is : project, code, functionality, approach) from a different angle, in a different light. There are always psychological issues here as well. While graduating from university, having master degree, I come from the world, where people don&#039;t give a s*** about &quot;stuff around&quot;.  They just care for a) design b) look c) fun d) functionality. That is, again, while having good knowledge about design patterns, etc, I&#039;m not really code maniac. I just don&#039;t care. I like those DRY, YAGNI, KISS principles. I believe that creating a software is a job like everything else and should be treated as everything else. However, due to insane amount of abstraction you need to deal doing that, a lot of developers completely forgot why they are doing what they are doing, focusing instead on &quot;stuff around&quot;, technological jargon and mumbo-jumbo like : &quot;let&#039;s have a framework, let&#039;s optimize, let&#039;s write our own testing engine, let&#039;s do this and that, and MAYBE then we will go for real app. Well, no. Let&#039;s spend a month on writing tests to be sure that we understand our client&quot;. This is ridicolous approach for me. The best way to understand client is by using techniques that visualize : wireframes, sketches, demos, prototypes - because that is the exact context the future app will be running within. Not tests.

In my world, people value their time and believe that human will be always way better than computer in perception, intuition, recognition, etc. Then again it is always a human who writes the test. Writing another big chunk of code to support another chunk of code is going into endless loop for me. I want to create application people want to use. If it takes a lot of time, let it be. I can take that risk. My testing will be done by me - I will discover the bug on my own and fix on my own. Tests are not helping - they just alert that something is bad. They can more-less point you to the place that is broken. But you still need to devote time and find a solution and fix the bug. And, honestly, the amount of time to hunt the bug is in 85% of cases counted in minutes. I don&#039;t need tests for that.

I don&#039;t write tests because :
- the reasons you&#039;ve mentioned, with the exception of first and last, plus 
- It&#039;s ultrahard to write a good test. I just don&#039;t feel comfortable with struggling with piece of code that is useless in terms of functionality. 
- I think that they are doing fine only for simple blackbox testing. If you are going to use some mock objects, test on a bit higher level - you are knee deep in the swamp and you are not going to escape quickly.
- I tend to focus on things that influence the user experience. You can&#039;t easily test that. Ok, you can test UI to some extent. But the routine you need to do is so boring and incomplete, that It&#039;s really faster to launch the app and notice instantly &quot;bah, button is missing&quot;. 
- I have never been a part of project, that was toppling over because of lack of tests. There were bugs, sure. There were fixes. There was some time spent on fixing. All went well. Noone complained. Sun is still shining. 
- I would never thing that tests are a way to communicate within the group. Sorry. We are people. We communicate through talking, showing pictures, writing documents, examples. Not by computer code. I don&#039;t want to look at it.
- I believe that at certain amount of skill, discipline and awareness, you are able to avoid 70% of the bugs. That 30% are really complex and evil cases, you would probably not discover in yout tests as well (because you first need to THINK and IMAGINE such situation). 

Phew, got to get it off my chest :)</description>
		<content:encoded><![CDATA[<p>Very nice and well thought post.</p>
<p>For most of the parts, I agree with you. I mean, we all (developers) would probably agree with you &#8211; that tests help maintaining the code, verify its accuracy, etc etc.</p>
<p>The problem is : we don&#8217;t do tests. It&#8217;s a fact. You&#8217;ve stated it. </p>
<p>Stop here.</p>
<p>Most people jump over this quickly, and just blame it into lazyness, lack of time, whatnot. I think it&#8217;s a psychological barrier, that keeps us away from testing and I think there is probably a good reason for that. I&#8217;m not sure how to put it, but let me describe my stance.</p>
<p>I do testing. I don&#8217;t write tests. This is fundamental difference for me. Maybe because I&#8217;m not &#8220;just developer&#8221; in my heart, but always trying to step aside, and look at everything (that is : project, code, functionality, approach) from a different angle, in a different light. There are always psychological issues here as well. While graduating from university, having master degree, I come from the world, where people don&#8217;t give a s*** about &#8220;stuff around&#8221;.  They just care for a) design b) look c) fun d) functionality. That is, again, while having good knowledge about design patterns, etc, I&#8217;m not really code maniac. I just don&#8217;t care. I like those DRY, YAGNI, KISS principles. I believe that creating a software is a job like everything else and should be treated as everything else. However, due to insane amount of abstraction you need to deal doing that, a lot of developers completely forgot why they are doing what they are doing, focusing instead on &#8220;stuff around&#8221;, technological jargon and mumbo-jumbo like : &#8220;let&#8217;s have a framework, let&#8217;s optimize, let&#8217;s write our own testing engine, let&#8217;s do this and that, and MAYBE then we will go for real app. Well, no. Let&#8217;s spend a month on writing tests to be sure that we understand our client&#8221;. This is ridicolous approach for me. The best way to understand client is by using techniques that visualize : wireframes, sketches, demos, prototypes &#8211; because that is the exact context the future app will be running within. Not tests.</p>
<p>In my world, people value their time and believe that human will be always way better than computer in perception, intuition, recognition, etc. Then again it is always a human who writes the test. Writing another big chunk of code to support another chunk of code is going into endless loop for me. I want to create application people want to use. If it takes a lot of time, let it be. I can take that risk. My testing will be done by me &#8211; I will discover the bug on my own and fix on my own. Tests are not helping &#8211; they just alert that something is bad. They can more-less point you to the place that is broken. But you still need to devote time and find a solution and fix the bug. And, honestly, the amount of time to hunt the bug is in 85% of cases counted in minutes. I don&#8217;t need tests for that.</p>
<p>I don&#8217;t write tests because :<br />
- the reasons you&#8217;ve mentioned, with the exception of first and last, plus<br />
- It&#8217;s ultrahard to write a good test. I just don&#8217;t feel comfortable with struggling with piece of code that is useless in terms of functionality.<br />
- I think that they are doing fine only for simple blackbox testing. If you are going to use some mock objects, test on a bit higher level &#8211; you are knee deep in the swamp and you are not going to escape quickly.<br />
- I tend to focus on things that influence the user experience. You can&#8217;t easily test that. Ok, you can test UI to some extent. But the routine you need to do is so boring and incomplete, that It&#8217;s really faster to launch the app and notice instantly &#8220;bah, button is missing&#8221;.<br />
- I have never been a part of project, that was toppling over because of lack of tests. There were bugs, sure. There were fixes. There was some time spent on fixing. All went well. Noone complained. Sun is still shining.<br />
- I would never thing that tests are a way to communicate within the group. Sorry. We are people. We communicate through talking, showing pictures, writing documents, examples. Not by computer code. I don&#8217;t want to look at it.<br />
- I believe that at certain amount of skill, discipline and awareness, you are able to avoid 70% of the bugs. That 30% are really complex and evil cases, you would probably not discover in yout tests as well (because you first need to THINK and IMAGINE such situation). </p>
<p>Phew, got to get it off my chest <img src='http://www.clevegibbon.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
