<?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>James Grenning's Blog &#187; Embedded TDD</title>
	<atom:link href="http://www.renaissancesoftware.net/blog/archives/category/embedded-tdd/feed" rel="self" type="application/rss+xml" />
	<link>http://www.renaissancesoftware.net/blog</link>
	<description>Blogging about Agile Development, especially embedded.  Follow me on twitter: jwgrenning</description>
	<lastBuildDate>Thu, 12 Jan 2012 00:59:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Spying on Embedded &#8216;asm&#8217; directives</title>
		<link>http://www.renaissancesoftware.net/blog/archives/136</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/136#comments</comments>
		<pubDate>Fri, 03 Jun 2011 01:06:00 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Test-driven Development for embedded C]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=136</guid>
		<description><![CDATA[Sometimes embedded developers have to use inline assembler instructions to get better control of the processor, or to improve performance. How should we deal with those when we&#8217;re doing TDD and testing off the target? What&#8217;s the problem? The embedded asm statements cause compilation errors if the assembler instructions are not part of the off-target [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/136/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Design and Embedded</title>
		<link>http://www.renaissancesoftware.net/blog/archives/81</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/81#comments</comments>
		<pubDate>Thu, 12 Nov 2009 12:31:03 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Evolutionary Design]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Embedded Agile]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=81</guid>
		<description><![CDATA[One important realization on the journey from a BDUF approach to an iterative and agile approach is that design is never done. Designs evolve. The waterfall emphasis has been to unnaturally try to control software physics by imposing requirements freezes and burdensome change control. The process of developing software is part science and part creative. [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/81/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Embedded Memory Constraints and TDD</title>
		<link>http://www.renaissancesoftware.net/blog/archives/72</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/72#comments</comments>
		<pubDate>Tue, 10 Nov 2009 23:33:19 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=72</guid>
		<description><![CDATA[Constrained Memory is the reality for many embedded developers. Running tests in the development system won&#8217;t suffer the same memory constraints found in the target. Here are a few things to help TDD in constrained memory situations. First of all, use dual targeting so the bulk of your code is tested off-target. See my paper [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/72/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Test Driven Development for Embedded?</title>
		<link>http://www.renaissancesoftware.net/blog/archives/55</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/55#comments</comments>
		<pubDate>Wed, 07 Oct 2009 17:02:47 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=55</guid>
		<description><![CDATA[Embedded software has all the challenges of &#8220;regular&#8221; software, like poor quality and unreliable schedules. It is just software with some additional challenges. The additional challenges do not disqualify TDD for embedded. TDD even helps with some of those uniquely embedded challenges. Leaving embedded out of it for a moment, here are benefits that TDD [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/55/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What Should you Expect from a Unit Test Harness</title>
		<link>http://www.renaissancesoftware.net/blog/archives/50</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/50#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:43:13 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[test-driven-development-tdd]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=50</guid>
		<description><![CDATA[A unit test harness’ job is to provide: A concise common language to express test cases A concise common language to express expected results A place to collect all the unit test cases for the project, system, or subsystem The facilities to run the test cases, either in full or partial batches A concise report [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/50/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deep Agile Panel Questions &#8211; Change</title>
		<link>http://www.renaissancesoftware.net/blog/archives/43</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/43#comments</comments>
		<pubDate>Wed, 06 May 2009 14:41:05 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=43</guid>
		<description><![CDATA[Prior to the Deep Agile conference, I received a number of questions about getting people to change, to try new things. Change is hard. People need to be motivated to change. &#8220;If it ain’t broke, don’t fix it&#8221; they say. But there is always some things that are broken. First there needs to be awareness/acceptance [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/43/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Let Embedded Tool Chain Slow You Down.</title>
		<link>http://www.renaissancesoftware.net/blog/archives/41</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/41#comments</comments>
		<pubDate>Wed, 01 Apr 2009 22:55:15 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=41</guid>
		<description><![CDATA[During my TDD session at the Embedded Systems Conference yesterday, I did a demo. Before the demo, I make the case for TDD as a way to prevent bugs (see Physics of TDD). For the live demo I usually code on my mac and run the tests there as well. The question always comes up: [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/41/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Deep Agile Embedded Brain Storm</title>
		<link>http://www.renaissancesoftware.net/blog/archives/40</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/40#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:07:52 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Deep Agile Embedded]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=40</guid>
		<description><![CDATA[Let&#8217;s say you were an embedded systems developer, and you were planning on attending a conference like the Deep Agile Embedded. What questions would you hope you could get answers for at the conference? What if you already knew it all but were sending your boss, co-worker, or CEO who needed to learn more, what [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/40/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zune Bug: Test Driven Bug Fix</title>
		<link>http://www.renaissancesoftware.net/blog/archives/38</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/38#comments</comments>
		<pubDate>Thu, 19 Feb 2009 20:42:27 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Agile Embedded]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[device driver]]></category>
		<category><![CDATA[Embedded Software]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[zune bug]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=38</guid>
		<description><![CDATA[The Microsoft Zune 30G had a well known crash to bring in the new year. Here is the snippet of code that is the alleged culprit, from one of MS&#8217;s suppliers (Freescale). The job of this function is to convert the input days to the current day, month, year, and day of the week. The [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/38/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crashing Your Way to Great Legacy C Tests</title>
		<link>http://www.renaissancesoftware.net/blog/archives/27</link>
		<comments>http://www.renaissancesoftware.net/blog/archives/27#comments</comments>
		<pubDate>Sat, 20 Dec 2008 04:17:17 +0000</pubDate>
		<dc:creator>jwgrenning</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Embedded TDD]]></category>
		<category><![CDATA[Test Driven Development]]></category>

		<guid isPermaLink="false">http://www.renaissancesoftware.net/blog/?p=27</guid>
		<description><![CDATA[Adding tests to legacy C or C++ code can be a challenge. Code not designed to be tested won&#8217;t naturally be testable. Dependencies will be unmanaged and invisible. Getting that first test written will hurt, a lot. Don&#8217;t despair! The first test is the hardest, but subsequent tests are much easier. Knowing what to do [...]]]></description>
		<wfw:commentRss>http://www.renaissancesoftware.net/blog/archives/27/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

