

<?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>Plastic/Blog &#187; Test Driven Development</title>
	<atom:link href="http://blog.codiceplastico.com/index.php/tag/test-driven-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.codiceplastico.com</link>
	<description>Code Elegance</description>
	<lastBuildDate>Sat, 28 Aug 2010 10:27:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Random thoughts on TDD</title>
		<link>http://blog.codiceplastico.com/index.php/2008/12/19/random-thoughts-on-tdd/</link>
		<comments>http://blog.codiceplastico.com/index.php/2008/12/19/random-thoughts-on-tdd/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 22:57:39 +0000</pubDate>
		<dc:creator>Emanuele DelBono</dc:creator>
				<category><![CDATA[Emanuele DelBono]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://blog.codiceplastico.com/?p=181</guid>
		<description><![CDATA[Here it is a flow of random thoughts about Test Driven Development. Naturally IMHO. TDD is not about testing application is about design application, and have a (nice) side effect that creates a suite of tests The Test obtained with TDD does not cover all the cases, but you can write more test when you need [...]]]></description>
			<content:encoded><![CDATA[<p>Here it is a flow of random thoughts about Test Driven Development. Naturally IMHO.</p>
<ul>
<li>TDD is not about testing application is about design application, and have a (nice) side effect that creates a suite of tests</li>
<li>The Test obtained with TDD does not cover all the cases, but you can write more test when you need new cases or find a new bug</li>
<li>The code written in TDD is less and it focused on the needs</li>
<li>The code written in TDD is more orthogonal and simpler to maintain</li>
<li>The first red bar is the signal that the test is testing something (and it is very important)</li>
<li>The tests cannot contains if, switch, etc&#8230;so they need to be simple</li>
<li>Learning TDD is difficult: the impact is the same that you have when passing from structured programming to Object Oriented Programming</li>
<li>Learning TDD requires times and perseverance</li>
<li>You cannot learn TDD reading articles and books, you must try it</li>
<li>Every piece of code is testable</li>
<li>Testing that the tone of red is that the user likes is not a task of TDD</li>
<li>With the right use of Mock Objects you can test that the gradient is correctly set</li>
<li>The test cases comes from the User Stories written with the customer and then they responds to requirements</li>
<li>The Team that use TDD must be skilled enough&#8230;and Pair Programming helps a lot</li>
<li>The Test code is bigger than the tested code</li>
<li>TDD force you to think about what you&#8217;re writing</li>
<li>TDD force you to declare what you need before writing something</li>
<li>TDD put the developer to the client side of his code and so help him to write better interfaces</li>
<li>TDD helps you to write cleaner and decoupled code</li>
<li>The Integration Tests helps you to understand how your class interacts with others</li>
<li>When you need to refactoring your code you can start from tests</li>
<li>Tests are documentation: read a test is a great help to understand how to use your class</li>
<li>TDD does not guarantee that you code doesn&#8217;t contains bugs</li>
<li>TDD guarantee that old bug doesn&#8217;t come to life again</li>
<li>The start up cost of TDD is write off during the life of the project</li>
<li>The TDD reduce a lot the time needed for manual testing</li>
<li>With TDD the debugger is used like a surgery tool</li>
<li>TDD helps you to simplify the problem dividing it in small part and every solved part is a small step to the final solution</li>
<li>Every test case is a single functionality: if one test fail you have only one problem</li>
<li>If  you have two red test you have two distinct problems</li>
<li>Every test add a new functionality to the code</li>
<li>Is difficult to test multi threading applications</li>
<li>It&#8217;s expensive testing the UI, but there are patterns that decrease the UI code (MVP/MVC)</li>
<li>The integrations test against database help you to know if the database and the queries are ok</li>
<li>TDD force you to written less encapsulated code to  make it testable</li>
<li>TDD force you to write independent object and to inject all the dependencies</li>
<li>Write test after code is not always possible</li>
<li>TDD is not a silver bullet (but it&#8217;s help a lot!)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.codiceplastico.com/index.php/2008/12/19/random-thoughts-on-tdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
