<?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: How test driven are you?</title>
	<atom:link href="http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/feed/" rel="self" type="application/rss+xml" />
	<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/</link>
	<description>Exploring ways to create time for a sustainable, meaningful life that makes you and your neighbors thrive</description>
	<lastBuildDate>Thu, 29 Jul 2010 18:19:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Eric Davis</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-7042</link>
		<dc:creator>Eric Davis</dc:creator>
		<pubDate>Tue, 22 Jan 2008 00:47:42 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-7042</guid>
		<description>I tend to follow TDD very closely but I will break it when needed.  I find it gratifying when I can complete the feature without even firing up a web browser.

1. &quot;Is it OK to go to a prototyping mindset every now and then and still think that you’re being test driven?&quot;

Yes.  I can&#039;t remember where I read about it (Dr Dobbs?) but there was a study that found even the most Extreme XP shops spent the first iteration planning and doing some up front design.

2. &quot;How strictly are you, other developers, following practices like TDD? Do you think they should be practiced like a religion, or should we be using our common sense and create our own mixes of practices? Why?&quot;

Not like a religion but practiced heavily.  If a developer says they completed a feature without adding/changing the tests I will have them prove it to me that it works.  Sometimes I will write up test that fails and have them fix it (typically a boundary condition).

3. &quot;And if you’re able to do completely test driven development, what’s your secret? Where do you find the first test? And so on&quot;

I like to build up my trust in the system.  My first tests are usually &quot;Did the test data really get loaded?&quot; (Model) or &quot;Is the webpage really displaying or is it redirecting?&quot; (Controller).  After that I just start to build upwards.  This still takes some design up-front but not much.</description>
		<content:encoded><![CDATA[<p>I tend to follow TDD very closely but I will break it when needed.  I find it gratifying when I can complete the feature without even firing up a web browser.</p>
<p>1. &#8220;Is it OK to go to a prototyping mindset every now and then and still think that you’re being test driven?&#8221;</p>
<p>Yes.  I can&#8217;t remember where I read about it (Dr Dobbs?) but there was a study that found even the most Extreme XP shops spent the first iteration planning and doing some up front design.</p>
<p>2. &#8220;How strictly are you, other developers, following practices like TDD? Do you think they should be practiced like a religion, or should we be using our common sense and create our own mixes of practices? Why?&#8221;</p>
<p>Not like a religion but practiced heavily.  If a developer says they completed a feature without adding/changing the tests I will have them prove it to me that it works.  Sometimes I will write up test that fails and have them fix it (typically a boundary condition).</p>
<p>3. &#8220;And if you’re able to do completely test driven development, what’s your secret? Where do you find the first test? And so on&#8221;</p>
<p>I like to build up my trust in the system.  My first tests are usually &#8220;Did the test data really get loaded?&#8221; (Model) or &#8220;Is the webpage really displaying or is it redirecting?&#8221; (Controller).  After that I just start to build upwards.  This still takes some design up-front but not much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarkko</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-37</link>
		<dc:creator>Jarkko</dc:creator>
		<pubDate>Wed, 20 Jun 2007 20:28:26 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-37</guid>
		<description>Jim: Thanks for the tip. Protonotes seems like a pretty useful tool for web based applications. I&#039;ll give it a try at some point.</description>
		<content:encoded><![CDATA[<p>Jim: Thanks for the tip. Protonotes seems like a pretty useful tool for web based applications. I&#8217;ll give it a try at some point.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ed Gibbs</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-35</link>
		<dc:creator>Ed Gibbs</dc:creator>
		<pubDate>Wed, 20 Jun 2007 19:15:53 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-35</guid>
		<description>I&#039;m writing up labs for a seminar I&#039;ll present to my staff soon on doing TDD in JSF.  My approach since JSF is just another MVC framework I started at the service layer.  I assumed I was going to have authentication so I needed a SecurityService.  So I wrote tests like testLoginWithGoodUser() and testLoginWithNullUser().  That forced me to implement some sort of user class.  When I felt like that was fleshed out enough I dropped into the persistence layer and tested things were being persisted using an in-memory HSQLDB and Hibernate.  Then I went back to the controller and wrote tests to actually perform a login.  Finally I created a Selenium tests for the front end to test the navigation between pages.

This approach has allowed me to stay almost 100% TDD.  Of course the reason I&#039;m writing up the seminar is to convince my developers there is a way to do hardcore TDD in J2EE land even though they often struggle with it.  Mock frameworks can help a lot to since you can take out dependencies and do TDD without implementing much of the full stack upfront.</description>
		<content:encoded><![CDATA[<p>I&#8217;m writing up labs for a seminar I&#8217;ll present to my staff soon on doing TDD in JSF.  My approach since JSF is just another MVC framework I started at the service layer.  I assumed I was going to have authentication so I needed a SecurityService.  So I wrote tests like testLoginWithGoodUser() and testLoginWithNullUser().  That forced me to implement some sort of user class.  When I felt like that was fleshed out enough I dropped into the persistence layer and tested things were being persisted using an in-memory HSQLDB and Hibernate.  Then I went back to the controller and wrote tests to actually perform a login.  Finally I created a Selenium tests for the front end to test the navigation between pages.</p>
<p>This approach has allowed me to stay almost 100% TDD.  Of course the reason I&#8217;m writing up the seminar is to convince my developers there is a way to do hardcore TDD in J2EE land even though they often struggle with it.  Mock frameworks can help a lot to since you can take out dependencies and do TDD without implementing much of the full stack upfront.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Corbeil</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-34</link>
		<dc:creator>Jim Corbeil</dc:creator>
		<pubDate>Wed, 20 Jun 2007 14:21:46 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-34</guid>
		<description>I&#039;m totally a sucker for prototyping my way into test driven development. I take it one step further in that I use a prototyping annotation tool like Protonotes (http://www.protonotes.com) to add notes to my prototypes that eventual evolve into my test cases.</description>
		<content:encoded><![CDATA[<p>I&#8217;m totally a sucker for prototyping my way into test driven development. I take it one step further in that I use a prototyping annotation tool like Protonotes (<a href="http://www.protonotes.com" rel="nofollow">http://www.protonotes.com</a>) to add notes to my prototypes that eventual evolve into my test cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carl</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-27</link>
		<dc:creator>Carl</dc:creator>
		<pubDate>Sun, 17 Jun 2007 17:26:49 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-27</guid>
		<description>Jake: I never thought about doing it that way, but that is indeed the best of both worlds. Thanks for the insight! i Have heard of developers using VM&#039;s to do this sort of thing but that seems more complicated and less reusable than what you suggest.</description>
		<content:encoded><![CDATA[<p>Jake: I never thought about doing it that way, but that is indeed the best of both worlds. Thanks for the insight! i Have heard of developers using VM&#8217;s to do this sort of thing but that seems more complicated and less reusable than what you suggest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jake McArthur</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-26</link>
		<dc:creator>Jake McArthur</dc:creator>
		<pubDate>Sun, 17 Jun 2007 17:10:04 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-26</guid>
		<description>I get the urge to prototype a lot, so I do. To keep safe, here is my process:

1. Fork a new branch of the project.
2. Modify it until it has the new functionality I want, then refactor it a bit if necessary. No tests are strictly necessary here.
3. Go back to the original branch and begin the normal TDD/BDD process. Make a test that fails, make it pass, etc. All the while, use your other branch as a reference.
4. Once you are done integrating the functionality into the main branch, trash your prototype. Never look at it again.

I have chosen to slightly modify the process to safely support my natural tendencies. This is the path I think most people should follow. Like Ricky Clarkson says, don&#039;t follow anything religiously. Different methods are better for different situations. However, sometimes it is just better to slightly evolve a process to suit you.</description>
		<content:encoded><![CDATA[<p>I get the urge to prototype a lot, so I do. To keep safe, here is my process:</p>
<p>1. Fork a new branch of the project.<br />
2. Modify it until it has the new functionality I want, then refactor it a bit if necessary. No tests are strictly necessary here.<br />
3. Go back to the original branch and begin the normal TDD/BDD process. Make a test that fails, make it pass, etc. All the while, use your other branch as a reference.<br />
4. Once you are done integrating the functionality into the main branch, trash your prototype. Never look at it again.</p>
<p>I have chosen to slightly modify the process to safely support my natural tendencies. This is the path I think most people should follow. Like Ricky Clarkson says, don&#8217;t follow anything religiously. Different methods are better for different situations. However, sometimes it is just better to slightly evolve a process to suit you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: taw</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-25</link>
		<dc:creator>taw</dc:creator>
		<pubDate>Sun, 17 Jun 2007 03:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-25</guid>
		<description>I usually use follow TDD when extending existing programs. When I build completely new software I first create a prototype, then I either toss it, and start TDD from scratch, or build on it gradually adding tests and turning it into fully functional software. Maybe you will feel better about it knowing that this pattern &lt;a href=&quot;http://c2.com/cgi/wiki?SpikeSolution&quot; rel=&quot;nofollow&quot;&gt;has a name&lt;/a&gt; ;-). The basic difference between Spike and Big Design Upfront is that the former is &quot;depth-first&quot; and tries to get &quot;something&quot; done as soon as possible (the &quot;something&quot; can then be tossed or not, it&#039;s there mostly to help you explore the problem), while the latter is breadth-first and will invariably end up in a disaster if the problem isn&#039;t well known.</description>
		<content:encoded><![CDATA[<p>I usually use follow TDD when extending existing programs. When I build completely new software I first create a prototype, then I either toss it, and start TDD from scratch, or build on it gradually adding tests and turning it into fully functional software. Maybe you will feel better about it knowing that this pattern <a href="http://c2.com/cgi/wiki?SpikeSolution" rel="nofollow">has a name</a> ;-). The basic difference between Spike and Big Design Upfront is that the former is &#8220;depth-first&#8221; and tries to get &#8220;something&#8221; done as soon as possible (the &#8220;something&#8221; can then be tossed or not, it&#8217;s there mostly to help you explore the problem), while the latter is breadth-first and will invariably end up in a disaster if the problem isn&#8217;t well known.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarkko</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-24</link>
		<dc:creator>Jarkko</dc:creator>
		<pubDate>Sun, 17 Jun 2007 02:50:14 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-24</guid>
		<description>Hey Daniel, thanks for the link! I&#039;ve been reading some blog posts about behavior driven development, but this one cleared many things to me about what&#039;s the idea behind that approach - and how it could help me in the situations described in this blog post.</description>
		<content:encoded><![CDATA[<p>Hey Daniel, thanks for the link! I&#8217;ve been reading some blog posts about behavior driven development, but this one cleared many things to me about what&#8217;s the idea behind that approach &#8211; and how it could help me in the situations described in this blog post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarkko</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-23</link>
		<dc:creator>Jarkko</dc:creator>
		<pubDate>Sun, 17 Jun 2007 02:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-23</guid>
		<description>Ricky: 
Actually I don&#039;t think the order matters that much - it&#039;s more about whether I write tests or not. In the project I&#039;m refering to all testing was done by using the product in a way an end user would use it. So, there was no automated tests like unit tests present at all. I think that any kinds of unit tests would have made it easier for us to do the changes and thus get the project completed faster. 

This approach works pretty well in the sense that we actually did find the problems eventually. But the problem was that it was the QA department who had to look for the bugs and report them to us. So it was quite time consuming. With unit test (or any kind of automated tests) we could have found the problems even before giving the new code to our testers.

To me it seems that TDD&#039;s could be that by following that practice you actually do write the tests, and make your code more testable. And that&#039;s how it can help you avoid chaos.

And well... To be fair, the project I&#039;m talking about wasn&#039;t complete chaos. After all, we managed to get the bugs closed and the product ended up pretty good. But at some point it sure felt like a never ending story. :)

Carl:
I&#039;ve been also looking at BDD and it looks interesting. I&#039;ll have to try it sometimes in the near future as well.</description>
		<content:encoded><![CDATA[<p>Ricky:<br />
Actually I don&#8217;t think the order matters that much &#8211; it&#8217;s more about whether I write tests or not. In the project I&#8217;m refering to all testing was done by using the product in a way an end user would use it. So, there was no automated tests like unit tests present at all. I think that any kinds of unit tests would have made it easier for us to do the changes and thus get the project completed faster. </p>
<p>This approach works pretty well in the sense that we actually did find the problems eventually. But the problem was that it was the QA department who had to look for the bugs and report them to us. So it was quite time consuming. With unit test (or any kind of automated tests) we could have found the problems even before giving the new code to our testers.</p>
<p>To me it seems that TDD&#8217;s could be that by following that practice you actually do write the tests, and make your code more testable. And that&#8217;s how it can help you avoid chaos.</p>
<p>And well&#8230; To be fair, the project I&#8217;m talking about wasn&#8217;t complete chaos. After all, we managed to get the bugs closed and the product ended up pretty good. But at some point it sure felt like a never ending story. :)</p>
<p>Carl:<br />
I&#8217;ve been also looking at BDD and it looks interesting. I&#8217;ll have to try it sometimes in the near future as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Watkins</title>
		<link>http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/comment-page-1/#comment-22</link>
		<dc:creator>Daniel Watkins</dc:creator>
		<pubDate>Sun, 17 Jun 2007 02:36:35 +0000</pubDate>
		<guid isPermaLink="false">http://jarkkolaine.com/2007/06/15/how-test-driven-are-you/#comment-22</guid>
		<description>Hey,
Just read a blog post about behaviour-driven development[0], which is a process derived from test-driven development.  It basically started from the premise that writing your tests in the form &#039;shouldDoX&#039; helps you outline your tests easily.

That said, I always start by writing a bit of code that I know to be correct, writing tests to cover it and then move on with TDD...


[Footnote 0: http://dannorth.net/introducing-bdd/]</description>
		<content:encoded><![CDATA[<p>Hey,<br />
Just read a blog post about behaviour-driven development[0], which is a process derived from test-driven development.  It basically started from the premise that writing your tests in the form &#8216;shouldDoX&#8217; helps you outline your tests easily.</p>
<p>That said, I always start by writing a bit of code that I know to be correct, writing tests to cover it and then move on with TDD&#8230;</p>
<p>[Footnote 0: <a href="http://dannorth.net/introducing-bdd/" rel="nofollow">http://dannorth.net/introducing-bdd/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
