<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx</link><description>I like the idea of TDD. I think it could be a good fit for a part of the kind of development I do, but I still don't have the discipline it takes to start doing it. On the other hand, suppose we could write something like: throw NotEnoughInventoryException</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Sadek Drobi&amp;#8217;s Blog &amp;raquo; High abstraction level of DSLs to reduce the testing burden?</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#4633433</link><pubDate>Fri, 19 Oct 2007 17:10:58 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4633433</guid><dc:creator>Sadek Drobi’s Blog » High abstraction level of DSLs to reduce the testing burden?</dc:creator><author>Sadek Drobi’s Blog » High abstraction level of DSLs to reduce the testing burden?</author><description>&lt;p&gt;Pingback from &amp;nbsp;Sadek Drobi&amp;amp;#8217;s Blog &amp;amp;raquo; High abstraction level of DSLs to reduce the testing burden?&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4633433" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#433637</link><pubDate>Tue, 20 Dec 2005 19:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:433637</guid><dc:creator>Andres Aguiar</dc:creator><author>Andres Aguiar</author><description>Hi Rob,&lt;br&gt;&lt;br&gt;Yes, you are probably right, it's a bad example, but don't focus on the example ;)&lt;br&gt;&lt;br&gt;If it's a simpler validation (like a date range) I'll also want to perform it in several places.&lt;br&gt;&lt;br&gt;I think the workflow sample is better. Would you test a Workflow diagram? Would you test rules written for a business rules engine? How?&lt;br&gt;If they are difficult to test, they must be disregarded as a good solution?&lt;br&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=433637" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#433635</link><pubDate>Tue, 20 Dec 2005 19:26:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:433635</guid><dc:creator>Rob Park</dc:creator><author>Rob Park</author><description>As a fulltime TDD'er, it seems to me your design is flawed.  Shouldn't the inventory check be a business function for the business tier only?  That would reduce duplicated logic and allow for a single unit test to cover the logic?&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=433635" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#433024</link><pubDate>Tue, 13 Dec 2005 10:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:433024</guid><dc:creator>Vikram Lashkari</dc:creator><author>Vikram Lashkari</author><description>Hi guys,&lt;br&gt;   This was really a gread dicussion about the Test Driven Developement vs Working at right Level of abstration.. Sharing my experience on this i can say that I have always followed the Test Driven Development strategy..&lt;br&gt;&lt;br&gt;Few of my work u can see there&lt;br&gt;&lt;br&gt;&lt;a target="_new" href="http://www.blueunplugged.com"&gt;http://www.blueunplugged.com&lt;/a&gt;&lt;br&gt;&lt;a target="_new" href="http://l8shop.net"&gt;http://l8shop.net&lt;/a&gt;&lt;br&gt;&lt;a target="_new" href="http://www.victorianplumbing.co.uk"&gt;http://www.victorianplumbing.co.uk&lt;/a&gt;&lt;br&gt;&lt;a target="_new" href="http://www.spudmobile.co.uk"&gt;http://www.spudmobile.co.uk&lt;/a&gt;&lt;br&gt;&lt;a target="_new" href="http://www.mpa3000.co.uk"&gt;http://www.mpa3000.co.uk&lt;/a&gt;&lt;br&gt;&lt;br&gt;Hope u will like my work, u can mail me for any suggestion vikram_lashkari@yahoo.com&lt;br&gt;&lt;br&gt;Thanks again &lt;br&gt;Vikram Lashkari&lt;br&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=433024" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#432739</link><pubDate>Fri, 09 Dec 2005 04:43:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432739</guid><dc:creator>Cory Foy</dc:creator><author>Cory Foy</author><description>Hi Andres,&lt;br&gt;&lt;br&gt;I see now what you're asking. There have been discussions on the TDD mailing list about Test-Driving code generated from a Wizard and other generation frameworks. &lt;br&gt;&lt;br&gt;I think it comes down to how much you want to trust the tool you are using, and the pain points you are experiencing. So, with your WWF example, my question would be, what problems have you run into with it? When you have to change something, how can you know that nothing broke, or how can you know what is going to break?&lt;br&gt;&lt;br&gt;I guess for me I sketch out a design or prototype, then use TDD to fill in the details, being cautious to allow my code to evolve where TDD is leading me without sacrificing where I need to end up. I like to work in small chunks so that I can get rapid feedback about whether it works, and also so that if it doesn't, I'm Ok with throwing it away.&lt;br&gt;&lt;br&gt;I can't see that holding true for things like WWF. Again, I haven't seen it, but I have seen some Speech Server stuff, and the workflow generation in it. It's cool. But how do you test it?&lt;br&gt;&lt;br&gt;And maybe the answer is that you don't. You trust the tool.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432739" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#432639</link><pubDate>Thu, 08 Dec 2005 06:43:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432639</guid><dc:creator>Gishu </dc:creator><author>Gishu </author><description>I would still use TDD :)&lt;br&gt;IMHO it helps me to check all my assumptions rather than take it on faith or the success of one execution path.&lt;br&gt;I haven't had much exposure to DSLs but for me TDD helps my design/software/system talk back to me as to what I need to do next/ do better. &lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432639" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#432563</link><pubDate>Wed, 07 Dec 2005 13:29:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432563</guid><dc:creator>Cory Foy</dc:creator><author>Cory Foy</author><description>I think the hard thing is that you aren't learning TDD with a background C#, you are learning a new language that has familiar syntax. Meaning, you have to learn the new shortcuts that work for you, and also that it will be slower going at first.&lt;br&gt;&lt;br&gt;I wrote a little more on my site in response to this at &lt;a target="_new" href="http://www.cornetdesign.com/2005/12/guitar-lesson-tdd-analogy.html"&gt;http://www.cornetdesign.com/2005/12/guitar-lesson-tdd-analogy.html&lt;/a&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432563" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#432523</link><pubDate>Wed, 07 Dec 2005 00:07:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432523</guid><dc:creator>João Pedro Martins</dc:creator><author>João Pedro Martins</author><description>I am currently in a project where NUnit tests writen in C# are being used to test BizTalk Orchestrations (=DSL). A conceptual mess, but it seems to work.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432523" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#432524</link><pubDate>Wed, 07 Dec 2005 00:07:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432524</guid><dc:creator>Ron Scott</dc:creator><author>Ron Scott</author><description>It may look similar but it is actually very different.  In the first case, your actual implementation code is ensuring that an invalid situation cannot happen.  In the second case, your unit test is making sure that your implementation code enforces business cases properly.  Unit tests don't test business logic!  Unit tests ensure that your application handles business logic properly.  The two snippets you posted are complementary, not competitive.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432524" width="1" height="1"&gt;</description></item><item><title>re: Test Driven Development vs working at the right level of abstraction</title><link>http://weblogs.asp.net/aaguiar/archive/2005/12/05/Test-Driven-Development-vs-working-at-the-right-level-of-abstraction.aspx#432518</link><pubDate>Tue, 06 Dec 2005 23:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432518</guid><dc:creator>Scott Bellware</dc:creator><author>Scott Bellware</author><description>&amp;gt; If your abstractions suck, then your tests&lt;br&gt;&amp;gt; will have trouble doing what you want.&lt;br&gt;&lt;br&gt;If the design pressures are applied from the client code in the test suite, and a given test is in place before a given code path is implemented, how do tests have troubling &amp;quot;doing what you want&amp;quot;?  I would agree that poorly-written tests suffer from this kind of thing, but crappy code is crappy code, be it test code or functional code.&lt;br&gt;&lt;br&gt;I don't experience this in my TDD practice, but I do see how this can happen with end-of-line QA-oriented testing done in waterfall.&lt;br&gt;&lt;br&gt;It's really hard to come out at the end of TDD with abstractions that suck.  Your fist cut at the abstractions might suck, but that's just the nature of software development.  TDD helps surface the realities of why a given design might suck rather than allow the suckiness to go unnoticed causing optimal design phase shifting to cascade through a codebase in such a way that can rarely be tracked to its source.&lt;br&gt;&lt;br&gt;TDD is indeed all about challenging design abstractions, but in doing so, it provides a path through to the application of more optimal solution designs for the given problems.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432518" width="1" height="1"&gt;</description></item></channel></rss>