<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: X Tests are not X Tests</title>
    <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>X Tests are not X Tests</title>
      <description>&lt;p&gt;Testing is a slippery subject, and it&#8217;s reasonably hard to talk about for one simple reason: the nomenclature is chaotic.  Years ago, I went to a summit with some testing gurus.  I was one of the lone developers there and I asked about the taxonomy of testing.  Cem Kaner, Bret Pettichord,  Brian Marick, and James Bach went through it for us on a flipchart, and it was a nightmare.  You can name tests after their scope: (unit, component, system), their place in the development process (smoke, integration, acceptance, regression), their focus (performance, functional) their visibility (white box, black box), the role of the people writing them (developer, customer).. The list goes on.  There are far more than I can remember.&lt;/p&gt;

&lt;p&gt;Why is it so confusing?  There are are a couple of reasons.  One is that different communities have developed different nomenclature over time.  But, let&#8217;s face it, that&#8217;s true in most fields.  The thing which makes testing nomenclature worse is that the tests themselves aren&#8217;t all that different, or at least, they are often not different enough for us to for us to distinguish them without being told.  Yes, we can tell the difference between a unit test and an acceptance test in most systems, but really there is no force which prevents tests of different types from bleeding through into each other.  Often the &#8220;type&#8221; of a test is more like an attribute: &#8220;here I have a blackbox smoke test, written by a developer for component integration.&#8221;  In the end, all we have are tests and each of them can serve purposes beyond the purpose we originally intended.&lt;/p&gt;

&lt;p&gt;Earlier today, I read a blog by Stephen Walther: &lt;a href=http://stephenwalther.com/blog/archive/2009/04/11/tdd-tests-are-not-unit-tests.aspx&gt;&lt;span class="caps"&gt;TDD&lt;/span&gt; Tests are not Unit Tests&lt;/a&gt;.  In it, he draws some distinctions between various types of testing.  It&#8217;s great that he wrote it because it&#8217;s nice for us to have mental categories for these things, but we have to remember is that they really are just categories.  We get to choose how distinct they will be.  When I write code, most of my &lt;span class="caps"&gt;TDD&lt;/span&gt; tests end up being the same as my unit tests.  I find value in forcing that overlap, and in general, I think overlapping test purposes are great to the degree that the purposes don&amp;#8217;t conflict. You get more for less that way.&lt;/p&gt;

&lt;p&gt;I don&amp;#8217;t see any remedy for the muddle of test types.  We will continue to make up terms to distinguish tests.  We&amp;#8217;ll just have to remember that the types are labels, not bins.</description>
      <pubDate>Mon, 13 Apr 2009 11:48:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:198bd544-9462-4558-9212-989882ced158</guid>
      <author>Michael Feathers</author>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests</link>
      <category>Michaels Musings</category>
    </item>
    <item>
      <title>"X Tests are not X Tests" by iphone fix</title>
      <description>&lt;p&gt;it is really complicated.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Mar 2010 21:34:34 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a8a1e1fd-481f-40be-a074-1766f527563f</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-7824</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by fuel</title>
      <description>&lt;p&gt;Yeah same here &amp;#8211; outsourcing is the key to all big project and testing, but I always first learn the stuff myself so I would not be screwed hard, and this is the usual happening for people who throw the big money in and find that all the money is spent for nothing!      JoHnV&lt;/p&gt;</description>
      <pubDate>Fri, 05 Mar 2010 04:55:19 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:5222ad70-dca7-4f24-8f3a-f16a5d32fc75</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-7703</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Energy</title>
      <description>&lt;p&gt;I always outsource big testing, I know I could know the stuff myself, but I have chosen the simpler road :)&lt;/p&gt;</description>
      <pubDate>Mon, 01 Mar 2010 10:24:40 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:824578d5-e32c-4a05-8f44-4c5983aac552</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-7664</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Ivonne</title>
      <description>&lt;p&gt;&amp;#8220;Why is it so confusing? There are are a couple of reasons&amp;#8221;&lt;/p&gt;


	&lt;p&gt;- Actualy, it is not so confusing. It&amp;#8217;s all depends on your point of view. However, very good post!&lt;/p&gt;


	&lt;p&gt;Cheers!&lt;/p&gt;</description>
      <pubDate>Fri, 18 Dec 2009 04:30:40 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d8be344a-bc72-455c-835f-103c75b1ad9d</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-5913</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by free casino bonus offers</title>
      <description>&lt;p&gt;Not just this post, the whole site and the articles posted here are great. You guys are really woking hard and giving most your time to such things.&lt;/p&gt;</description>
      <pubDate>Mon, 16 Nov 2009 23:07:20 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:09fe19e0-f4c2-4773-8204-5d3663003f76</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-5143</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Bingo</title>
      <description>&lt;p&gt;Nice post but i got little.&lt;/p&gt;</description>
      <pubDate>Thu, 12 Nov 2009 05:54:52 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6f141d35-508a-46e9-ad63-3400a71ea60a</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-5091</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by media.miko@googlemail.com</title>
      <description>&lt;p&gt;&lt;a href="http://www.mistergammon.com/he/" rel="nofollow"&gt;http://www.mistergammon.com/he/&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 25 Aug 2009 06:22:38 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0d0e2939-6cb5-4c5e-b18b-7c2ed03224b0</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-4002</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by ?????</title>
      <description>&lt;p&gt;??? ???&lt;/p&gt;</description>
      <pubDate>Wed, 08 Jul 2009 02:47:57 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:066a0620-b6bf-44bb-b98c-ba4b3809c3c4</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3682</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by jean</title>
      <description>&lt;p&gt;I think the important thing is that a team understand the naming convention. If different teams are calling things differently, then it is not that big a deal. I know I sometimes struggle with the naming &amp;#8211; what is an acceptance test, can a functional test be an acceptance test? I like calling tests that are created in an iteration &amp;#8220;acceptance tests&amp;#8221; but they can be different types of tests &amp;#8211; performance, security, functional, etc.&lt;/p&gt;</description>
      <pubDate>Tue, 21 Apr 2009 23:12:18 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:843ed17d-8892-4997-b4a4-193c3161e1c9</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3204</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Pete Wood</title>
      <description>&lt;p&gt;Reminds me of a comment on Ward&amp;#8217;s Wiki&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://c2.com/cgi/wiki?SixThinkingHats" rel="nofollow"&gt;http://c2.com/cgi/wiki?SixThinkingHats&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&amp;#8216;They are not classifications for thoughts which have already occurred&amp;#8217;&lt;/p&gt;</description>
      <pubDate>Fri, 17 Apr 2009 07:32:18 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:76df33ac-52b5-4a2b-af66-fcc8d8515a41</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3170</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Kyle Szklenski</title>
      <description>&lt;p&gt;I think of my TDD tests as both unit tests and sample test-runs of the interfaces/classes I build. In the past, when it was much harder to unit test C++, I would write the top-most-level code first, in order to figure out exactly what functions I needed on the objects that code used &amp;#8211; that&amp;#8217;s exactly how I use TDD, and I think is the primary reason to use TDD. I forget, but I may have a good post about that up on my blog. If not, I have one in the works.&lt;/p&gt;


	&lt;p&gt;I think if you&amp;#8217;re not able to use your TDD tests as unit tests, then you&amp;#8217;ve lost some of the power of TDD. Admittedly, it&amp;#8217;s not what I consider the most important part of TDD, but it is a very nice aspect. I think I consider Walther&amp;#8217;s post to be mostly artificial. There may or may not be something there, but he certainly (as Rob points out) did not make a point. It may be that I&amp;#8217;m just defining unit test differently than he is, though.&lt;/p&gt;</description>
      <pubDate>Wed, 15 Apr 2009 08:42:55 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d60fee12-02d4-4f13-894f-984d9f624fa6</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3160</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Oil</title>
      <description>&lt;p&gt;&amp;#8220;taxonomy of testing&amp;#8221; that&amp;#8217;s heavenly.&lt;/p&gt;</description>
      <pubDate>Tue, 14 Apr 2009 11:53:29 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:19ad26bb-5427-4138-a690-93407fc1c8b0</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3152</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Rob Conery</title>
      <description>&lt;p&gt;Perfect summation &amp;#8211; and was (essentially) the point I was raising on his blog. It was a decent discussion until he decided to twist my words for me and then deleted all comments.&lt;/p&gt;


	&lt;p&gt;Weak, weak maneuver. Complete professional disrespect and I work with the guy. Go figure.&lt;/p&gt;


	&lt;p&gt;There are many ways to think of tests &amp;#8211; Stephen had a valid point to make but he never made it. I kept expecting a &amp;#8220;therefore&amp;#8230;&amp;#8221; and it didn&amp;#8217;t come.&lt;/p&gt;


	&lt;p&gt;/unsub for me and as far as I&amp;#8217;m concerned, my conversations with him are over.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Apr 2009 14:53:15 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:7dc2b60b-98e3-4710-9ffb-37ef66c1ff98</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3144</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Gil Zilberfeld</title>
      <description>&lt;p&gt;I think the number of names for the different tests comes from its uses. Developers write unit test. QA run functional tests. They also do smoke tests. But I made developers run the smoke tests prior to moving the build to QA.&lt;/p&gt;


	&lt;p&gt;So the jargon is out there, and everybody uses it differently.  There are some terms that are more clear to most people (I believe) like black-box testing. The more we discuss these it will become clearer, and that&amp;#8217;s why I welcome Stephen&amp;#8217;s post. Even if I don&amp;#8217;t agree with everything he says. But the discussion has its way of strengthening the definition overtime.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Apr 2009 13:49:02 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:640bda78-c20e-40c5-8870-0260fd14444c</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3143</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Antony Marcano</title>
      <description>&lt;p&gt;Just read Stephen&amp;#8217;s blog&amp;#8230; I think he&amp;#8217;s trying to get things clear in his own head&amp;#8230; (nothing wrong with that&amp;#8230; it&amp;#8217;s one of the things I use my blog for)...&lt;/p&gt;


	&lt;p&gt;Beck pre-empts this debate in TDD by example by clarifying that by unit tests he means &amp;#8216;small-scale tests&amp;#8217; rather than the &amp;#8216;traditional definition of unit tests&amp;#8217;.&lt;/p&gt;


	&lt;p&gt;Perhaps a better starting point for Stephen might have been &amp;#8220;TDD tests are sometimes unit tests and sometimes more&amp;#8221;...  (Although, I can&amp;#8217;t remember the last time I felt the need for a &amp;#8220;TDD test&amp;#8221; to use concrete collaborators&amp;#8230; I find Test-First Acceptance Tests tend to flush out integration oversights adequately).&lt;/p&gt;</description>
      <pubDate>Mon, 13 Apr 2009 13:38:06 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:451c6387-4357-413d-a20b-420aea1cbec0</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3142</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Antony Marcano</title>
      <description>&lt;p&gt;...Like tags. As in a test might fulfil more than one purpose or be relevant for more than one point of focus, much like the tags we use on blog posts. (or is that what you meant by label?)&lt;/p&gt;</description>
      <pubDate>Mon, 13 Apr 2009 13:19:31 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a9225871-4e43-427c-9d90-bac25e08add1</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3141</link>
    </item>
    <item>
      <title>"X Tests are not X Tests" by Nick Swarr</title>
      <description>&lt;p&gt;Thanks for putting this up.  I didn&amp;#8217;t know how to read Stephen&amp;#8217;s article as I don&amp;#8217;t think there was a clear enough distinction between the activities he&amp;#8217;s describing as unit testing and TDD.  It seemed like an odd mixture between unit testing, TDD, acceptance testing and a dash of BDD.  There were one or two comments that left me scratching my head.&lt;/p&gt;


	&lt;p&gt;Anyways, I am happily doing TDD of which unit tests are the by-product.  Nothing wrong with that.&lt;/p&gt;</description>
      <pubDate>Mon, 13 Apr 2009 13:15:02 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5e3b4a20-233b-4de3-ace5-d51d4c2c9939</guid>
      <link>http://blog.objectmentor.com/articles/2009/04/13/x-tests-are-not-x-tests#comment-3140</link>
    </item>
  </channel>
</rss>
