<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Agile Release &#038; Testing Procedures</title>
	<atom:link href="http://www.igvita.com/2008/04/07/agile-release-testing-procedures/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/</link>
	<description>A goal is a dream with a deadline.</description>
	<pubDate>Fri, 29 Aug 2008 02:49:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102752</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Sat, 26 Apr 2008 12:51:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102752</guid>
		<description>Elise, thanks for the details. On the subject of TDD/BDD, Gregg Pollack gave a great presentation on testing at the Web 2.0 Expo earlier this week. The &lt;a href="http://railsenvy.com/2008/4/24/web-2-0-talk" rel="nofollow"&gt;slides are available&lt;/a&gt; on his blog.</description>
		<content:encoded><![CDATA[<p>Elise, thanks for the details. On the subject of TDD/BDD, Gregg Pollack gave a great presentation on testing at the Web 2.0 Expo earlier this week. The <a href="http://railsenvy.com/2008/4/24/web-2-0-talk" rel="nofollow">slides are available</a> on his blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: elise</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102699</link>
		<dc:creator>elise</dc:creator>
		<pubDate>Thu, 24 Apr 2008 13:01:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102699</guid>
		<description>TDD/BDD : in fact it was the perspective of having a robust unit/functional test suite at the end of it.  Both for documentation purposes and for every subsequent release.  I admit i'm still learning - it's not that easy.

Before my current rails project i was doing good ol'fashioned development in Java :-) 
develop a feature, write unit tests where possible, and then play about with the whole application to see if it integrates.  Then over to the test team who did user acceptance and integration tests.</description>
		<content:encoded><![CDATA[<p>TDD/BDD : in fact it was the perspective of having a robust unit/functional test suite at the end of it.  Both for documentation purposes and for every subsequent release.  I admit i&#8217;m still learning - it&#8217;s not that easy.</p>
<p>Before my current rails project i was doing good ol&#8217;fashioned development in Java :-)<br />
develop a feature, write unit tests where possible, and then play about with the whole application to see if it integrates.  Then over to the test team who did user acceptance and integration tests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102624</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Tue, 22 Apr 2008 03:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102624</guid>
		<description>Elise, it sounds like you're well on track! Question: what made you convert to TDD/BDD, how did you go about it? Likewise, were you using any other methodologies or tools prior?</description>
		<content:encoded><![CDATA[<p>Elise, it sounds like you&#8217;re well on track! Question: what made you convert to TDD/BDD, how did you go about it? Likewise, were you using any other methodologies or tools prior?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: elise</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102533</link>
		<dc:creator>elise</dc:creator>
		<pubDate>Fri, 18 Apr 2008 18:45:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102533</guid>
		<description>I'm a recent convert of TDD (/BDD) - and i really like the idea that by running a set of tests (unit/functional), i can see if anything's broken.

During development a build server is an absolute must.

Now, in my experience you still need users (user acceptance) - and if possible professional testers (exploratory testing) to have a go, because as a programmer you have a bias that will keep you from making the application foolproof.

Performance tests are a requirement for high-volume applications - so if that's the idea than it's good to plan for it soon.  However, some applications will take some time acquiring critical mass anyway, so it could be worked into later iterations.

Finally, it's good to be able to rehearse a deployment into production.
That's about all the testing i've done so far, seems so work.</description>
		<content:encoded><![CDATA[<p>I&#8217;m a recent convert of TDD (/BDD) - and i really like the idea that by running a set of tests (unit/functional), i can see if anything&#8217;s broken.</p>
<p>During development a build server is an absolute must.</p>
<p>Now, in my experience you still need users (user acceptance) - and if possible professional testers (exploratory testing) to have a go, because as a programmer you have a bias that will keep you from making the application foolproof.</p>
<p>Performance tests are a requirement for high-volume applications - so if that&#8217;s the idea than it&#8217;s good to plan for it soon.  However, some applications will take some time acquiring critical mass anyway, so it could be worked into later iterations.</p>
<p>Finally, it&#8217;s good to be able to rehearse a deployment into production.<br />
That&#8217;s about all the testing i&#8217;ve done so far, seems so work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: s woodside</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102507</link>
		<dc:creator>s woodside</dc:creator>
		<pubDate>Thu, 17 Apr 2008 07:36:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102507</guid>
		<description>I thought I would be one of the most lax testers but it sounds like I'm actually somewhere near the middle. I guess that my impression was that everyone was doing more testing than me, but it's actually a sampling error. It's just that the (apparent majority) of people who don't do testing, don't talk about it. I can understand that.</description>
		<content:encoded><![CDATA[<p>I thought I would be one of the most lax testers but it sounds like I&#8217;m actually somewhere near the middle. I guess that my impression was that everyone was doing more testing than me, but it&#8217;s actually a sampling error. It&#8217;s just that the (apparent majority) of people who don&#8217;t do testing, don&#8217;t talk about it. I can understand that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102506</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Thu, 17 Apr 2008 07:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102506</guid>
		<description>@Jonathan: That’s a big investment (3-4 weeks), how granular are you unit-tests? From experience, it’s always been a struggle for me to find the right ‘balance’. 

@Jim: Thanks for all the great tips. I like your recommendation of 1 year plan, with incremental build-up. Realistically, it seems that many of us need to: (1) declare test bankruptcy, (2) get rid of the binary mode of thinking of ‘either you’re there, or you’re not’, (3) start building up the test suites over time.

Unfortunately Rails-land does not yet have a clean CI application. There have been a few plugins released in the past, that auto-run your test suites, but there is definitely a lot of room for improvement in this area.
I guess at the end of the day, we just have to remember that testing does not disprove presence of bugs or unwanted behaviours – hence, while we should strive for 100% code coverage, you also have to be prudent with your time. ;) 

@Simon: “Anyway, why waste a lot of time writing test cases when I’m in such a rush to release product?” Believe me, that’s been my argument for a very long time... And it’s true up to a certain point in the lifecycle of the app. Eventually you’ll hit a wall, where small modifications will result in cascading effects of (weird) behaviours, and that’s where a good testing framework will save you.

@Jesse: 500 internal server error on your blog, doh?

---

A lot of people have followed up via email – it looks like we’re not comfortable discussing these things in public. Here is a brief (anonymized) breakdown of the responses:

Full RSpec (or equivalent coverage): 0 out of 18
Extensive unit-testing suite: 5 out of 18
Ad-hoc unit-testing suite: 8 out of 18
Manual testing, prior to release: 8  out of 18 (rest, either automated, or cross-your fingers)

Granularity: 
   - low-level unit tests for all components: 4 out of 18
   - functional level: 8 out of 18

An interesting result (arguably not surprising) is that the test-coverage / practices appear to be directly correlated to the size of the company. More hands on the code, larger code-bases, all surely contribute to this trend. The trick is in finding that happy medium of agility when you’re a one/several man shop, and going light on the testing, and then eventually instilling the practice of test integration before it becomes a major pain in your organization.</description>
		<content:encoded><![CDATA[<p>@Jonathan: That’s a big investment (3-4 weeks), how granular are you unit-tests? From experience, it’s always been a struggle for me to find the right ‘balance’. </p>
<p>@Jim: Thanks for all the great tips. I like your recommendation of 1 year plan, with incremental build-up. Realistically, it seems that many of us need to: (1) declare test bankruptcy, (2) get rid of the binary mode of thinking of ‘either you’re there, or you’re not’, (3) start building up the test suites over time.</p>
<p>Unfortunately Rails-land does not yet have a clean CI application. There have been a few plugins released in the past, that auto-run your test suites, but there is definitely a lot of room for improvement in this area.<br />
I guess at the end of the day, we just have to remember that testing does not disprove presence of bugs or unwanted behaviours – hence, while we should strive for 100% code coverage, you also have to be prudent with your time. ;) </p>
<p>@Simon: “Anyway, why waste a lot of time writing test cases when I’m in such a rush to release product?” Believe me, that’s been my argument for a very long time&#8230; And it’s true up to a certain point in the lifecycle of the app. Eventually you’ll hit a wall, where small modifications will result in cascading effects of (weird) behaviours, and that’s where a good testing framework will save you.</p>
<p>@Jesse: 500 internal server error on your blog, doh?</p>
<p>&#8212;</p>
<p>A lot of people have followed up via email – it looks like we’re not comfortable discussing these things in public. Here is a brief (anonymized) breakdown of the responses:</p>
<p>Full RSpec (or equivalent coverage): 0 out of 18<br />
Extensive unit-testing suite: 5 out of 18<br />
Ad-hoc unit-testing suite: 8 out of 18<br />
Manual testing, prior to release: 8  out of 18 (rest, either automated, or cross-your fingers)</p>
<p>Granularity:<br />
   - low-level unit tests for all components: 4 out of 18<br />
   - functional level: 8 out of 18</p>
<p>An interesting result (arguably not surprising) is that the test-coverage / practices appear to be directly correlated to the size of the company. More hands on the code, larger code-bases, all surely contribute to this trend. The trick is in finding that happy medium of agility when you’re a one/several man shop, and going light on the testing, and then eventually instilling the practice of test integration before it becomes a major pain in your organization.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Nielsen &#187; Biweekly links for 04/11/2008</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102393</link>
		<dc:creator>Michael Nielsen &#187; Biweekly links for 04/11/2008</dc:creator>
		<pubDate>Fri, 11 Apr 2008 10:53:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102393</guid>
		<description>[...] Agile Release &#38; Testing Procedures [...]</description>
		<content:encoded><![CDATA[<p>[...] Agile Release &#38; Testing Procedures [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesse</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102362</link>
		<dc:creator>Jesse</dc:creator>
		<pubDate>Wed, 09 Apr 2008 23:37:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102362</guid>
		<description>Finally, a post:

http://whoyoucallingajesse.com/past/2008/4/9/release_and_testing_procedures_in/

I didn't want to do what Jim did ;)</description>
		<content:encoded><![CDATA[<p>Finally, a post:</p>
<p><a href="http://whoyoucallingajesse.com/past/2008/4/9/release_and_testing_procedures_in/" rel="nofollow">http://whoyoucallingajesse.com/past/2008/4/9/release_and_testing_procedures_in/</a></p>
<p>I didn&#8217;t want to do what Jim did ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Brennan</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102349</link>
		<dc:creator>John Brennan</dc:creator>
		<pubDate>Tue, 08 Apr 2008 21:28:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102349</guid>
		<description>I'll keep it simple.

UI testing - Selenium [http://selenium.openqa.org/]
Unit testing - Sort of SimpleTest from CakePHP [http://simpletest.org/]
Perf testing - is between Pylot [http://www.pylot.org/] and Apache benchmarking [http://httpd.apache.org/docs/2.2/programs/ab.html]

My next improvement is going to come from improving the release pipeline.  I want a system that can move data from dev to test to production automatically with a button push.

Once I get that started I'll doc it here:
http://www.janisb.com/blog</description>
		<content:encoded><![CDATA[<p>I&#8217;ll keep it simple.</p>
<p>UI testing - Selenium [http://selenium.openqa.org/]<br />
Unit testing - Sort of SimpleTest from CakePHP [http://simpletest.org/]<br />
Perf testing - is between Pylot [http://www.pylot.org/] and Apache benchmarking [http://httpd.apache.org/docs/2.2/programs/ab.html]</p>
<p>My next improvement is going to come from improving the release pipeline.  I want a system that can move data from dev to test to production automatically with a button push.</p>
<p>Once I get that started I&#8217;ll doc it here:<br />
<a href="http://www.janisb.com/blog" rel="nofollow">http://www.janisb.com/blog</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: s woodside</title>
		<link>http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102342</link>
		<dc:creator>s woodside</dc:creator>
		<pubDate>Tue, 08 Apr 2008 04:39:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/2008/04/07/agile-release-testing-procedures/#comment-102342</guid>
		<description>First -- I can hardly read this white on black text for the comments. Is it just me?

Anyway, my approach to testing is rather haphazard. I guess that at the moment, I start writing unit tests when I hit a bug that I can't fix quickly some other way. Anyway, why waste a lot of time writing test cases when I'm in such a rush to release product?

In order to avoid chaos I try to develop software in as clearly divided units as possible. So, given the choice between trying to integrate some library into Rails (for example) or just running it as a separate server and using HTTP I'll choose separate server. That also makes it alot easier to hand-test, as I think a lot of the power in testing is simply how accessible is the code to be hand-tested or isolated anyway. And if something's more isolated it's easier to hand test (and notice problems in any case).

As for deployment, I try to make it as simple to deploy as possible, for example don't need root to do this, one-liners, etc. And obvious if it's broken. Then it's a simple matter to automate it with scripts when it's necessary. But I haven't done any really complicated server deployment.

Well, that's all I have to say for now. I probably fall fairly far into the laissez faire side of the spectrum, but at least I have a fairly good idea of what the options are :-)</description>
		<content:encoded><![CDATA[<p>First &#8212; I can hardly read this white on black text for the comments. Is it just me?</p>
<p>Anyway, my approach to testing is rather haphazard. I guess that at the moment, I start writing unit tests when I hit a bug that I can&#8217;t fix quickly some other way. Anyway, why waste a lot of time writing test cases when I&#8217;m in such a rush to release product?</p>
<p>In order to avoid chaos I try to develop software in as clearly divided units as possible. So, given the choice between trying to integrate some library into Rails (for example) or just running it as a separate server and using HTTP I&#8217;ll choose separate server. That also makes it alot easier to hand-test, as I think a lot of the power in testing is simply how accessible is the code to be hand-tested or isolated anyway. And if something&#8217;s more isolated it&#8217;s easier to hand test (and notice problems in any case).</p>
<p>As for deployment, I try to make it as simple to deploy as possible, for example don&#8217;t need root to do this, one-liners, etc. And obvious if it&#8217;s broken. Then it&#8217;s a simple matter to automate it with scripts when it&#8217;s necessary. But I haven&#8217;t done any really complicated server deployment.</p>
<p>Well, that&#8217;s all I have to say for now. I probably fall fairly far into the laissez faire side of the spectrum, but at least I have a fairly good idea of what the options are :-)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
