<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Developer Testing: Kevin Lawrence</title>
<link>http://www.developertesting.com/</link>
<description>Developer Testing - A place to gain and share knowledge.</description>
<copyright>Copyright 2009</copyright>
<lastBuildDate>Mon, 14 Jan 2008 16:46:27 -0800</lastBuildDate>
<generator>http://www.movabletype.org/?v=3.16</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 

" lastn="15">
<item>
<title>Hoorah for XSLT!</title>
<description><![CDATA[<blockquote>It would be handy to have a report of all the unexpected exceptions that get thrown.</blockquote>

<p>I've lost count of the number of times I've heard that. I've even said it myself a few times.</p>

<p>It seemed like it would be pretty easy to do using the <code>dashboard.xml</code> feature of AgitarOne, so I decided to give it a try.</p>]]></description>
<link>http://www.developertesting.com/archives/month200801/20080114-000458.html</link>
<guid>http://www.developertesting.com/archives/month200801/20080114-000458.html</guid>
<category>Homepage</category>
<pubDate>Mon, 14 Jan 2008 16:46:27 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>JUnit Factory is a Jolt Award Finalist!</title>
<description><![CDATA[<p>First we generate over a million free JUnit tests and then we get nominated for a Jolt Award. </p>

<p>What a great end to the first year of <a href="http://www.junitfactory.com">JUnit Factory</a>!</p>]]></description>
<link>http://www.developertesting.com/archives/month200801/20080103-000456.html</link>
<guid>http://www.developertesting.com/archives/month200801/20080103-000456.html</guid>
<category>Homepage</category>
<pubDate>Thu, 03 Jan 2008 15:15:01 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>qu’ils mangent de la brioche</title>
<description><![CDATA[<p>It is a curious fact that, if you say</p>

<blockquote>Let them eat cake!</blockquote>

<p>at an international gathering, the French-speaking people will have no idea what you are talking about. Even if you say it in French.</p>]]></description>
<link>http://www.developertesting.com/archives/month200710/20071015-eat cake.html</link>
<guid>http://www.developertesting.com/archives/month200710/20071015-eat cake.html</guid>
<category>Homepage</category>
<pubDate>Mon, 15 Oct 2007 10:03:32 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>In Praise of Abstraction</title>
<description><![CDATA[    <h2>A History of Build Systems</h2>
    <p>
      In my younger days, before I knew any better, many projects I worked on compiled and published their software manually.
      You'd type <code>cc</code> and then copy these bits over there and then zip that directory and post it to there.
      Eventually, we figured out we could write little scripts to automate all the tedious bits and make it less fragile
      and more repeatable.
    </p>
    
    <p>
      One day, I discovered the discipline of daily builds and tools like <i>make</i> and my life got a whole lot better.
      <i>Make</i> gave us, in Elizabeth's handy phrase <a href="http://www.testobsessed.com/2007/02/19/functional-test-tools-the-next-generation-part-2-of-2/">"a place to put things"</a>.
    </p>
]]></description>
<link>http://www.developertesting.com/archives/month200710/20071013-In Praise of Abstraction.html</link>
<guid>http://www.developertesting.com/archives/month200710/20071013-In Praise of Abstraction.html</guid>
<category>Developer Testing</category>
<pubDate>Sat, 13 Oct 2007 16:37:01 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>The Commitment Principle</title>
<description><![CDATA[<p><a href="http://www.testobsessed.com/">Elizabeth Hendrickson</a> is a tremendous facilitator and a canny manipulator.</p>

<p><a href="http://www.testobsessed.com/"><img alt="elizabeth.jpg" src="http://www.developertesting.com/archives/images/elizabeth.jpg" width="480" height="360" /></a></p>

<p>In <a href="http://www.amazon.com/Influence-Psychology-Persuasion-Robert-Cialdini/dp/0688128165">Influence: The Psychology of Persuasion</a>, Robert Cialdini describes various techniques for making people do things that, if they were thinking clearly, they would otherwise not do because of lethargy, laziness, or because it would offend their better judgment.</p>

<p>One of those techniques is <em>The Commitment Principle</em> which was used on American POWs to great effect by the Chinese during the Korean War.<br />
</p>]]></description>
<link>http://www.developertesting.com/archives/month200710/20071013-Agile Functional Testing Commitment.html</link>
<guid>http://www.developertesting.com/archives/month200710/20071013-Agile Functional Testing Commitment.html</guid>
<category>Developer Testing</category>
<pubDate>Sat, 13 Oct 2007 12:34:15 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Scorecard for Bowling Scorer</title>
<description><![CDATA[<p>JUnit Factory has a new feature - project dashboards - and I thought I'd try it out on my bowling code.</p>]]></description>
<link>http://www.developertesting.com/archives/month200705/20070507-000429.html</link>
<guid>http://www.developertesting.com/archives/month200705/20070507-000429.html</guid>
<category>Homepage</category>
<pubDate>Mon, 07 May 2007 14:36:51 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>What Color Are My Tests?</title>
<description><![CDATA[<p>I came across a nice quote from Ron Jeffries in answer to the eternal question about the color of the tests that result from TDD.</p>]]></description>
<link>http://www.developertesting.com/archives/month200704/20070406-000419.html</link>
<guid>http://www.developertesting.com/archives/month200704/20070406-000419.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 06 Apr 2007 16:16:24 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Triangular Honey from Triangular Bees</title>
<description><![CDATA[<p>
      I hosted a JUnit Factory presentation a few days ago (you can
      <a href="http://www.agitar.com/downloads/webinars/junit_struts/testing_struts_junit.html">watch
      it online</a> if you missed it first time around) and spent a fair amount of time talking about the Triangle sample
      in the <a href="http://www.junitfactory.com/demo/">JUnit Factory demo</a>.
    </p>
]]></description>
<link>http://www.developertesting.com/archives/month200704/20070406-000418.html</link>
<guid>http://www.developertesting.com/archives/month200704/20070406-000418.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 06 Apr 2007 14:47:56 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Web Technology Cheat Sheets</title>
<description><![CDATA[<p>There are a handful of web technologies that I use a lot. It's handy to have a cheat sheet around for when I can't remember whether it's switch-case or choose-when or if-test-else.</p>

<p>Here are a few that I use all the time:  </p>

<ul>
  <li><a href="http://www.mulberrytech.com/quickref/index.html">xml, xpath &amp; xslt</a></li>
  <li><a href="http://ndpsoftware.com/JSPXMLCheatSheet.html">JSP, EL, JSTL</a></li>
  <li><a href="http://www.amk.ca/python/howto/regex/">Regex</a></li>
</ul>

<p>Any more I should know about?<br />
</p>]]></description>
<link>http://www.developertesting.com/archives/month200704/20070405-000417.html</link>
<guid>http://www.developertesting.com/archives/month200704/20070405-000417.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 05 Apr 2007 10:52:57 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Coding in Public</title>
<description><![CDATA[<p>
I can code passably well and I am comfortable with public speaking - but there is something about combining the two that makes my brain just completely shut down.
</p>]]></description>
<link>http://www.developertesting.com/archives/month200703/20070322-000414.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070322-000414.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 22 Mar 2007 08:01:32 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Characterization Test Failures</title>
<description><![CDATA[<p>
For completeness, I run the characterization tests one last time. As you might expect, there are failures because the behavior of <code>getSecondBall()</code> and <code>needsMoreBalls</code> changed.
</p>]]></description>
<link>http://www.developertesting.com/archives/month200703/20070320-000412.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070320-000412.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Tue, 20 Mar 2007 19:27:23 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Spare!</title>
<description><![CDATA[    <p>
      I am impatient to be done now, so I'll try to get through the code for spares quite quickly so that
      I can review my findings. 
</p>]]></description>
<link>http://www.developertesting.com/archives/month200703/20070320-000411.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070320-000411.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Tue, 20 Mar 2007 19:07:27 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>How Are Those Characterization Tests?</title>
<description><![CDATA[    <p>
      Someone asked me how the characterization tests fared after such an extensive change. After all,
      I added new methods, new behavior to existing methods and I refactored extensively.
    </p>

]]></description>
<link>http://www.developertesting.com/archives/month200703/20070320-000410.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070320-000410.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Tue, 20 Mar 2007 18:04:18 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>How Are Those Acceptance Tests?</title>
<description><![CDATA[    <p>
With <a href="http://www.developertesting.com/archives/month200703/20070320-000407.html">the code for strikes written</a>, it's time to run the acceptance tests to see if they agree that we are done.
    </p>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070320-000409.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070320-000409.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Tue, 20 Mar 2007 16:50:43 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Strike!</title>
<description><![CDATA[    <p>
      According to the rules:
    </p>

    <blockquote>
    2.1.3 A strike is made when a full setup of pins is knocked down with the first delivery in a frame.
    </blockquote>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070320-000407.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070320-000407.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Tue, 20 Mar 2007 14:37:18 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Characterization Tests Revisited</title>
<description><![CDATA[    <p>After <a href='http://www.developertesting.com/archives/month200703/20070312-000400.html'>I completed the first story,
      I generated some characterization tests</a> with <a href='http://www.junitfactory.com'>JUnit Factory</a>.</p>

    <p>
      Before I move on to the next story, I want to revisit those tests and make sure we have not introduced any regressions.
    </p>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070319-000406.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070319-000406.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 19 Mar 2007 14:25:25 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>How does the Score Sheet Look?</title>
<description><![CDATA[    <p>
      Before I move on to spares and strikes, it would be nice to see how the score sheet looks. In
      <a href='http://www.developertesting.com/archives/month200703/20070315-000402.html'>an earlier post</a>,
      I claimed that one of the reasons for integrating the UI early is to make sure the domain model will satisfy the
      requirements of the user interface. Let's see if it does.
    </p>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070319-000405.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070319-000405.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 19 Mar 2007 09:16:55 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Are We There Yet?</title>
<description><![CDATA[    <p>My <a href='http://www.developertesting.com/archives/month200703/20070315-000403.html'>last post</a> ended with this bold assertion:</p>

    <blockquote>
    If I am not mistaken, I have written enough code to pass the acceptance tests for
    this story.
    </blockquote>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070316-000404.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070316-000404.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 16 Mar 2007 15:05:12 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>First Design Your Data Structure</title>
<description><![CDATA[    <p>
      It's at about this stage of the bowling example that people usually leap into a discussion about the appropriate data
      structure to store the rolls and the APIs for exposing the results. 
</p>]]></description>
<link>http://www.developertesting.com/archives/month200703/20070315-000403.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070315-000403.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 15 Mar 2007 16:08:11 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>In which we design the score card</title>
<description><![CDATA[    <p>
In the previous installment, I wrote the code that implements rule 2.1.1.
 For rule 2.1.2, I finally start to add up some scores and show them in the score card.
    </p>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070315-000402.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070315-000402.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 15 Mar 2007 13:02:13 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Testing Around the Edges</title>
<description><![CDATA[<p>
It's an interesting word, 'test'. It can mean so many things.
Before XP came along it used to mean
</p>

<blockquote>
find out whether something works correctly
</blockquote>
]]></description>
<link>http://www.developertesting.com/archives/month200703/20070312-000400.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070312-000400.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 12 Mar 2007 12:37:50 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>A game of tenpins consists of ten frames</title>
<description><![CDATA[<p>
In <a href="http://www.developertesting.com/archives/month200703/20070309-000398.html">my previous blog entry</a>, I posted a set of acceptance tests for the first few stories. It's time to start writing the code to pass those tests. I prefer to discover the design through TDD rather than code directly to the customer-facing tests. 
</p>]]></description>
<link>http://www.developertesting.com/archives/month200703/20070312-000399.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070312-000399.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 12 Mar 2007 11:57:22 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Acceptance Test for Bowling Scorer</title>
<description><![CDATA[<p>
I have often written acceptance tests for code that has not yet been written (in fact, I wrote an article about it) but I have never written tests that will work with any number of implementations, each with their own architecture. I don't even know how to go about it, but that never stopped me before...
</p>]]></description>
<link>http://www.developertesting.com/archives/month200703/20070309-000398.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070309-000398.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 09 Mar 2007 17:45:00 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Bowling for Objects</title>
<description><![CDATA[<p>"scoring a game of bowling" is probably the most common application used when demoing TDD. It's so commonly known among the JUnit crowd that I chose one of Bob Martin's efforts as a <a href="http://www.junitfactory.com//action/demo/sample?samples=product">demo  for JUnit Factory</a>.</p>

<p>The topic comes up about once a year on the <a href="http://tech.groups.yahoo.com/group/testdrivendevelopment/">TDD mailing list</a> and it just came up again. By an odd coincidence, we just celebrated the completion of a new release of AgitarOne with a trip to Homestead Lanes, so I am all fired up about bowling despite my dismal performance (there was beer involved).</p>

]]></description>
<link>http://www.developertesting.com/archives/month200703/20070309-000397.html</link>
<guid>http://www.developertesting.com/archives/month200703/20070309-000397.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 09 Mar 2007 11:15:34 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Do Not Read This!</title>
<description><![CDATA[<p>We are working on an early version of <a href="http://www.junitfactory.com">JUnit Factory</a> and we learned some very alarming lessons about web usability this week. </p>

<p>The main lesson: no one reads anything.<br />
</p>]]></description>
<link>http://www.developertesting.com/archives/month200612/20061212-web-usability.html</link>
<guid>http://www.developertesting.com/archives/month200612/20061212-web-usability.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Tue, 12 Dec 2006 19:20:01 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>In the path of Pagan Raiders</title>
<description><![CDATA[<p><a href="http://www.testing.com/cgi-bin/blog/2006/11/01#agile-as-fish">Brian Marick</a> is a funny guy</p>

<p><em>Those in the Agile world all know of resistance to Agile from those middle managers who see it as a threat to their power to command and control. Telling such a person that her sabotage endangers the company's ROI is like an abbot standing in the path of Christian raiders and threatening them with loss of their immortal souls: sometimes it works, but nowhere near often enough. And it never works with the worshippers of Odin.</em></p>]]></description>
<link>http://www.developertesting.com/archives/month200611/20061101-000375.html</link>
<guid>http://www.developertesting.com/archives/month200611/20061101-000375.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 01 Nov 2006 10:42:42 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Build Failures Policy</title>
<description><![CDATA[<p>I just wrote a page on our internal wiki with our policy for dealing with build failures. We thought others might find it interesting so I am sharing it here (the links will be broken for obvious reasons).</p>

<h2>Executive Summary</h2>

<p>If the build fails, fix it.</p>]]></description>
<link>http://www.developertesting.com/archives/month200608/20060824-BuildFailurePolicy.html</link>
<guid>http://www.developertesting.com/archives/month200608/20060824-BuildFailurePolicy.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 24 Aug 2006 16:20:53 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Failing tests shouldn&apos;t always break the build</title>
<description><![CDATA[<p>There are many reasons why you might not want to fix a failing test right away. Maybe it's an acceptance test for a feature that you haven't written yet. Maybe it's a regression that it's just not practical to fix right now.</p>

<p>But what to do with that failing test? </p>]]></description>
<link>http://www.developertesting.com/archives/month200608/20060811-FailingTests.html</link>
<guid>http://www.developertesting.com/archives/month200608/20060811-FailingTests.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 11 Aug 2006 15:07:30 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Failing tests shouldn&apos;t always break the build</title>
<description><![CDATA[<p>There are many reasons why you might not want to fix a failing test right away. Maybe it's an acceptance test for a feature that you haven't written yet. Maybe it's a regression that it's just not practical to fix right now.</p>

<p>But what to do with that failing test? </p>]]></description>
<link>http://www.developertesting.com/archives/month200608/20060811-FailingTests.html</link>
<guid>http://www.developertesting.com/archives/month200608/20060811-FailingTests.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 11 Aug 2006 15:07:30 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Old metrics never die</title>
<description><![CDATA[<p>If a little bit of feedback is good, a lot would be even better, right? </p>

<p>Is there such a thing as too much feedback?</p>

<p>XP doctrine says that you should stop tracking metrics once they have served their purpose. You should only have 3 or four <strong>"Things To Focus On"</strong>. There's a reason for that.</p>]]></description>
<link>http://www.developertesting.com/archives/month200608/20060811-OldMetricsNeverDie.html</link>
<guid>http://www.developertesting.com/archives/month200608/20060811-OldMetricsNeverDie.html</guid>
<category>Developer Testing</category>
<pubDate>Fri, 11 Aug 2006 13:34:39 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Put Your CC config in Version Control</title>
<description><![CDATA[<p>I got fed up with updating the 20 step instructions on our wiki for configuring a new cruise control machine so I wrote a script and checked it in to CVS. Obvious really.</p>]]></description>
<link>http://www.developertesting.com/archives/month200607/20060714-000361.html</link>
<guid>http://www.developertesting.com/archives/month200607/20060714-000361.html</guid>
<category>Developer Testing</category>
<pubDate>Fri, 14 Jul 2006 08:36:45 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Test vs Spec  or  ForAll vs ThereExists</title>
<description><![CDATA[<p>Brian Marick <a href="http://www.testing.com/cgi-bin/blog/2006/04/12#spec-vs-example">says that <em>tests</em> are not <em>specifications</em></a> but I believe there is a more fundamental distinction.<br />
</p>]]></description>
<link>http://www.developertesting.com/archives/month200604/20060413-ForAllVsThereExists.html</link>
<guid>http://www.developertesting.com/archives/month200604/20060413-ForAllVsThereExists.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 13 Apr 2006 08:46:41 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>A Recipe For Making Developers Write Tests</title>
<description><![CDATA[<p>This is the only thing that has ever worked for me.</p>

<p>1. Test your own code as well as you can<br />
2. Next time someone checks in a slap-your-forehead bug, show them the test that would have caught the bug if only they had run the tests.<br />
3. Show them how to run the tests themselves</p>

<p>It won't be long until everyone will want to have tests.</p>

<p>Most developers will not make the investment until they have seen proven returns. The management challenge is to find the early adopter with the courage and vision to take that first step.</p>]]></description>
<link>http://www.developertesting.com/archives/month200602/20060222-RecipeForMakingDevelopersWriteTests.html</link>
<guid>http://www.developertesting.com/archives/month200602/20060222-RecipeForMakingDevelopersWriteTests.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 22 Feb 2006 09:31:40 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Humane Interface or Minimal Interface ?</title>
<description><![CDATA[<p><a href="http://www.artima.com/forums/flat.jsp?forum=106&thread=141312">Bruce Eckel</a> weaves together the two hot topics in blogland this week. One is the Humane Interface vs Minimal Interface discussion which pits Java's List API against Ruby's. The other is the "Death of Java" topic.</p>]]></description>
<link>http://www.developertesting.com/archives/month200512/20051218-HumaneInterfaceOfMinimalInterface.html</link>
<guid>http://www.developertesting.com/archives/month200512/20051218-HumaneInterfaceOfMinimalInterface.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Sun, 18 Dec 2005 11:21:10 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Shameless Plugs</title>
<description><![CDATA[<p>Unlike <a href="http://www.developertesting.com/archives/month200512/20051201-HeadlessHelloWorldAtEclipseCon2006.html">Jeff</a>, you won't catch me shamelessly plugging my <a href="http://canuck.gda.itesm.mx/eclipsezilla/show_bug.cgi?id=303">EclipseCon talk on The Humble Plugin</a>.</p>]]></description>
<link>http://www.developertesting.com/archives/month200512/20051201-EclipseConTalk.html</link>
<guid>http://www.developertesting.com/archives/month200512/20051201-EclipseConTalk.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 01 Dec 2005 11:56:49 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Utility Functions as a Code Smell</title>
<description><![CDATA[<p>Keith Ray says <a href="http://homepage.mac.com/keithray/blog/2005/12/01/#UtilityFunctionsCodeSmell">utility functions are a code smell</a> and <a href="http://www.developertesting.com/archives/month200403/20040308-FightComplexityWithComplexity.html">I wholeheartedly agree</a>.</p>

<p><br />
BTW I often use the Adapter Pattern to wrap a class that seems to need utils until eventually the Adapter grows into a whole new class of its own. I have done this to add utility functions for parsing and xpath querying to org.w3c.Document for example.</p>]]></description>
<link>http://www.developertesting.com/archives/month200512/20051201-UtilityFunctions.html</link>
<guid>http://www.developertesting.com/archives/month200512/20051201-UtilityFunctions.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 01 Dec 2005 09:48:53 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Influence of Other Languages on Design</title>
<description><![CDATA[<p>The <a href="http://www.pragmaticprogrammer.com/">Pragmatic Programmers</a> recommend learning a new language every year. Not because you need to know a whole bunch of languages, but because other languages use idioms that you might not think of using in your everyday language.</p>]]></description>
<link>http://www.developertesting.com/archives/month200511/20051118-InfluenceOfOtherLanguagesOnDesign.html</link>
<guid>http://www.developertesting.com/archives/month200511/20051118-InfluenceOfOtherLanguagesOnDesign.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 18 Nov 2005 14:25:40 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>What&apos;s the Use of Coverage</title>
<description><![CDATA[<p>There is a discussion on the <a href="http://groups.yahoo.com/group/junit/">JUnit list</a> about whether coverage tools are valuable. </p>

<p>I ran a coverage tool on a project of mine last night and found that almost all the coverage gaps were in boilerplate code. An interface required me to return false in a whole bunch of classes. </p>

<p>The duplication was already bothering me. The duplication plus coverage gaps bothered me enough to extract a common base class. Coverage was back up to almost 100% and I liked the new design better.</p>

<p>Go figure.</p>]]></description>
<link>http://www.developertesting.com/archives/month200511/20051118-WhatsTheUseOfCoverage.html</link>
<guid>http://www.developertesting.com/archives/month200511/20051118-WhatsTheUseOfCoverage.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 18 Nov 2005 14:16:34 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Wacky Design Ideas</title>
<description><![CDATA[<p>Every now again, I hear of a wacky design idea or a challenge to a deeply held opinion on design.</p>]]></description>
<link>http://www.developertesting.com/archives/month200511/20051102-WackyDesignIdeas.html</link>
<guid>http://www.developertesting.com/archives/month200511/20051102-WackyDesignIdeas.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 02 Nov 2005 11:10:09 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Interviews in a Blink</title>
<description><![CDATA[<p>Malcolm Gladwell, <a href="http://www.amazon.com/gp/product/0316172324/104-9163893-5510340">in Blink</a>, tells a story about how some students were asked to evaluate their teacher after a semester. </p>]]></description>
<link>http://www.developertesting.com/archives/month200510/20051005-BlinkInterviews.html</link>
<guid>http://www.developertesting.com/archives/month200510/20051005-BlinkInterviews.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 05 Oct 2005 13:30:16 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Cheat Sheet for Interview Candidates</title>
<description><![CDATA[<p>Just to make it easy for any potential candidates out there, here's my whole interview question for the <a href="http://www.agitar.com/company/000016.html">J2EE position</a>.</p>

<p>I want you to build a Hello World application in J2EE. I want you to do the simplest thing that can possibly work.</p>]]></description>
<link>http://www.developertesting.com/archives/month200510/20051005-InterviewQuestion.html</link>
<guid>http://www.developertesting.com/archives/month200510/20051005-InterviewQuestion.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 05 Oct 2005 12:10:25 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Tips for being a good interviewee</title>
<description><![CDATA[<p>1. If you are interviewing for a company that makes tools for developer testing you should probably know something about developer testing.</p>]]></description>
<link>http://www.developertesting.com/archives/month200510/20051005-TipsForInterviewee.html</link>
<guid>http://www.developertesting.com/archives/month200510/20051005-TipsForInterviewee.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 05 Oct 2005 12:01:33 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Grow Your Harness Naturally</title>
<description><![CDATA[<p>
I wrote this article for the March 2005 issue of <a href="http://www.bettersoftware.com">Better Software</a>. Now available for the first time online... enjoy!
</p>

<br />

<p>

I have worked with many testing common organizations where a common pattern is repeated over and over. It goes something like
this — we realize there is more manual testing to do than time available, we decide to automate the testing, and we begin working
on a test harness. Several weeks later, we have the start of a harness, but it’s barely useful and we still have not written any
tests. At this point, we’re behind — so we abandon the harness
and revert to manual testing.

</p>

<p>
<a href="http://www.developertesting.com/archives/GrowYourHarness.pdf">Full article [PDF]</a>
</p>]]></description>
<link>http://www.developertesting.com/archives/month200508/20050824-Grow-your-harness.html</link>
<guid>http://www.developertesting.com/archives/month200508/20050824-Grow-your-harness.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 24 Aug 2005 13:27:17 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Creating a Value Type for Validation (epilog)</title>
<description><![CDATA[Here's another good reason for using a type (<a href="http://www.developertesting.com/archives/month200409/20040913-CreatingaValueTypeforValidation.html">Creating a Value Type for Validation</a>) even for something as simple and unlikely to change as a class name ... 


]]></description>
<link>http://www.developertesting.com/archives/month200506/20050608-CreatingValueTypeEpilog.html</link>
<guid>http://www.developertesting.com/archives/month200506/20050608-CreatingValueTypeEpilog.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Wed, 08 Jun 2005 13:16:32 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>The Monty Hall Problem</title>
<description><![CDATA[The Monty Hall problem comes up every now and again - it's currently being discussed on the <a href="http://groups.yahoo.com/group/extremeprogramming">XP mailing list</a>. It's a great problem. The description of the problem is <a href="http://www.google.com/search?q=Monty+Hall">well discussed on the web</a>, so I won't repeat it here.
]]></description>
<link>http://www.developertesting.com/archives/month200504/20050411-TheMontyHallProblem.html</link>
<guid>http://www.developertesting.com/archives/month200504/20050411-TheMontyHallProblem.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 11 Apr 2005 11:03:20 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Is it Wise To Aim for 100% NTF ?</title>
<description>10 steps on the journey to the perfect metric.</description>
<link>http://www.developertesting.com/archives/month200502/20050218-IsItWiseToAimForNTF.html</link>
<guid>http://www.developertesting.com/archives/month200502/20050218-IsItWiseToAimForNTF.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 18 Feb 2005 14:08:54 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Rude Applications</title>
<description><![CDATA[<p>Things I hate :</p>

<p><strong>Applications that pop themselves to the front.</strong></p>

<p>(are you listening, IntelliJ ?)</p>]]></description>
<link>http://www.developertesting.com/archives/month200502/20050217-RudeApplications.html</link>
<guid>http://www.developertesting.com/archives/month200502/20050217-RudeApplications.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 17 Feb 2005 14:11:39 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>What is Agile Testing ?</title>
<description><![CDATA[A conversation on the <a href='http://groups.yahoo.com/group/agile-testing/'>agile-testing list</a> made me think some more about the two types of testing that I blogged about in <a href="/archives/month200412/20041209-TddAndAgitation.html">TDD and Agitation</a>.]]></description>
<link>http://www.developertesting.com/archives/month200501/20050113-WhatIsAgileTesting.html</link>
<guid>http://www.developertesting.com/archives/month200501/20050113-WhatIsAgileTesting.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 13 Jan 2005 18:13:38 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>TDD and Agitation</title>
<description><![CDATA[     I have been doing Test Driven Development (TDD) for about four years now and agitating for a little less (it's my second
     anniversary as an agitator today) and I have thought a lot about how to marry the two testing styles.
     A discussion on the TDD mailing list today
     (<a href="http://groups.yahoo.com/group/testdrivendevelopment/">http://groups.yahoo.com/group/testdrivendevelopment/</a>)
     finally gave me a name for what I have been doing for a while. The discussion centered around the relative merits of
     TDD versus Design by Contract (DbC) and a surprising - surprising to me anyway - number of people said that two
     are complementary and that they do both. That's exactly what I have been doing without realizing it.]]></description>
<link>http://www.developertesting.com/archives/month200412/20041209-TddAndAgitation.html</link>
<guid>http://www.developertesting.com/archives/month200412/20041209-TddAndAgitation.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Thu, 09 Dec 2004 13:20:52 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Creating a Value Type for Validation (revisited)</title>
<description><![CDATA[Earlier in the year I wrote about introducing a wrapper type to 
encapsulate the validation of a value that is essentially just a string 
(see <a href="/archives/month200403/20040308-FightComplexityWithComplexity.html">Fight Complexity with Complexity</a>). I just ran into the flip-side of this - the anti-pattern if you like - and I felt compelled to rant about it.]]></description>
<link>http://www.developertesting.com/archives/month200409/20040913-CreatingaValueTypeforValidation.html</link>
<guid>http://www.developertesting.com/archives/month200409/20040913-CreatingaValueTypeforValidation.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 13 Sep 2004 10:45:43 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Testing HTML Pages</title>
<description><![CDATA[I started this article intending to talk about a technique we developed for testing Velocity templates but realized that there was enough background material for a separate article on testing html. So, this entry describes how we developed a harness for checking the output from the <a  href="http://www.agitar.com/products/000023.html">Management Dashboard</a>. A second entry will talk about how we adapted the harness for testing Velocity templates.]]></description>
<link>http://www.developertesting.com/archives/month200407/20040716-TestingHTMLPages.html</link>
<guid>http://www.developertesting.com/archives/month200407/20040716-TestingHTMLPages.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 16 Jul 2004 17:01:50 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Measuring Quality</title>
<description><![CDATA[Laurent Bossavit has some interesting thoughts on measuring software quality at <a href="http://bossavit.com/thoughts/archives/000725.html">bossavit.com</a>.]]></description>
<link>http://www.developertesting.com/archives/month200404/20040416-MeasuringQuality.html</link>
<guid>http://www.developertesting.com/archives/month200404/20040416-MeasuringQuality.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 16 Apr 2004 11:17:31 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Fight Complexity with Complexity</title>
<description>We were using method and class and package names as keys to the various data structures that store test results and coverage data. Agitator told us that if you pass the string &quot;123%%^*abc&quot; to a method that expects a class name, it throws an IllegalArgumentException. &quot;Well, duh!&quot; we said and marked it expected. We added a factory to generate a variety of good and bad class names and got on with the task at hand.</description>
<link>http://www.developertesting.com/archives/month200403/20040308-FightComplexityWithComplexity.html</link>
<guid>http://www.developertesting.com/archives/month200403/20040308-FightComplexityWithComplexity.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Mon, 08 Mar 2004 17:17:27 -0800</pubDate>

</item>
" lastn="15">
<item>
<title>Why Is Software So Hard To Test?</title>
<description>Start a conversation with any developer about unit testing and, before long, he&apos;ll tell you that automated testing is a fine thing in principle but that his code is too hard to test because ....</description>
<link>http://www.developertesting.com/archives/month200401/20040116-WhyIsSoftwareSoHardToTest.html</link>
<guid>http://www.developertesting.com/archives/month200401/20040116-WhyIsSoftwareSoHardToTest.html</guid>
<category>Kevin Lawrence</category>
<pubDate>Fri, 16 Jan 2004 15:22:04 -0800</pubDate>

</item>


</channel>
</rss>