<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>From the Editor of Methods &#38; Tools &#187; TDD</title>
	<atom:link href="http://blog.martinig.ch/tag/tdd/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.martinig.ch</link>
	<description></description>
	<lastBuildDate>Fri, 25 Jun 2010 13:16:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ten Articles to Learn More on Test-Driven Development (TDD)</title>
		<link>http://blog.martinig.ch/links/ten-articles-to-learn-more-on-test-driven-development-tdd/</link>
		<comments>http://blog.martinig.ch/links/ten-articles-to-learn-more-on-test-driven-development-tdd/#comments</comments>
		<pubDate>Mon, 03 May 2010 11:56:58 +0000</pubDate>
		<dc:creator>The Editor</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://blog.martinig.ch/?p=536</guid>
		<description><![CDATA[The software development articles directory has just passed the mark of 2000 articles categorized in its database. Test-Driven Development (TDD) is currently a topic of debate in the software development community, as even the value of unit testing is questioned. Here is my selection of 10 interesting TDD articles that should help you get more [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.softdevarticles.com/">software development articles directory</a> has just passed the mark of 2000 articles categorized in its database. Test-Driven Development (TDD) is currently a topic of debate in the software development community, as even <a href="http://www.methodsandtools.com/dynpoll/oldpoll.php?UnitTest2">the value of unit testing is questioned</a>. Here is my selection of 10 interesting <a href="http://www.softdevarticles.com/modules/weblinks/viewcat.php?cid=47">TDD articles</a> that should help you get more knowledge on this topic. I have tried to find items that could apply more specifically to different programming languages.<span id="more-536"></span></p>
<p>* <a href="http://www.methodsandtools.com/archive/archive.php?id=20">Improving Application Quality Using Test-Driven Development (TDD)</a></p>
<p>* <a href="http://www.agiledata.org/essays/tdd.html">Introduction to Test Driven Design (TDD)</a></p>
<p>* <a href="http://www.intelrate.com/articles/agile/mockmethod/">TDD from scratch</a></p>
<p>* <a href="http://www.ibm.com/developerworks/java/library/j-xp042203/index.html">Demystifying Extreme Programming: Test-Driven Programming</a></p>
<p>* <a href="http://www.methodsandtools.com/archive/archive.php?id=89">TDD &#8211; FDD &#8211; BDD… Why not PDD?</a></p>
<p>* <a href="http://www.theserverside.com/news/1365050/Using-JMock-in-Test-Driven-Development">Using JMock in Test Driven Development</a></p>
<p>* <a href="http://www.methodsandtools.com/archive/archive.php?id=59">Mocking the Embedded World: Test-Driven Development, Continuous Integration, and Design Patterns</a></p>
<p>* <a href="http://onlamp.com/pub/a/python/2004/12/02/tdd_pyunit.html">Test-Driven Development in Python</a></p>
<p>* <a href="http://msdn.microsoft.com/en-us/magazine/cc164243.aspx">Apply Test-Driven Development to your Database Projects</a></p>
<p>* <a href="http://www.adobe.com/devnet/flex/articles/unit_testing.html">Unit testing and Test Driven Development (TDD) for Flex and ActionScript 3.0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.martinig.ch/links/ten-articles-to-learn-more-on-test-driven-development-tdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Growing Object-Oriented Software, Guided by Tests</title>
		<link>http://blog.martinig.ch/books/growing-object-oriented-software-guided-by-tests/</link>
		<comments>http://blog.martinig.ch/books/growing-object-oriented-software-guided-by-tests/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 07:56:18 +0000</pubDate>
		<dc:creator>The Editor</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[object oriented]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.martinig.ch/?p=529</guid>
		<description><![CDATA[Object orientation (OO) is not a trendy concept these days, but it hasn&#8217;t certainly lost it values. The purpose of this book is to integrate the development of object oriented software with the test-driven development (TDD) approach, more specifically in Java. It starts with an introduction to TDD and the tools (Junit, jMock2) that will [...]]]></description>
			<content:encoded><![CDATA[<p>Object orientation (OO) is not a trendy concept these days, but it hasn&#8217;t certainly lost it values. The purpose of this book is to integrate the development of object oriented software with the test-driven development (TDD) approach, more specifically in Java. It starts with an introduction to TDD and the tools (Junit, jMock2) that will be used. It describes then in detail the TDD process that is then illustrated by a large example. The book ends with more software testing topics like tests smells or tests readability. A final part is dedicated to special aspects of testing like persistence, threads and asynchronous code.</p>
<p>The book could be read from start to end or be used as a reference book. In the preface, the authors say that the book is intended for developers with professional experience and some first knowledge of TDD. It really goes far beyond &#8220;toy&#8221; examples that you can find in programming learning books. The content is a balanced mix of concepts, examples and diagrams that makes it easy to read. Besides what could be considered &#8220;catchy&#8221; acronyms (OO+TDD), this book is an excellent reference on how to design and program software (the authors use the nice concept of &#8220;growing&#8221; software). I will consider it a must for anyone programming in Java, but I will also recommend it to people programming in other languages, as the thinking process could be applied in other contexts and with similar tools.</p>
<p><strong>Reference</strong>: &#8220;Growing Object-Oriented Software, Guided by Tests&#8221;, Steve Freeman, Nat Pryce, Addison-Wesley, 358 pages, ISBN 978-0-321-50362-7</p>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/0321503627/methotools-20">Get more details on this book or buy it on amazon.com</a><br />
<a href="http://www.amazon.co.uk/exec/obidos/ASIN/0321503627/methotools-21">Get more details on this book or buy it on amazon.co.uk</a></p>
<p><strong>Quotes</strong></p>
<p>&#8220;What if software wasn&#8217;t &#8220;made&#8221;, like we make a paper airplane &#8211; finish folding it and fly it away? What if, instead, we treated software more like a valuable, productive plant, to be nurtured, pruned, harvested, fertilized, and watered? Traditional farmers know how to keep plants productive for decades or even centuries. How would software development be different if we treated our programs the same way?&#8221;</p>
<p>&#8220;As John Gall wrote in &#8220;The Systems Bible: The Beginner&#8217;s Guide to Systems Large and Small&#8221;: a complex systems that works is invariably found to have evolved from a simple system that works&#8221;.</p>
<p>&#8220;Sometimes we find it difficult to write a test for some functionality we want to add to our code. In our experience, this usually means that our design can be improved &#8211; perhaps the class is too tightly coupled to its environment or does not have clear responsibilities. When this happens, we first check whether it&#8217;s an opportunity to improve our code, before working around the design by making the test more complicated or using more sophisticated tools. We&#8217;ve found that the qualities that make an object easy to test also make our code responsive to change.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.martinig.ch/books/growing-object-oriented-software-guided-by-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linkopedia June 2009</title>
		<link>http://blog.martinig.ch/links/linkopedia-june-2009/</link>
		<comments>http://blog.martinig.ch/links/linkopedia-june-2009/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:32:58 +0000</pubDate>
		<dc:creator>The Editor</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.martinig.ch/?p=298</guid>
		<description><![CDATA[How TDD and Pairing Increase Production
Continuous Integration On A Real, Big Project

Agile is NOT a Project Management Methodology

SmartGWT is a GWT based framework that allows you to not only utilize its comprehensive widget library for your application UI.
Webmasters and web developers can use Page Speed to evaluate the performance of their web pages and to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://anarchycreek.com/2009/05/26/how-tdd-and-pairing-increase-production/">How TDD and Pairing Increase Production</a></p>
<p><a href="http://davybrion.com/blog/2009/05/continuous-integration-on-a-real-big-project/">Continuous Integration On A Real, Big Project<br />
</a></p>
<p><a href="http://mosaicprojects.wordpress.com/2009/03/05/agile-is-not-pm/">Agile is NOT a Project Management Methodology<br />
</a></p>
<p><a href="http://code.google.com/p/smartgwt/">SmartGWT</a> is a GWT based framework that allows you to not only utilize its comprehensive widget library for your application UI.</p>
<p>Webmasters and web developers can use <a href="http://code.google.com/speed/page-speed/">Page Speed</a> to evaluate the performance of their web pages and to get suggestions on how to improve them.</p>
<p><a href="http://www.scrumalliance.org/articles/128-how-scrum-helped-ourteam">Article: How Scrum Helped Our Team</a></p>
<p><a href="http://www.ibm.com/developerworks/web/library/wa-aj-multitier/index.html">Article: A multi-tier architecture for building RESTful Web services</a></p>
<p><a href="http://www.testingtv.com/2009/05/22/applying-user-testing-during-development/">Video: Applying User Testing During Development</a></p>
<p><a href="http://www.riatube.com/2009/06/04/practical-functional-javascript/">Video: Practical Functional JavaScript</a></p>
<p><a href="http://www.tvagile.com/2009/06/04/bas-vodde-on-large-scale-scrum/">Video Interview: Bas Vodde on Large Scale Scrum</a></p>
<p><a href="http://www.java-tv.com/2009/06/08/effective-java-reloaded-2/">Video: Effective Java Reloaded</a></p>
<p>Find more interesting links on the <a href="http://www.softdevlinks.com/">software development links directory</a>, the <a href="http://www.softdevtools.com/">software development tools directory</a>, the <a href="http://www.softdevarticles.com/">software development articles directory</a>, the <a href="http://www.softdevblogs.com/">software development blogs aggregator</a> or the <a href="http://www.softdevtube.com/">software development videos directory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.martinig.ch/links/linkopedia-june-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking for Agile Blogs</title>
		<link>http://blog.martinig.ch/news/looking-for-agile-blogs/</link>
		<comments>http://blog.martinig.ch/news/looking-for-agile-blogs/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 15:30:45 +0000</pubDate>
		<dc:creator>The Editor</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[scr]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.martinig.ch/?p=244</guid>
		<description><![CDATA[I have recently created a new web site AgileVoices.com that aggregates for RSS feeds concerning agile software development. If you know about a good blog feed that is missing from the current roster, I would be please to add it. Thanks for your cooperation.
]]></description>
			<content:encoded><![CDATA[<p>I have recently created a new web site <a href="http://www.agilevoices.com/">AgileVoices.com</a> that aggregates for RSS feeds concerning agile software development. If you know about a good blog feed that is missing from the current roster, I would be please to add it. Thanks for your cooperation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.martinig.ch/news/looking-for-agile-blogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Summer 2008 Issue of Methods &amp; Tools</title>
		<link>http://blog.martinig.ch/methods-tools/summer-2008-issue-of-methods-tools/</link>
		<comments>http://blog.martinig.ch/methods-tools/summer-2008-issue-of-methods-tools/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 15:17:24 +0000</pubDate>
		<dc:creator>The Editor</dc:creator>
				<category><![CDATA[Methods & Tools]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://blog.martinig.ch/?p=110</guid>
		<description><![CDATA[Methods &#38; Tools is a free e-newsletter for software developers, testers and project managers. Summer 2008 issue&#8217;s content:
* UML versus Domain-Specific Languages
* We Increment to Adapt, We Iterate to Improve
* Building Products with Acceptance TDD
* Getting and Keeping Control over your Project
60 pages of software development knowledge.
To download or read this issue go to http://www.methodsandtools.com/
]]></description>
			<content:encoded><![CDATA[<p>Methods &amp; Tools is a free e-newsletter for software developers, testers and project managers. Summer 2008 issue&#8217;s content:<br />
* UML versus Domain-Specific Languages<br />
* We Increment to Adapt, We Iterate to Improve<br />
* Building Products with Acceptance TDD<br />
* Getting and Keeping Control over your Project</p>
<p>60 pages of software development knowledge.</p>
<p>To download or read this issue go to <a href="http://www.methodsandtools.com/">http://www.methodsandtools.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.martinig.ch/methods-tools/summer-2008-issue-of-methods-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Three Rules of Test Driven Development</title>
		<link>http://blog.martinig.ch/software-development/the-three-rules-of-test-driven-development/</link>
		<comments>http://blog.martinig.ch/software-development/the-three-rules-of-test-driven-development/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 14:45:53 +0000</pubDate>
		<dc:creator>The Editor</dc:creator>
				<category><![CDATA[Quotes]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.martinig.ch/?p=93</guid>
		<description><![CDATA[Over the years I have come to describe Test Driven Development in terms of three simple rules. They are:
1. You are not allowed to write any production code unless it is to make a failing unit test pass.
2. You are not allowed to write any more of a unit test than is sufficient to fail; [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years I have come to describe Test Driven Development in terms of three simple rules. They are:<br />
1. You are not allowed to write any production code unless it is to make a failing unit test pass.<br />
2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.<br />
3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.</p>
<p>You must begin by writing a unit test for the functionality that you intend to write. But by rule 2, you can&#8217;t write very much of that unit test. As soon as the unit test code fails to compile, or fails an assertion, you must stop and write production code. But by rule 3 you can only write the production code that makes the test compile or pass, and no more.</p>
<p>If you think about this you will realize that you simply cannot write very much code at all without compiling and executing something. Indeed, this is really the point. In everything we do, whether writing tests, writing production code, or refactoring, we keep the system executing at all times. The time between running tests is on the order of seconds, or minutes. Even 10 minutes is too long.</p>
<p>Robert  Martin</p>
<p><a href="http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd">http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd</a></p>
<p>Besides these rules and independently of an agile approach, I always like as a developer being able to verify quickly my code, because it makes much more easier to find all the errors I do ;o)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.martinig.ch/software-development/the-three-rules-of-test-driven-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
