<?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: Continuous Testing Explained</title>
    <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Continuous Testing Explained</title>
      <description>&lt;p&gt;What is continuous testing? It&amp;#8217;s turning the knob on Test Driven Development up to 11, by automatically running the tests on every save. This has profound effects on the way that &lt;span class="caps"&gt;TDD&lt;/span&gt; is applied, and is likely to make you a more efficient and productive programmer.&lt;/p&gt;


	&lt;p&gt;First, a little history&amp;#8230;&lt;/p&gt;


	&lt;p&gt;The term &amp;#8220;Continuous Testing&amp;#8221; was originally coined by the &lt;a href="http://groups.csail.mit.edu/pag/"&gt;Program Analysis Group&lt;/a&gt; at &lt;span class="caps"&gt;MIT&lt;/span&gt;. Their &lt;a href="http://pag.csail.mit.edu/pubs/David-Saff.html"&gt;research&lt;/a&gt; found, among other things, that &amp;#8220;Developers using continuous testing were three times more likely to complete the [assigned] task before the deadline than those without&amp;#8221; and that &amp;#8220;continuous testing reduced wasted time [related to testing] by 92&#226;&#8364;&#8220;98%.&amp;#8221; These benefits come from a number of interesting effects:&lt;/p&gt;


&lt;h5&gt;Less Overhead&lt;/h5&gt;
The first and most obvious effect of continuous testing is that you don&amp;#8217;t have to manually run the tests. One less button to push&amp;#8230;that&amp;#8217;s always a good thing.&lt;p/&gt;

&lt;h5&gt;Defect Lag Reduced&lt;/h5&gt;
Just as modern Java IDEs like IntelliJ and Eclipse increase feedback and productivity though continuous compilation, continuous testing reduces the time between the introduction of an error and it&amp;#8217;s detection. This leads to more effective regression testing, because it&amp;#8217;s not the expected failures that cost you time, it&amp;#8217;s the unexpected ones. Continuous testing finds unexpected failures right away.&lt;p/&gt;

&lt;h5&gt;Promotes Good &lt;span class="caps"&gt;TDD&lt;/span&gt; Habits&lt;/h5&gt;
If you&amp;#8217;re running the tests on every save, it makes it more difficult to wander off the &lt;span class="caps"&gt;TDD&lt;/span&gt; path. Even though many of the participants in the &lt;span class="caps"&gt;MIT&lt;/span&gt; study were not versed in &lt;span class="caps"&gt;TDD&lt;/span&gt;, several of them reported that they &#226;&#8364;&#339;got a small part of [their] code working before moving on to the next section, rather than trying to debug everything at the end.&#226;&#8364;&#157; Another remarked, &#226;&#8364;&#339;It was easier to see my errors when they were only with one method at a time.&#226;&#8364;&#157; Making incremental changes is a core Agile principle, and directly reflected in the practice of &lt;span class="caps"&gt;TDD&lt;/span&gt;. Continuous testing makes the benefits of incremental development immediately apparent.&lt;p/&gt;

&lt;h5&gt;Tests Stay Fast&lt;/h5&gt;
Using continuous testing helps keep your tests fast. This is something that was not mentioned in the &lt;span class="caps"&gt;MIT&lt;/span&gt; study, but I can attest to it in my own work. If you write a slow test, you&amp;#8217;ll know right away, and you&amp;#8217;ll probably have a good idea exactly what is making the test slow (because you just added it). I think the reason that they didn&amp;#8217;t mention it in the &lt;span class="caps"&gt;MIT&lt;/span&gt; study is that they weren&amp;#8217;t working with legacy code, or external systems, which is where a lot of test slowness comes from.&lt;p/&gt;

&lt;p/&gt;
Today, there are a number of tools that support continuous testing:
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://ct-eclipse.tigris.org/"&gt;CT-Eclipse&lt;/a&gt; (was Continuous Testing Plugin for Eclipse) &amp;#8211; Java/Eclipse&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.zenspider.com/ZSS/Products/ZenTest/"&gt;ZenTest::Autotest&lt;/a&gt; &amp;#8211; Ruby&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://swing1979.googlepages.com/fireworks"&gt;Fireworks&lt;/a&gt; &amp;#8211; Java/IntelliJ&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.infinitest.org"&gt;Infinitest&lt;/a&gt; &amp;#8211; Java&lt;/li&gt;
&lt;/ul&gt;&lt;p/&gt;

	&lt;p&gt;For full disclosure, I should mention that I&amp;#8217;m the admin of the Infinitest project. Our goal is to create a continuous test runner for every development platform. We&amp;#8217;ve already released a Java test runner, and we&amp;#8217;re nearing completion of a Python runner.&lt;/p&gt;


	&lt;p&gt;Continuous testing is a practice that I have followed in my own work for most of 2007. There is little doubt in my mind that it is the future of &lt;span class="caps"&gt;TDD&lt;/span&gt;. Looking forward to the days of multicore systems, continuous testing may be an effective way to realize productivity improvements through better hardware. So long as they are independent (as they should be), test runs can easily be distributed across multiple cores, and perhaps even, multiple machines.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Sep 2007 16:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3e6fcb70-216d-41f1-a6ed-fccf7b5841e4</guid>
      <author>Ben Rady</author>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained</link>
      <category>Ben's Banal Babble</category>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Youtube converter</title>
      <description>&lt;p&gt;Thank you for posting this.&lt;/p&gt;</description>
      <pubDate>Sun, 25 Jul 2010 21:42:34 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c0cc0871-93d8-4a3c-8485-ef111ed86d7f</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-17411</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by dvd to ipad mac</title>
      <description>&lt;p&gt;this  ah ha&lt;/p&gt;</description>
      <pubDate>Tue, 06 Jul 2010 02:53:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:deb777c2-9fbb-4db4-8ccf-d1a7ad91b280</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-15402</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by ilan</title>
      <description>&lt;p&gt;Anyway, that is moot in yours world but I figure you also have spelling skills in terms of programming code word. I am not picking a fight, just very curious.&lt;/p&gt;</description>
      <pubDate>Mon, 28 Jun 2010 15:03:50 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:486796b4-3196-4cd2-97e1-13248888ec35</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-14503</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by galbur</title>
      <description>&lt;p&gt;Anyway, that is moot in yours world but I figure you also have spelling skills in terms of programming code word. I am not picking a fight, just very curious.&lt;/p&gt;</description>
      <pubDate>Mon, 28 Jun 2010 07:51:58 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:49bae498-f753-4ff0-9d32-700d21d6ce3b</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-14489</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by http://www.ostube.net/</title>
      <description>&lt;p&gt;The web client and the window and the java script causes problem for some. Anyway as everything has some sort of disadvantages this software may also have them but the point we have to note here is that how many people&lt;/p&gt;</description>
      <pubDate>Mon, 28 Jun 2010 06:42:47 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ddce21e4-e8c2-45ca-ab17-8a662f842eb1</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-14480</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by ask ve sevgi</title>
      <description>&lt;p&gt;Hah,that was really funny. I even ordered an essay paper on it.These online essay writers made an excellent essay for me.&lt;/p&gt;</description>
      <pubDate>Mon, 28 Jun 2010 06:07:43 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:887318c3-c049-4139-a6ff-d1517416052b</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-14465</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by sohbet</title>
      <description>&lt;p&gt;The web client and the window and the java script causes problem for some. Anyway as everything has some sort of disadvantages this software may also have them but the point we have to note here is that how many people&lt;/p&gt;</description>
      <pubDate>Wed, 19 May 2010 11:34:12 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c1df7450-1763-44b8-ab8b-2f9965c84156</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-11666</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Kent</title>
      <description>&lt;p&gt;Are expert programmers not expert spellers? Does this point matter? I just noticed that you misspelled panicky. Anyway, that is moot in your world but I figure you also have spelling skills in terms of programming code words. I am not picking a fight, just very curious.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.statementwriting.com" rel="nofollow"&gt;statement writing&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 19 May 2010 09:24:43 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:dc06f6ad-9d31-4b47-8957-003cab2f7ca2</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-11653</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by daniel</title>
      <description>&lt;p&gt;I agree that one less button to push is a good thing. I would have thought of a different meaning for continuous meaning if you have not explained it clearly. I would have thought it something negative and tedious.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.sadlovequotesjournal.com" rel="nofollow"&gt;Heartbreak&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 19 May 2010 06:04:53 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e000cbeb-e305-4d9f-8344-14d82bddd473</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-11646</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Frederick</title>
      <description>&lt;p&gt;Thanks for the information. I love tips on how to become a much-improved programmer. I have not gone through formal programming training so any info from the net is a great help.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.bdsmplaypen.com/video/gangbang_explosion_in_bondage-1294" rel="nofollow"&gt;Free Bondage Videos&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 18 May 2010 11:17:10 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0b1bea6c-36e3-4c6c-8047-302abb8a3f07</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-11581</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by ShAaNiG</title>
      <description>&lt;p&gt;We also use conditional checking. What this does is perform a number of builds using the build server with the proposed changes and gives you the option of checking it in iff the builds all pass. This means you can do checking and go to lunch or go home if it breaks a build, the checking fails.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.hubofwholesale.com/" rel="nofollow"&gt;Wholesalers&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 12 Apr 2010 05:56:56 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3a0edc1a-7369-4743-a15f-f2acb930abf1</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-9657</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by ShAaNiG</title>
      <description>&lt;p&gt;Erik &#8211; Wow, yeah, that takes on a whole new meaning.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.dinowholesale.com/" rel="nofollow"&gt;Wholesale Brand Name Clothing&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 10 Apr 2010 11:09:04 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:695be4f9-2534-4d01-b8bf-ef199ca5ead3</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-9610</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by ShAaNiG</title>
      <description>&lt;p&gt;We also use conditional checking. What this does is perform a number of builds using the build server with the proposed changes and gives you the option of checking it in if the builds all pass. This means you can do checking and go to lunch or go home if it breaks a build, the checking fails.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://blog.prudentialwest.com/about/" rel="nofollow"&gt;Prudential West&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 02 Apr 2010 05:40:03 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:6f7d2c40-fcf2-4052-8ea7-8ec1a670cefb</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-9149</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by ShAaNiG</title>
      <description>&lt;p&gt;Erik &#8211; Wow, yeah, that takes on a whole new meaning&#8230;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://blog.prudentialwest.com/about/" rel="nofollow"&gt;Prudential West&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 02 Apr 2010 05:39:43 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ebabf081-2598-4571-a8b7-6a1279c8afe4</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-9148</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by face blog</title>
      <description>&lt;p&gt;This is the best short and sweet explanation of What is continuous testing I found ever. Great post, brilliant.&lt;/p&gt;</description>
      <pubDate>Sat, 27 Mar 2010 00:53:01 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:44f96a6f-52bc-40de-8e3d-843d139207c0</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-8324</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by psn card</title>
      <description>&lt;p&gt;Hah,that was really funny. I even ordered an essay paper on it.These online essay writers  made an excellent essay for me.&lt;/p&gt;</description>
      <pubDate>Tue, 16 Mar 2010 22:09:57 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:9abac1c6-12fd-482a-a471-0690812bdbd8</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-8050</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by top auto insurance companies</title>
      <description>&lt;p&gt;A great blog post makes you think and you&amp;#8217;ve certainly given me a few tid bits to consider.&lt;/p&gt;</description>
      <pubDate>Sat, 05 Dec 2009 10:40:03 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:57426ecc-00e1-4952-bfcb-c43d5fa5cb6a</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-5443</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by beliebte Kasinos</title>
      <description>&lt;p&gt;I admit, I have not been on this webpage in a long time&amp;#8230; however it was another joy to see It is such an important topic and ignored by so many professionals. I thank you to help making people more aware of possible issues.
Great stuff as usual&amp;#8230;.&lt;/p&gt;</description>
      <pubDate>Fri, 22 May 2009 03:02:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0dc83069-3116-4789-961d-42c15f41852a</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-3395</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Daniele</title>
      <description>&lt;p&gt;ct-eclipse seems to be dead and the only installation instructions page is broken&amp;#8230;
&lt;a href="http://ct-eclipse.tigris.org/install.html" rel="nofollow"&gt;http://ct-eclipse.tigris.org/install.html&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 24 Jul 2008 09:06:55 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d66a998a-a97b-4f8b-880a-2d500a2769dd</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-1911</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Peter Lawrey</title>
      <description>&lt;p&gt;We use continous integration and release so that successful releases are immediately available as snapshots to other projects.&lt;/p&gt;


	&lt;p&gt;We also use conditional checkin.  What this does is perform a number of builds using the build server with the proposed changes and gives you the option of checking it in iff the builds all pass.  This means you can do checkins and go to lunch or go home if it breaks a build, the checkin fails.&lt;/p&gt;</description>
      <pubDate>Sat, 22 Sep 2007 14:32:24 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:482e5469-281a-4e16-84d2-bd0cac65490e</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-813</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Ben</title>
      <description>&lt;p&gt;Erik &amp;#8211; Wow, yeah, that takes on a whole new meaning&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Ha!&lt;/p&gt;


	&lt;p&gt;Let me fix that&amp;#8230;.&lt;/p&gt;</description>
      <pubDate>Fri, 21 Sep 2007 08:48:59 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:9dad7207-3d58-41a0-ac98-20575fa13f14</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-811</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Erik</title>
      <description>&lt;p&gt;&amp;lt;fun about typo&amp;gt;&lt;br&gt;
Did you really mean &amp;#8220;continuous complication&amp;#8221;? I&amp;#8217;d vote for &amp;#8220;continuous compilation&amp;#8221;. 
&lt;/p&gt;
&lt;p&gt;Probably a Freudian slip &amp;#8211; if so, you should talk to your analyst about your relationship with your IDE ;-) Or was it just some brainless editor trying to correct a typo?&lt;br&gt;
&amp;lt;/fun about typo&amp;gt;&lt;br&gt;
Besides that, I totally agree with you on the topic.
&lt;/p&gt;</description>
      <pubDate>Thu, 20 Sep 2007 22:22:04 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:31843ff7-7829-4231-a03a-6117fd66ad05</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-809</link>
    </item>
    <item>
      <title>"Continuous Testing Explained" by Samuel A. Falvo II</title>
      <description>&lt;p&gt;I&amp;#8217;ve been doing this for years, but not because I&amp;#8217;m smarter than anyone else.  It was borne out of pure laziness.  Having to edit a file, then exit, then &amp;#8220;make check&amp;#8221; is pretty quick, but considering &lt;em&gt;how fast&lt;/em&gt; development runs can be, it still becomes a burden.  So, I use plain shell scripts to automate the task for me.&lt;/p&gt;


	&lt;p&gt;If you prefer to keep your editor running as you hack on code, I&amp;#8217;m sure a vim- or elisp-script can be written to implement the desired behavior (assuming you&amp;#8217;re using either vim or emacs).  You do not need to use a special purpose IDE.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Sep 2007 21:17:06 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e0777766-0d0b-4beb-9d65-b6173754f03e</guid>
      <link>http://blog.objectmentor.com/articles/2007/09/20/continuous-testing-explained#comment-808</link>
    </item>
  </channel>
</rss>
