<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Testing Blog &#187; Tools</title>
	<atom:link href="http://thetestingblog.com/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://thetestingblog.com</link>
	<description>Why, testing, of course!</description>
	<lastBuildDate>Tue, 31 Aug 2010 23:16:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='thetestingblog.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5bc883277a9e573ad056d2ccd360a439?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Testing Blog &#187; Tools</title>
		<link>http://thetestingblog.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://thetestingblog.com/osd.xml" title="The Testing Blog" />
	<atom:link rel='hub' href='http://thetestingblog.com/?pushpress=hub'/>
		<item>
		<title>Have you heard about NUnit Attributes and how they&#8217;re awesome?</title>
		<link>http://thetestingblog.com/2010/08/31/have-you-heard-about-nunit-attributes-and-how-theyre-awesome/</link>
		<comments>http://thetestingblog.com/2010/08/31/have-you-heard-about-nunit-attributes-and-how-theyre-awesome/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 23:16:50 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[NUnit]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[test automation]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=425</guid>
		<description><![CDATA[VERY IMPORTANT!!! Some attributes in this article are only available in NUnit 2.5 and later. I would strongly recommend upgrading your NUnit to the newest version. Okay, so, have you heard about NUnit attributes, and how they&#8217;re awesome? Sure you&#8217;ve heard of Setup, Test, TestFixture, and TearDown? But how about Values? How about Range? The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=425&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>VERY IMPORTANT!!! Some attributes in this article are only available in NUnit 2.5 and later.  I would strongly recommend upgrading your NUnit to the newest version.</strong></p>
<p>Okay, so, have you heard about NUnit attributes, and how they&#8217;re awesome?<br />
Sure you&#8217;ve heard of Setup, Test, TestFixture, and TearDown?  But how about Values?  How about Range?</p>
<p>The Values attribute allows you to run the same test several times with different values.  It makes it where you&#8217;re not doing something crazy like copy and pasting the same test, over and over again!  I was close to that situation, but it hurt my soul too much to do that.  So, in order to save my soul, I had to seek a path for redemption.  Here&#8217;s what I found:</p>
<p>Okay, to try this, you may need to set up a sample test.  If you need to start from scratch, check out my End-to-End Example: http://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/</p>
<p>My example test verifies that the text &#8220;Daniel Brown&#8221; is present on the main testing blog page&#8211;a simple pass or fail.  But imagine we wanted to run the test 3 times, each time verifying the presence of a different Testing Blog author.  Here&#8217;s how we would do it using the Values attribute:</p>
<pre class="brush: csharp;">
        [Test]
        public void ValuesTest([Values(&quot;Daniel Brown&quot;, &quot;Marisa Seal&quot;, &quot;Josh Carroll&quot;)] string textPresent)
        {
            selenium.Open(&quot;http://www.google.com&quot;);
            selenium.Type(&quot;q&quot;, &quot;thetestingblog.com&quot;);
            selenium.Click(&quot;btnI&quot;);
            selenium.WaitForPageToLoad(&quot;60000&quot;);
            Assert.IsTrue(selenium.IsTextPresent(textPresent));
        }
</pre>
<p>As you can see, we&#8217;re basically passing the argument &#8220;textPresent&#8221; into the method.  The values are what you want the argument to be.  For each value, run the test once with &#8220;textPresent&#8221; = to that value:<br />
<code>[Values("Daniel Brown", "Marisa Seal", "Josh Carroll")] string stringPresent</code></p>
<p>So, in the case of this test; here&#8217;s how it would run:<br />
SetupTest();<br />
ValuesTest(&#8220;Daniel Brown&#8221;);<br />
TeardownTest();<br />
SetupTest();<br />
ValuesTest(&#8220;Marisa Seal&#8221;);<br />
TeardownTest();<br />
SetupTest();<br />
ValuesTest(&#8220;Josh Carroll&#8221;);<br />
TeardownTest();</p>
<p>This is how it looks in the test runner:<br />
<a href="http://thetestingblog.files.wordpress.com/2010/08/49.jpg"><img class="aligncenter size-full wp-image-435" title="49" src="http://thetestingblog.files.wordpress.com/2010/08/49.jpg?w=336&#038;h=128" alt="" width="336" height="128" /></a></p>
<p>Okay, that wasn&#8217;t too bad.  Now, let&#8217;s go a crazy.  Let&#8217;s get nuts.  Potentially throwing best practices to the wind.  We&#8217;re going make this example where it pulls the values from a text file instead of hard coding them.  To do that, let&#8217;s add a text file to our project:</p>
<p>Right click on your project (&#8220;TestingBlogSeleniumRc&#8221;) in the Solution Explorer -&gt; <strong>Add </strong>-&gt; <strong>New Item&#8230; </strong></p>
<p>Select Text File and call it ValueList.txt</p>
<p>Open the file in your editor and type the three values into the text file.  One per line:</p>
<div id="_mcePaste">Daniel Brown</div>
<div id="_mcePaste">Marisa Seal</div>
<div id="_mcePaste">Josh Carroll</div>
<div><a href="http://thetestingblog.files.wordpress.com/2010/08/60.jpg"><img class="aligncenter size-full wp-image-440" title="60" src="http://thetestingblog.files.wordpress.com/2010/08/60.jpg?w=544&#038;h=224" alt="" width="544" height="224" /></a></div>
<p>Next we want to make sure that the text file is copied over into the bin folder on build.</p>
<p>Right click on your project (&#8220;TestingBlogSeleniumRc&#8221;) in the Solution Explorer and select <strong>Properties</strong>.  Then select <strong>Build Events</strong>.  Under the <strong>Pre-build event command line: </strong>(or post-build; it doesn&#8217;t matter) paste in:</p>
<p><code>copy "$(ProjectDir)ValueList.txt" "$(TargetDir)"</code></p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/08/59.jpg"><img class="aligncenter size-full wp-image-438" title="59" src="http://thetestingblog.files.wordpress.com/2010/08/59.jpg?w=544&#038;h=272" alt="" width="544" height="272" /></a></p>
<p>Our test is going to be looking for ValueList.txt so that copy command assures that it&#8217;s in the same folder as the test dll.</p>
<p><strong>(FULL CODE EXAMPLE BELOW)</strong></p>
<ul>
<li>We need to add a reference to System.IO</li>
<li>Next we&#8217;re going to add a global string array to our class called <strong>textPresentList</strong></li>
<li>We are going to read the ValueList.txt file into an array in our setup.  As coded, it should only be read in the first time the SetupTest() method is run.  If you&#8217;re a Unit Test purist, you could easily change it to read the file in every time, but I thought it seemed like a waste.</li>
<li>Next we need to add the <span style="color:#33cccc;">Range </span>attribute to a copied and renamed version of our first test.  The range should be hard coded from 0 to 2.  (I tried to do something clever like put it from 0 to textPresentList.Length-1, but the compile wouldn&#8217;t have it.  These NUnit attribute values, it appears have to be somewhat static.  This kludge that I&#8217;m showing is way to get around the static nature if only a little bit.  This way the values can be dynamic even if the number of values can&#8217;t be.  By the way, if anyone has a better idea to make it more dynamic, please post it.)</li>
<li>Change the <strong>selenium.IsTextPresent(textPresent)</strong> to <strong>selenium.IsTextPresent(textPresentList[i])</strong>.</li>
<li>Then Compile and Run.</li>
</ul>
<p><a href="http://thetestingblog.files.wordpress.com/2010/08/63.jpg"><img class="aligncenter size-full wp-image-441" title="63" src="http://thetestingblog.files.wordpress.com/2010/08/63.jpg?w=328&#038;h=136" alt="" width="328" height="136" /></a></p>
<p>You won&#8217;t be able to see the values from the file in the Test Runner, but you could write the value translations to the console so that you could see which index corresponds to which value:<br />
<code>Console.WriteLine("Index " + i +": " + textPresentList[i]);</code></p>
<p>In the Test Runner, select the <strong>Text Output</strong> tab to view the output:</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/08/66.jpg"><img class="aligncenter size-full wp-image-444" title="66" src="http://thetestingblog.files.wordpress.com/2010/08/66.jpg?w=544&#038;h=262" alt="" width="544" height="262" /></a></p>
<p>The whole point of this post is not to show you what to do, but instead to open up your mind to possibilities.  NUnit has some cool functionality, and most of us never scrape the surface of it&#8217;s potential.  I challenge you to go and explore the various attributes available for yourself.  Here&#8217;s the link: <a href="http://nunit.org/index.php?p=attributes&amp;r=2.5.7">http://nunit.org/index.php?p=attributes&amp;r=2.5.7</a></p>
<p><strong>Remember upgrade your NUnit to the newest version.  Chances are that you&#8217;re not current.</strong></p>
<p><strong>FULL CODE:</strong></p>
<pre class="brush: csharp;">
using System;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;

namespace TestingBlogSeleniumRc
{
	[TestFixture]
	public class FirstTest
	{
		private ISelenium selenium;
        private string[] textPresentList;

		[SetUp]
		public void SetupTest()
		{
            if (textPresentList == null)
                textPresentList = File.ReadAllLines(&quot;ValueList.txt&quot;);
			selenium = new DefaultSelenium(&quot;localhost&quot;, 4444, &quot;*iexplore&quot;, &quot;http://www.google.com/&quot;);
			selenium.Start();
		}

		[TearDown]
		public void TeardownTest()
		{
		    selenium.Stop();
		}

        [Test]
        public void DynamicValuesTest([Range(0,2)] int i)
		{
			selenium.Open(&quot;http://www.google.com&quot;);
			selenium.Type(&quot;q&quot;, &quot;thetestingblog.com&quot;);
			selenium.Click(&quot;btnI&quot;);
			selenium.WaitForPageToLoad(&quot;60000&quot;);
            Console.WriteLine(&quot;Index &quot; + i +&quot;: &quot; + textPresentList[i]);
            Assert.IsTrue(selenium.IsTextPresent(textPresentList[i]));
		}
        [Test]
        public void ValuesTest([Values(&quot;Daniel Brown&quot;, &quot;Marisa Seal&quot;, &quot;Josh Carroll&quot;)] string textPresent)
        {
            selenium.Open(&quot;http://www.google.com&quot;);
            selenium.Type(&quot;q&quot;, &quot;thetestingblog.com&quot;);
            selenium.Click(&quot;btnI&quot;);
            selenium.WaitForPageToLoad(&quot;60000&quot;);
            Assert.IsTrue(selenium.IsTextPresent(textPresent));
        }
	}
}</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/425/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/425/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/425/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/425/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/425/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/425/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/425/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/425/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=425&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2010/08/31/have-you-heard-about-nunit-attributes-and-how-theyre-awesome/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/08/49.jpg" medium="image">
			<media:title type="html">49</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/08/60.jpg" medium="image">
			<media:title type="html">60</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/08/59.jpg" medium="image">
			<media:title type="html">59</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/08/63.jpg" medium="image">
			<media:title type="html">63</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/08/66.jpg" medium="image">
			<media:title type="html">66</media:title>
		</media:content>
	</item>
		<item>
		<title>Replace Adobe Acrobat Reader FOREVER!!!</title>
		<link>http://thetestingblog.com/2010/07/06/replace-adobe-acrobat-reader-forever/</link>
		<comments>http://thetestingblog.com/2010/07/06/replace-adobe-acrobat-reader-forever/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 16:41:58 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=418</guid>
		<description><![CDATA[You know what pisses me off?  It&#8217;s the little things!  To quote the grunge band Bush, &#8220;It&#8217;s the little things that kill, tearing at my brains again.&#8221;  Why?  Because they seem to irritate the most&#8211;irritate you to death.  It&#8217;s the fly buzzing around while you&#8217;re trying to relax.  It&#8217;s the splinter in your hand.  It&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=418&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You know what pisses me off?  It&#8217;s the little things!  To quote the grunge band Bush, &#8220;It&#8217;s the little things that kill, tearing at my brains again.&#8221;  Why?  Because they seem to irritate the most&#8211;irritate you to death.  It&#8217;s the fly buzzing around while you&#8217;re trying to relax.  It&#8217;s the splinter in your hand.  It&#8217;s the neighbor&#8217;s dog barking at night while you try to sleep.  Little things should be fixed and not tolerated.  For years I&#8217;ve been a victim of Adobe Reader&#8217;s endless automatic updates, resource grabbing, and slow runtime.  It&#8217;s such bullshit!  It&#8217;s just a crappie PostScript viewer!  You can&#8217;t even use it to edit anything!  Adobe Reader ≈ 140 MB, Notepad++ ≈ 9MB.  What&#8217;s wrong with this picture?</p>
<p>Here was the spark that finally spurred me to action this morning.  And I&#8217;ve seen this before but it just hit me particularly wrong this morning:</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/07/9.jpg"><img class="aligncenter size-full wp-image-420" title="9" src="http://thetestingblog.files.wordpress.com/2010/07/9.jpg?w=501&#038;h=362" alt="" width="501" height="362" /></a></p>
<p>RESTART!!!!  You got to be kidding!!!  Why the Hell do I have to restart?  All I did was update a viewer, really just a plugin for a browser.  Adobe, do you have any idea how long it takes my work computer to restart?  What could be so important that you&#8217;re making me reboot?  If it&#8217;s such a pain for me, it&#8217;s most likely a pain for other people too.  Have you considered the irritation you&#8217;re causing everyone?</p>
<h2>The Solution: Foxit</h2>
<p>Okay, I&#8217;ve had enough.  I uninstalled Adobe Reader, and I installed a replacement product that my friend Brandon recommended called Foxit.  <a href="http://www.foxitsoftware.com/pdf/reader/">http://www.foxitsoftware.com/pdf/reader/</a></p>
<ul>
<li>My first worry was that it doesn&#8217;t work with my browsers.  However, that worry was unfounded.  I tested pulling up a PDF from a URL in IE8, Firefox, and even Chrome (my browser of choice).</li>
<li>My first observation was the speed.  It was so much faster than Adobe.  (Didn&#8217;t Adobe invent PDF&#8217;s?)</li>
<li>Plus, the Interface looks pretty refined and easy to use.</li>
<li>Foxit install is 10.44 MB versus Adobe Reader 9.3 at 143 MB</li>
</ul>
<p>I don&#8217;t completely endorse the product because I haven&#8217;t had substantial time using it, but so far I like it.   The main thing is that I got a chance to pwn Adobe!  Take that you bastards!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/418/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=418&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2010/07/06/replace-adobe-acrobat-reader-forever/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/07/9.jpg" medium="image">
			<media:title type="html">9</media:title>
		</media:content>
	</item>
		<item>
		<title>Selenium RC In C# as a Console App: Another End-To-End Example</title>
		<link>http://thetestingblog.com/2010/02/02/selenium-rc-in-console-app/</link>
		<comments>http://thetestingblog.com/2010/02/02/selenium-rc-in-console-app/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:26:10 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[test automation]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=364</guid>
		<description><![CDATA[The purpose of this post is to show people how to wrap a Selenium RC test up into a console app (*.exe) so can been executed from the command line.  This is a solution makes it where you don&#8217;t have to have NUnit involved. Déjà vu all over again! Another basic Selenium example. What the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=364&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The purpose of this post is to show people how to wrap a Selenium RC test up into a console app (*.exe) so can been executed from the command line.  This is a solution makes it where you don&#8217;t have to have NUnit involved.</p>
<p>Déjà vu all over again!  Another basic Selenium example.  What the  heck!?  Can&#8217;t this guy do anything else?</p>
<p>Well, I agree this is somewhat repetitive, but I hope that this sequel will be in the league of Empire Strikes Back or Star Trek: The Wrath of Khan.  Both movies, though they were sequels, were arguably greater than the originals. These sequels introduce us to the likes of Ricardo Montalban playing &#8220;Khan&#8221; and Billy Dee Williams playing &#8220;Lando Calrissian&#8221;.  And of course,  a muppet playing &#8220;Yoda&#8221;.</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/collage1.jpg"><img class="aligncenter size-full wp-image-366" title="collage" src="http://thetestingblog.files.wordpress.com/2010/02/collage1.jpg?w=544&#038;h=450" alt="" width="544" height="450" /></a></p>
<p>Of course, many sequels start off with the desire to be Empire, and instead they end up being:</p>
<ul>
<li>Caddyshack II</li>
<li>Beastmaster 2: Through the Portal of Time</li>
<li>Speed 2: Cruise Control</li>
<li>Batman and Robin (No, we don&#8217;t need nipples on the Batman suit, Joel Schumacher.  But thanks for asking.)</li>
<li>Mannequin: On the Move.</li>
<li>Or the biggest sacrileges of all time Godfather III</li>
<li>And Episode I (Empire, it is not!).</li>
</ul>
<p>My hope is that this post doesn&#8217;t suck like those movies.  At the very least it&#8217;s nipple and Clooney free.</p>
<hr />First off, you need to get all these things (if you don&#8217;t have them):</p>
<ul>
<li><a href="http://release.seleniumhq.org/selenium-remote-control/1.0.1/selenium-remote-control-1.0.1-dist.zip">Selenium RC</a></li>
<li><a href="http://www.mozilla.com/products/download.html?product=firefox-3.5.2&amp;os=win&amp;lang=en-US">Firefox</a></li>
<li><a href="http://release.openqa.org/selenium-ide/1.0.2/selenium-ide-1.0.2.xpi">Selenium IDE</a></li>
<li><a href="http://www.java.com/en/download/index.jsp">Java Runtime Environment</a> (You should already have this)</li>
<li><a href="http://www.microsoft.com/express/Downloads/#2008-Visual-CS">Visual C# 2008 Express Edition </a> (Only get this if you don&#8217;t have a full version of Visual Studio)</li>
</ul>
<hr /><strong>Install instructions for the downloads:</strong></p>
<p><strong>Selenium RC</strong><br />
-No installation necessary. Just find a permanent location and unzip it there. I unzipped mine at <span style="color:#0000ff;">C:\</span> just to make things simple</p>
<p><strong>Firefox, Visual Studio Express, and Java</strong><br />
-Just run the respective installs with all defaults selected.</p>
<p><strong>Selenium IDE</strong><br />
-To install, right click on the file and select &#8220;Open With&#8230;&#8221;<br />
-Select Firefox in the programs list. If it&#8217;s not in the immediate menu, browse to it. (default location should be &#8220;<span style="color:#0000ff;">C:\Program Files\Mozilla Firefox\firefox.exe</span>&#8220;<br />
-When Firefox launches, click button in the dialog box that says &#8220;Install Now&#8221;.<br />
-After the install of the plug-in, hit the &#8220;Restart Firefox&#8221; button when you see it.</p>
<hr /><strong>Phase One: Record a Test using Selenium IDE</strong></p>
<p>Okay, so, now that you have the tools, we&#8217;re going to record a simple test in Selenium IDE. Even though we want to eventually run the test in Selenium RC, Selenium IDE is a great tool for getting the basic test recorded since it&#8217;s all UI point and click.</p>
<ul>
<li>Start up Firefox.</li>
<li>Click on the &#8220;Tools&#8221; menu and click on &#8220;Selenium IDE&#8221;</li>
<li><em>(Take your time to explore the Selenium IDE form)</em></li>
<li>Notice that it&#8217;s already recording.  The red circle button on the right side is pressed in:</li>
<li>Type &#8220;<span style="color:#0000ff;">www.google.com</span>&#8221; the main Firefox browser address bar and navigate to it.</li>
<li>In the search box, type in &#8220;<span style="color:#0000ff;">thetestingblog.com</span>&#8221; and hit the &#8220;I&#8217;m Feeling Lucky&#8221; button.</li>
<li><em>Notice in your Selenium IDE window that steps are being recorded.</em></li>
<li><em>With any luck, you hopefully landed on this blog&#8217;s home page.</em></li>
<li>Highlight the text &#8220;Daniel Brown&#8221; on the page, right click.  You should select the option that says &#8220;VerifyTextPresent Daniel Brown&#8221;.  See below:</li>
</ul>
<p><img class="aligncenter size-full wp-image-194" title="Screenshot_VerifyTextPresent" src="http://thetestingblog.files.wordpress.com/2009/09/screenshot_verifytextpresent.jpg?w=544&#038;h=378" alt="Screenshot_VerifyTextPresent" width="544" height="378" /></p>
<ul>
<li><em>Okay, we got our test recorded.  Now let&#8217;s run it to make sure it passes.</em></li>
<li>Unclick the red circle button to turn off recording.</li>
<li>Click on the green play triangle with the single bar to run the test</li>
</ul>
<p><img class="aligncenter size-full wp-image-197" title="Screenshot_PassedIDETest" src="http://thetestingblog.files.wordpress.com/2009/09/screenshot_passedidetest2.jpg?w=398&#038;h=517" alt="Screenshot_PassedIDETest" width="398" height="517" /></p>
<ul>
<li>All green, it passed.  Good.</li>
<li>Now we want to convert this test to C#.</li>
<li>Select &#8220;Options -&gt;Format -&gt; C# &#8211; Selenium RC&#8221; from the Selenium IDE window.</li>
</ul>
<p><img class="aligncenter size-full wp-image-198" title="Screenshot_ConvertToCSharp" src="http://thetestingblog.files.wordpress.com/2009/09/screenshot_converttocsharp.jpg?w=444&#038;h=517" alt="Screenshot_ConvertToCSharp" width="444" height="517" /></p>
<ul>
<li>Next select all the C# code and copy it.</li>
</ul>
<hr /><strong>Phase Two: Setup the C# Console App</strong></p>
<ul>
<li>Open up Visual Studio</li>
<li>Select &#8220;File -&gt;New -&gt;Project&#8221;</li>
<li>In the New Project window under project types, select &#8220;Visual C# -&gt;Windows&#8221;</li>
<li>Select the &#8220;Console Application&#8221; Template and name it something like &#8220;TestingBlogSeleniumTest&#8221; and click &#8220;Ok&#8221;.</li>
<li>It will create the project along with a file called &#8220;Program.cs&#8221;.  Paste your SeleniumIDE test into Notepad.  You&#8217;re going to take pieces out of the test and put it in &#8220;Program.cs&#8221;.</li>
</ul>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/toppart2.jpg"><img class="aligncenter size-full wp-image-374" title="TopPart" src="http://thetestingblog.files.wordpress.com/2010/02/toppart2.jpg?w=544&#038;h=214" alt="" width="544" height="214" /></a></p>
<ol>
<li>Add the using references from the SeleniumIDE test.  Replace any that are there.</li>
<li>Add the &#8220;ISelenium&#8221; and &#8220;StringBuilder&#8221; object references inside the Main() method.  As you see, I removed the &#8220;private&#8221; access control prefixes.  We don&#8217;t need them.</li>
<li>Add the body of the SetupTest() method after the object references.  (I put a comment to designate that it was part of the setup.)</li>
<li>Change &#8220;*chrome&#8221; to &#8220;*iexplore&#8221; for Internet Explorer.  Use &#8220;*firefox&#8221; for Firefox.  (There are other browser options, but those work best.)</li>
<li>Change the URL to the site you start your test on.  In this case, change that URL to &#8220;http://www.google.com/&#8221; since we&#8217;re starting from Google.</li>
</ol>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/paste-in-bodies2.jpg"><img class="aligncenter size-full wp-image-375" title="Paste in Bodies" src="http://thetestingblog.files.wordpress.com/2010/02/paste-in-bodies2.jpg?w=544&#038;h=412" alt="" width="544" height="412" /></a></p>
<p>6. Paste body of the TheUntitledTest() method into the Main() method.</p>
<p>7. Paste body of the TeardownTest() method into the Main() method.</p>
<p>8.  Get rid of the Try/Catch blocks on Teardown.</p>
<p>9. Get rid of the StringBuilder references.</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/replacebodytext1.jpg"><img class="aligncenter size-full wp-image-376" title="ReplaceBodyText" src="http://thetestingblog.files.wordpress.com/2010/02/replacebodytext1.jpg?w=544&#038;h=317" alt="" width="544" height="317" /></a></p>
<p>10.  Get rid of the Try/Catch block in the test body, replacing it with an if statement that writes to the console window if true (See my code below).  Notice that I have to cast the Selenium.IsTextPresent statement as a boolean.  I don&#8217;t understand why it doesn&#8217;t work without it because the return type for that method should be boolean.  But whatever.  I&#8217;m just dummy tester; what do I know?</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/closeup.jpg"><img class="aligncenter size-full wp-image-372" title="closeup" src="http://thetestingblog.files.wordpress.com/2010/02/closeup.jpg?w=544&#038;h=120" alt="" width="544" height="120" /></a></p>
<ul>
<li>Next we need to add all the references so this thing will run.</li>
<li>Go to the solution explorer, and right click on the &#8220;References&#8221; and select &#8220;Add Reference&#8230;&#8221;</li>
<li>Hit the &#8220;Browse&#8221; tab and navigate to where you unzipped your SeleniumRC files.  Look in the dotnet client driver folder.  Here&#8217;s the path to mine:</li>
</ul>
<p><span style="color:#0000ff;">C:\selenium-remote-control-1.0.1\selenium-dotnet-client-driver-1.0.1\</span></p>
<ul>
<li>Once you navigate to where the proper *.dlls are, select all of them and click &#8220;OK&#8221; to add them to the project.  (I know you can probably get away with adding less, but let&#8217;s keep it simple.)</li>
</ul>
<p><img class="aligncenter size-full wp-image-203" title="Add References" src="http://thetestingblog.files.wordpress.com/2009/09/add-references1.jpg?w=544&#038;h=292" alt="Add References" width="544" height="292" /></p>
<ul>
<li>Build the project to see if it works.  (Mine worked.  Hopefully yours did too.)</li>
</ul>
<hr /><strong>Phase Three: Running the Selenium RC test Console App</strong></p>
<ul>
<li>In order to run the Selenium RC test, you first have to have the Selenium RC server running.  The Selenium RC server folder should be in the files you unzipped.  Normally, I have a batch file on my desktop created to run the Selenium Server, but for our purposes, we&#8217;ll just run this from the &#8220;Start -&gt; Run&#8221; commandline, using this command:</li>
</ul>
<p><span style="color:#0000ff;">java -jar C:\selenium-remote-control-1.0.1\selenium-server-1.0.1\selenium-server.jar</span></p>
<ul>
<li>You should see some a dos window popup, and you will see something like the screenshot below.  DON&#8217;T CLOSE IT WHILE TESTING; IT NEEDS TO STAY RUNNING.  If you don&#8217;t have Java installed, this won&#8217;t work.  But most people should already have Java.</li>
</ul>
<p><img class="aligncenter size-full wp-image-205" title="SeleniumServer" src="http://thetestingblog.files.wordpress.com/2009/09/seleniumserver.jpg?w=544&#038;h=272" alt="SeleniumServer" width="544" height="272" /></p>
<p>Next you need to select Debug from your Visual Studio menu and select &#8220;Start Without Debugging&#8221;. (I&#8217;m choosing this option because it doesn&#8217;t close the console window after the end of execution.  The debug option does.)</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/start.jpg"><img class="aligncenter size-full wp-image-377" title="Start" src="http://thetestingblog.files.wordpress.com/2010/02/start.jpg?w=544&#038;h=306" alt="" width="544" height="306" /></a></p>
<p>You should see the Selenium window(s) pop-up.  And it should do it&#8217;s thing.  When it&#8217;s finished, you should see something like this:</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/19.jpg"><img class="aligncenter size-full wp-image-378" title="19" src="http://thetestingblog.files.wordpress.com/2010/02/19.jpg?w=544&#038;h=274" alt="" width="544" height="274" /></a></p>
<p>So, where is my test executable?  Well, it&#8217;s in the bin\debug folder of the project.  For me, the path to it looks like this:</p>
<p>C:\Documents and Settings\dbrown\My Documents\Visual Studio 2008\Projects\TestingBlogSeleniumTest\TestingBlogSeleniumTest\bin\Debug\</p>
<p>So, what do I need to run the program?  Just take the executable file and the dll&#8217;s.  Make sure the dll&#8217;s are in the same folder as the test when you execute it, otherwise you will get a big fat error.  If you send the executable to someone, make sure you send the dll&#8217;s too.</p>
<p><a href="http://thetestingblog.files.wordpress.com/2010/02/debugfolder.jpg"><img class="aligncenter size-full wp-image-380" title="debugfolder" src="http://thetestingblog.files.wordpress.com/2010/02/debugfolder.jpg?w=544&#038;h=265" alt="" width="544" height="265" /></a></p>
<p>Remember if you port that executable to another computer, it needs to be a Windows box with the .NET framework installed and Selenium server needs to be running.  I hope this actually helps someone.  I&#8217;m going to post some tricks to &#8220;sex up&#8221; your console app.  Be looking for them shortly. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Sorry, I still haven&#8217;t figured out Selenium GRID good enough to post on it.  Maybe Marisa could post on it?  She&#8217;s awesome like that.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/364/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=364&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2010/02/02/selenium-rc-in-console-app/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/collage1.jpg" medium="image">
			<media:title type="html">collage</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/screenshot_verifytextpresent.jpg" medium="image">
			<media:title type="html">Screenshot_VerifyTextPresent</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/screenshot_passedidetest2.jpg" medium="image">
			<media:title type="html">Screenshot_PassedIDETest</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/screenshot_converttocsharp.jpg" medium="image">
			<media:title type="html">Screenshot_ConvertToCSharp</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/toppart2.jpg" medium="image">
			<media:title type="html">TopPart</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/paste-in-bodies2.jpg" medium="image">
			<media:title type="html">Paste in Bodies</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/replacebodytext1.jpg" medium="image">
			<media:title type="html">ReplaceBodyText</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/closeup.jpg" medium="image">
			<media:title type="html">closeup</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/add-references1.jpg" medium="image">
			<media:title type="html">Add References</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/seleniumserver.jpg" medium="image">
			<media:title type="html">SeleniumServer</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/start.jpg" medium="image">
			<media:title type="html">Start</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/19.jpg" medium="image">
			<media:title type="html">19</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2010/02/debugfolder.jpg" medium="image">
			<media:title type="html">debugfolder</media:title>
		</media:content>
	</item>
		<item>
		<title>What I Learned by Contributing to FitNesse</title>
		<link>http://thetestingblog.com/2010/01/04/contributing-to-fitnesse/</link>
		<comments>http://thetestingblog.com/2010/01/04/contributing-to-fitnesse/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 07:52:17 +0000</pubDate>
		<dc:creator>Marisa Seal</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[testing tools]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=353</guid>
		<description><![CDATA[by Marisa Seal As of today, I am officially a contributor to FitNesse. I contributed a new feature idea and its implementation (the initial idea was borrowed from FitLibrary&#8217;s SequenceFixture but morphed a bit based on suggestions from Bob Martin), and also worked on Slim version detection. I am not a developer by training nor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=353&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>by <a href="http://thetestingblog.com/author/marrrisa/" target="_blank">Marisa Seal</a></p>
<p>As of today, I am officially a <a href="http://fitnesse.org/.FrontPage.FitNesseDevelopment.FitNesseRelease20100103" target="_blank">contributor to FitNesse</a>. I contributed a <a href="http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestSequentialArgumentProcessing" target="_blank">new feature</a> idea and its implementation (the initial idea was borrowed from FitLibrary&#8217;s <a href="http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.FitLibraryFixtures.SequenceFixture" target="_blank">SequenceFixture</a> but morphed a bit based on suggestions from Bob Martin), and also worked on Slim version detection. I am not a developer by training nor trade, but armed with basic coding skills and fueled by the guidance and what I can only describe as the graciousness of Uncle Bob, I was successful. The experience was trying, exciting, and actually pretty fun. While I learned an awful lot more than I&#8217;m going to detail here, I think I had three really important realizations while working on the updates.</p>
<h3>TDD Works!</h3>
<p>Given that I am a tester, I have read/learned about, discussed, and even advocated TDD. Given that I do not (usually) write production code, I had never actually tried it. I decided I&#8217;d give it a go since I needed to write unit tests for my updates anyway.</p>
<p>The existing unit tests for the class I updated served as my guide. I wrote a test to verify the simplest case of the new feature. I ran it &#8211; here&#8217;s the interesting thing: it passed. This surprised me, but also informed me that I <em>did not need to make any changes</em> to the code for the simplest case. The update involved implementing a special character to invoke a different processing scheme for function calls in Slim Script tables, so I had figured that I&#8217;d at least need to update the code to ignore the special character in the simplest case&#8230;but as the unit test proved, I did not.</p>
<p>I wrote a second unit test to verify another simple (yet different) case &#8211; this one failed as expected. I added code to the class in question, ran the test, and saw it fail again. But aha &#8211; I also saw <em>why</em> it failed, and that information helped me find my mistake. At this point I&#8217;d like to say that I made the fix, ran the test, and saw it pass &#8211; but it didn&#8217;t happen that way. I went through a few iterations of running the test and fixing my code.</p>
<p>The test finally passed, and I ran the entire suite of tests for the class. They all passed. The most appropriate word I can find to describe that moment is <em>epiphanic</em>. It was then that I truly understood and appreciated two of the benefits of TDD I have often heard:</p>
<ol>
<li>Practicing TDD can help ensure that only necessary code is implemented, since the goal of writing/updating the code is to make one test pass. Remember, I didn&#8217;t even need to write any code to make the first test pass.</li>
<li>Having a suite of unit tests &#8211; a byproduct of practicing TDD &#8211; can provide confidence that updates have not unintentionally changed existing behavior. The bonus is that unit tests are <strong>fast</strong>, so the feedback can be almost instantaneous. For example, the entire suite of 208 unit tests for the class I updated runs in under 1.5 seconds on my machine.</li>
</ol>
<p>Having an understanding of a practice is one thing; having experience implementing the practice is another. Upon reflection, I now find it odd that I could have advocated TDD without having tried it myself.</p>
<h3>Refactoring is more than just &#8220;Changing&#8221;</h3>
<p>I&#8217;m a bit embarrassed to admit this, but up until recently, I used the word &#8220;refactoring&#8221; as a substitute for &#8220;changing,&#8221; since I thought that&#8217;s what refactoring meant. I thought it was just a dev-ified word for &#8220;changing&#8221; or &#8220;improving.&#8221;</p>
<p>Once I submitted the first update to Bob Martin, I asked him for feedback. I was quite proud that the new feature took only about a dozen new and updated lines of code, but I wondered what I could have done better. Uncle Bob told me that since I had added a couple lines of code to an existing function, the function&#8217;s length was getting to the point where he&#8217;d want to extract some of the functionality &#8211; he suggested extracting a particular loop to a &#8220;method object.&#8221; I immediately Googled &#8220;extract to method object&#8221; and found information about it on <a href="http://www.refactoring.com/index.html" target="_blank">refactoring.com</a>. I quickly realized that refactoring actually encompasses specific techniques that address specific scenarios &#8211; refactoring is not just changing code.</p>
<p>I&#8217;m not as embarrassed to admit that I really had no clue how to execute &#8220;extract to method object.&#8221; I ruminated about it for a few days, and finally just told Uncle Bob that I didn&#8217;t know how to get started. He sent me the code, explained step-by-step how he got to the end result, but still allowed me to commit the change myself&#8230;which leads me to my last point.</p>
<h3>I think I know one reason why he&#8217;s called &#8220;Uncle&#8221; Bob</h3>
<p>There were many times throughout the last few weeks that I wondered when Uncle Bob would say to me &#8220;I&#8217;ll just do it myself &#8211; it&#8217;ll be faster that way.&#8221; That certainly would have been a true statement. Being that I am not &#8211; as I stated before &#8211; a developer by training or trade, I was surprised that he even supported the idea of me actually committing code changes when I first contacted him to suggest the new feature. It turns out that my fear and surprise were completely unfounded. Uncle Bob continually offered guidance and encouragement, and always ended his messages with &#8220;Let me know if you need any help.&#8221; Here&#8217;s the kicker: he meant it, too.</p>
<p>I really did feel like I was the lucky recipient of mentoring by a person who has literally &#8220;written the book&#8221; (multiple books, actually) about software craftsmanship.</p>
<p>I hope that some FitNesse users find the new feature valuable, and that I will be able to contribute to FitNesse again in the future. It was a great experience.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/353/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=353&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2010/01/04/contributing-to-fitnesse/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5524b69490657d7297e7dc63c8cad62?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">marrrisa</media:title>
		</media:content>
	</item>
		<item>
		<title>Selenium RC in C# using NUnit: An End-to-End Example</title>
		<link>http://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/</link>
		<comments>http://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 21:11:01 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[test automation]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[.NET testing]]></category>
		<category><![CDATA[Web testing]]></category>
		<category><![CDATA[UI Testing]]></category>
		<category><![CDATA[Selenium RC]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Selenium IDE]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=184</guid>
		<description><![CDATA[This may come as a shock to many of you, but I&#8217;m kinda a dummy. (Collective gasps echoing through the Web.) I know! It&#8217;s hard to believe, but that&#8217;s why I&#8217;m such a great tester: I don&#8217;t take much for granted. I hate technology tutorials that kind of wing the details. The devil is in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=184&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This may come as a shock to many of you, but I&#8217;m kinda a dummy. <em>(Collective gasps echoing through the Web.)</em> I know! It&#8217;s hard to believe, but that&#8217;s why I&#8217;m such a great tester: I don&#8217;t take much for granted. I hate technology tutorials that kind of wing the details. The devil is in the details, YOU DUMMY! The common sense thing that you omitted might be the one thing that your reader is missing!</p>
<p>Because I love my readers and aspiring software testers, I&#8217;m going to give a dummy tutorial on how to get Selenium RC up and running for C#.NET users using NUnit. I&#8217;m going to cover every <strong>painful </strong>detail. I&#8217;m confident once you have this example running, you should be able to do a whole lot of things (assuming you have some basic coding skills).</p>
<p>First off, you need to get all these things (if you don&#8217;t have them):</p>
<ul>
<li><a href="http://release.seleniumhq.org/selenium-remote-control/1.0.1/selenium-remote-control-1.0.1-dist.zip">Selenium RC</a></li>
<li><a href="http://sourceforge.net/projects/nunit/files/NUnit%20Version%202/NUnit-2.5.2.9222.msi/download">NUnit</a></li>
<li><a href="http://www.mozilla.com/products/download.html?product=firefox-3.5.2&amp;os=win&amp;lang=en-US">Firefox</a></li>
<li><a href="http://release.openqa.org/selenium-ide/1.0.2/selenium-ide-1.0.2.xpi">Selenium IDE</a></li>
<li><a href="http://www.java.com/en/download/index.jsp">Java Runtime Environment</a> (You should already have this)</li>
</ul>
<hr /><strong>Install instructions for the downloads:</strong></p>
<p><strong>Selenium RC</strong><br />
-No installation necessary. Just find a permanent location and unzip it there. I unzipped mine at <span style="color:#0000ff;">C:\</span> just to make things simple</p>
<p><strong>NUnit, Firefox, and Java</strong><br />
-Just run the respective installs with all defaults selected.</p>
<p><strong>Selenium IDE</strong><br />
-To install, right click on the file and select &#8220;Open With&#8230;&#8221;<br />
-Select Firefox in the programs list. If it&#8217;s not in the immediate menu, browse to it. (default location should be &#8220;<span style="color:#0000ff;">C:\Program Files\Mozilla Firefox\firefox.exe</span>&#8220;<br />
-When Firefox launches, click button in the dialog box that says &#8220;Install Now&#8221;.<br />
-After the install of the plug-in, hit the &#8220;Restart Firefox&#8221; button when you see it.</p>
<hr /><strong>Phase One: Record a Test using Selenium IDE</strong></p>
<p>Okay, so, now that you have the tools, we&#8217;re going to record a simple test in Selenium IDE. Even though we want to eventually run the test in Selenium RC, Selenium IDE is a great tool for getting the basic test recorded since it&#8217;s all UI point and click.</p>
<ul>
<li>Start up Firefox.</li>
<li>Click on the &#8220;Tools&#8221; menu and click on &#8220;Selenium IDE&#8221;</li>
<li><em>(Take your time to explore the Selenium IDE form)</em></li>
<li>Notice that it&#8217;s already recording.  The red circle button on the right side is pressed in:</li>
<li>Type &#8220;<span style="color:#0000ff;">www.google.com</span>&#8221; the main Firefox browser address bar and navigate to it.</li>
<li>In the search box, type in &#8220;<span style="color:#0000ff;">thetestingblog.com</span>&#8221; and hit the &#8220;I&#8217;m Feeling Lucky&#8221; button.</li>
<li><em>Notice in your Selenium IDE window that steps are being recorded.</em></li>
<li><em>With any luck, you hopefully landed on this blog&#8217;s home page.</em></li>
<li>Highlight the text &#8220;Daniel Brown&#8221; on the page, right click.  You should select the option that says &#8220;VerifyTextPresent Daniel Brown&#8221;.  See below:</li>
</ul>
<p><img class="aligncenter size-full wp-image-194" title="Screenshot_VerifyTextPresent" src="http://thetestingblog.files.wordpress.com/2009/09/screenshot_verifytextpresent.jpg?w=544&#038;h=378" alt="Screenshot_VerifyTextPresent" width="544" height="378" /></p>
<ul>
<li><em>Okay, we got our test recorded.  Now let&#8217;s run it to make sure it passes.</em></li>
<li>Unclick the red circle button to turn off recording.</li>
<li>Click on the green play triangle with the single bar to run the test</li>
</ul>
<p><img class="aligncenter size-full wp-image-197" title="Screenshot_PassedIDETest" src="http://thetestingblog.files.wordpress.com/2009/09/screenshot_passedidetest2.jpg?w=398&#038;h=517" alt="Screenshot_PassedIDETest" width="398" height="517" /></p>
<ul>
<li>All green, it passed.  Good.</li>
<li>Now we want to convert this test to C#.</li>
<li>Select &#8220;Options -&gt;Format -&gt; C# &#8211; Selenium RC&#8221; from the Selenium IDE window.</li>
</ul>
<p><img class="aligncenter size-full wp-image-198" title="Screenshot_ConvertToCSharp" src="http://thetestingblog.files.wordpress.com/2009/09/screenshot_converttocsharp.jpg?w=444&#038;h=517" alt="Screenshot_ConvertToCSharp" width="444" height="517" /></p>
<ul>
<li>Next select all the C# code and copy it.</li>
</ul>
<hr /><strong>Phase Two: Setup the C# Test Project</strong></p>
<ul>
<li>Open up Visual Studio</li>
<li>Select &#8220;File -&gt;New -&gt;Project&#8221;</li>
<li>In the New Project window under project types, select &#8220;Visual C# -&gt;Windows&#8221;</li>
<li>Select the &#8220;Class Library&#8221; Template and name it something like &#8220;TestingBlogSeleniumRc&#8221; and click &#8220;Ok&#8221;.</li>
<li>It will create the project along with a file called &#8220;Class1.cs&#8221;.  Paste your SeleniumIDE test into that file.</li>
</ul>
<ol>
<li>Rename &#8220;Class1.cs&#8221; to &#8220;FirstTest.cs&#8221;.</li>
<li>In the code, change the namespace from &#8220;SeleniumTests&#8221; to &#8220;TestingBlogSeleniumRc&#8221;:</li>
<li>Modify the class name from &#8220;Untitled&#8221; to &#8220;FirstTest&#8221;.  It&#8217;s good to change this so that if you add other tests, there won&#8217;t be any duplicated class names in the namespace (This has gotten me before, causing compile errors.).</li>
<li>We also have to modify the Selenium instantiation to launch Internet Explorer.  Where it has &#8220;*chrome&#8221;, change it to &#8220;*iehta&#8221;.</li>
<li>Where it has &#8220;http://change-this-to-the-site-you-are-testing/&#8221;, change it to &#8220;http://www.google.com&#8221;.</li>
</ol>
<p><img class="aligncenter size-full wp-image-207" title="ModifySeleniumTestFile" src="http://thetestingblog.files.wordpress.com/2009/09/modifyseleniumtestfile.jpg?w=544&#038;h=199" alt="ModifySeleniumTestFile" width="544" height="199" /></p>
<ul>
<li>Next we need to add all the references so this thing will run.</li>
<li>Go to the solution explorer, and right click on the &#8220;References&#8221; and select &#8220;Add Reference&#8230;&#8221;</li>
<li>Hit the &#8220;Browse&#8221; tab and navigate to where you unzipped your SeleniumRC files.  Look in the dotnet client driver folder.  Here&#8217;s the path to mine:</li>
</ul>
<p><span style="color:#0000ff;">C:\selenium-remote-control-1.0.1\selenium-dotnet-client-driver-1.0.1\</span></p>
<ul>
<li>Once you navigate to where the proper *.dlls are, select all of them and click &#8220;OK&#8221; to add them to the project.  (I know you can probably get away with adding less, but let&#8217;s keep it simple.)</li>
</ul>
<p><img class="aligncenter size-full wp-image-203" title="Add References" src="http://thetestingblog.files.wordpress.com/2009/09/add-references1.jpg?w=544&#038;h=292" alt="Add References" width="544" height="292" /></p>
<ul>
<li>Build the project to see if it works.  (Mine worked.  Hopefully yours did too.)</li>
</ul>
<hr /><strong>Phase Three: Running the Selenium RC test</strong></p>
<ul>
<li>In order to run the Selenium RC test, you first have to have the Selenium RC server running.  The Selenium RC server folder should be in the files you unzipped.  Normally, I have a batch file on my desktop created to run the Selenium Server, but for our purposes, we&#8217;ll just run this from the &#8220;Start -&gt; Run&#8221; commandline, using this command:</li>
</ul>
<p><span style="color:#0000ff;">java -jar C:\selenium-remote-control-1.0.1\selenium-server-1.0.1\selenium-server.jar</span></p>
<ul>
<li>You should see some a dos window popup, and you will see something like the screenshot below.  DON&#8221;T CLOSE IT WHILE TESTING; IT NEEDS TO STAY RUNNING.  If you don&#8217;t have Java installed, this won&#8217;t work.  But most people should already have Java.</li>
</ul>
<p><img class="aligncenter size-full wp-image-205" title="SeleniumServer" src="http://thetestingblog.files.wordpress.com/2009/09/seleniumserver.jpg?w=544&#038;h=272" alt="SeleniumServer" width="544" height="272" /></p>
<ul>
<li>Next you need to launch the NUnit GUI to run the test from.  Since you installed NUnit, you should be able to navigate to it &#8220;Start -&gt; All Programs -&gt; NUnit 2.4.7 -&gt; NUnit GUI (.NET 2.0)&#8221;</li>
<li>Once you open the NUnit runner, Click &#8220;File -&gt; Open Project&#8230;&#8221; and navigate to the compiled dll from your test project.  For me, the path looks like this:</li>
</ul>
<p><span style="color:#0000ff;">C:\Documents and Settings\dbrown1\My Documents\Visual Studio 2008\Projects\TestingBlogSeleniumRc\TestingBlogSeleniumRc\bin\Debug\TestingBlogSeleniumRc.dll</span></p>
<ul>
<li>Once it loads, click on &#8220;Run&#8221; to start the test.</li>
</ul>
<p><img class="aligncenter size-full wp-image-208" title="NUnit runner" src="http://thetestingblog.files.wordpress.com/2009/09/nunit-runner.jpg?w=544&#038;h=518" alt="NUnit runner" width="544" height="518" /></p>
<p>If you got all green, congrats!  You just got your first passing Selenium RC test!  From here we can definitely get more complex. I&#8217;m sorry if I was too verbose, but I didn&#8217;t want to leave out any important details.  If you have any specific issues, please post a question; I&#8217;ll be happy to answer it.  Thanks for reading!</p>
<p><strong>UPDATE  10/14/2009:</strong></p>
<p>Thank you for your comment, Ron.  You pointed out something that I completely spaced on.  There&#8217;s one more step you need to complete before your test is ready.  You must get rid of the try-catch exception block.  As long as you have that block in your test, your test will never fail.  Nunit counts on an exception being thrown when an assert statement fails.  If that exception gets caught, then Nunit thinks that the test passed.  Why does Selenium IDE put that try-catch in when coverting the test to C#?  I have no idea.  I just know that it doesn&#8217;t need to be in there in our example.</p>
<p>BEFORE Try-Catch is removed:</p>
<p><img class="aligncenter size-full wp-image-314" title="18" src="http://thetestingblog.files.wordpress.com/2009/09/18.jpg?w=515&#038;h=305" alt="18" width="515" height="305" /></p>
<p>AFTER Try-Catch is removed:</p>
<p><img class="aligncenter size-full wp-image-316" title="20" src="http://thetestingblog.files.wordpress.com/2009/09/20.jpg?w=477&#038;h=180" alt="20" width="477" height="180" /></p>
<p>Just because I want to prove that it works, I will show you an example where I have two tests in the file.  One looks for the text &#8220;Jello Pudding&#8221;, and one looks for the text &#8220;Daniel Brown&#8221;.  Here&#8217;s code for the tests:</p>
<p><img class="aligncenter size-full wp-image-317" title="21" src="http://thetestingblog.files.wordpress.com/2009/09/21.jpg?w=495&#038;h=353" alt="21" width="495" height="353" /></p>
<p>(Helpful Note to Nunit beginners: when Nunit runs, it executes the [<span style="color:#33cccc;">SetUp</span>]  method before each [<span style="color:#33cccc;">Test</span>] and [<span style="color:#33cccc;">TearDown</span>] method after each [<span style="color:#33cccc;">Test</span>] .)   After running the two tests, I have very contrasting results (as I figured I would).  The test that looks for &#8220;Daniel Brown&#8221; passed like a charm, but the test for &#8220;Jelly Pudding&#8221; failed:</p>
<p><img class="aligncenter size-full wp-image-319" title="23" src="http://thetestingblog.files.wordpress.com/2009/09/231.jpg?w=544&#038;h=222" alt="23" width="544" height="222" /></p>
<p>The bar is solid red because one failure at any level of the tree is a failed test run.  THANKS RON!  Sorry to leave out something so important.</p>
<p>Another order of business is I didn&#8217;t mention in my article, as granular as it is, that you need Visual Studio!  THANKS DAWN!  I guess I just kind of assumed that you might have it if you are interested in running Selenium in C#.  Well, I hate to assume so if you don&#8217;t have Visual Studio, you can download a free copy of Visual C# 2008 Express Edition: <a href="http://www.microsoft.com/express/download/">http://www.microsoft.com/express/download/</a> I believe you can run this example using the express edition, but I haven&#8217;t tested it.  If you do test it, give me some feedback.  I&#8217;d like to hear how it works.  Also, instead of the Visual C# Express Edition, you may also be able to use the Microsoft Visual Web Developer, but again I haven&#8217;t tested it.  I don&#8217;t know for sure.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=184&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2009/09/10/selenium-rc-in-c-using-nunit-an-end-to-end-example/feed/</wfw:commentRss>
		<slash:comments>74</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/screenshot_verifytextpresent.jpg" medium="image">
			<media:title type="html">Screenshot_VerifyTextPresent</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/screenshot_passedidetest2.jpg" medium="image">
			<media:title type="html">Screenshot_PassedIDETest</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/screenshot_converttocsharp.jpg" medium="image">
			<media:title type="html">Screenshot_ConvertToCSharp</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/modifyseleniumtestfile.jpg" medium="image">
			<media:title type="html">ModifySeleniumTestFile</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/add-references1.jpg" medium="image">
			<media:title type="html">Add References</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/seleniumserver.jpg" medium="image">
			<media:title type="html">SeleniumServer</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/nunit-runner.jpg" medium="image">
			<media:title type="html">NUnit runner</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/18.jpg" medium="image">
			<media:title type="html">18</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/20.jpg" medium="image">
			<media:title type="html">20</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/21.jpg" medium="image">
			<media:title type="html">21</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/09/231.jpg" medium="image">
			<media:title type="html">23</media:title>
		</media:content>
	</item>
		<item>
		<title>Useful Non-testing Tools: Part III</title>
		<link>http://thetestingblog.com/2009/08/04/useful-non-testing-tools-part-iii/</link>
		<comments>http://thetestingblog.com/2009/08/04/useful-non-testing-tools-part-iii/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 14:33:28 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[Media Encoder]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[presentation tools]]></category>
		<category><![CDATA[screen capture]]></category>
		<category><![CDATA[video recorder]]></category>
		<category><![CDATA[Windows Media Encoder]]></category>
		<category><![CDATA[ZoomIT]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=90</guid>
		<description><![CDATA[As a quality assurance component of an organization, there&#8217;s a pretty strong possiblity that you might be called upon to make a presentation of some kind.  No, I&#8217;m not going to give you some lame tutorial on using Powerpoint.  Life is too short.  Instead, I&#8217;m going to show you some tools to add to your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=90&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As a quality assurance component of an organization, there&#8217;s a pretty strong possiblity that you might be called upon to make a presentation of some kind.  No, I&#8217;m not going to give you some lame tutorial on using Powerpoint.  Life is too short.  Instead, I&#8217;m going to show you some tools to add to your toolbox.  Along with Cropper, which I have already showed you, here are some other tools that might help you put together a winning presentation.</p>
<hr />
<p><strong><span style="font-size:medium;">ZoomIt (Presentation Tool)</span></p>
<p>http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx</strong></p>
<p><em>click on image to see the video demo of ZoomIT</em><br />
<a href="http://www.youtube.com/watch?v=5fhZv4jrhaI" target="_blank"><img src="http://thetestingblog.files.wordpress.com/2009/08/zoomit.jpg?w=454&#038;h=275" alt="ZoomIT" title="ZoomIT" width="454" height="275" class="aligncenter size-full wp-image-98" /></a></p>
<p>ZoomIT is a nice tool to use during presentations.  You can use it to zoom in and out on your screen, making unreadable items bigger.  When zooming in isn&#8217;t enough to accentuate an item, you can also draw an arrow or circle an item.  Yes, that&#8217;s right, ZoomIT makes your screen into your own personal John Madden console, allowing you to make on the fly notes during your presentation.  Make a mess of your screen, simply hit &#8220;ESC&#8221; to clear off the junk.  Something else that&#8217;s interesting is the timer feature.  Need to give your presentation participates a ten minute break?  You can start a timer, and it will count off the time in a full screen mode.  It&#8217;s blatantly clear when everyone needs to return.  Watch the video on youTube, try it out.  One hint: to see all the commands, right click on the ZoomIT tray icon and click on &#8220;options&#8221;.  But basically, it&#8217;s Ctrl-1, Ctrl-2, and Ctrl-3 to Zoom in, draw, and start timer respectively.</p>
<hr />
<p><strong><span style="font-size:medium;">Windows Media Encoder (video screen capture)</span></p>
<p>http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24&#038;displaylang=en</strong></p>
<p><img src="http://thetestingblog.files.wordpress.com/2009/08/encoder.jpg?w=454&#038;h=349" alt="Encoder" title="Encoder" width="454" height="349" class="aligncenter size-full wp-image-95" /></p>
<p>How did I record the above video for ZoomIT?  I used Windows Media Encoder.  It&#8217;s a decent video screen capture utility.  You can capture one window, the entire screen, or you can drag your cursor and customized the area you want to capture.  I think that there are better screen capture utilities than this one, but this is the one I use.  It&#8217;s simple to use, and it gets the results I need.  If you have a better one to recommend, please post it in the comments.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=90&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2009/08/04/useful-non-testing-tools-part-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/08/zoomit.jpg" medium="image">
			<media:title type="html">ZoomIT</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/08/encoder.jpg" medium="image">
			<media:title type="html">Encoder</media:title>
		</media:content>
	</item>
		<item>
		<title>Useful Non-testing Tools: Part II</title>
		<link>http://thetestingblog.com/2009/07/31/useful-non-testing-tools-part-ii/</link>
		<comments>http://thetestingblog.com/2009/07/31/useful-non-testing-tools-part-ii/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 18:56:48 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[ClipX]]></category>
		<category><![CDATA[Command Line]]></category>
		<category><![CDATA[Copy and Paste]]></category>
		<category><![CDATA[Shortcut]]></category>
		<category><![CDATA[SlickRun]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=66</guid>
		<description><![CDATA[How do you like the 1st set of testing tools? Any good? Or do they suck? Post your comments; let me know what you think. If you liked the first set, here&#8217;s more: Slick Run (Quick Command line Prompt) http://bayden.com/SlickRun/ Slick Run is an always on-top,  floating command line tool that allows to you designate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=66&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>How do you like the 1st set of testing tools?  Any good?  Or do they suck?  Post your comments; let me know what you think.</p>
<p>If you liked the first set, here&#8217;s more:</p>
<hr /><strong><span style="font-size:medium;">Slick Run (Quick Command line Prompt)</span></p>
<p>http://bayden.com/SlickRun/</p>
<p><img class="alignleft size-full wp-image-70" title="slickrun" src="http://thetestingblog.files.wordpress.com/2009/07/slickrun.jpg?w=140&#038;h=31" alt="slickrun" width="140" height="31" /></strong></p>
<p>Slick Run is an always on-top,  floating command line tool that allows to you designate &#8220;MagicWords&#8221; that will launch applications and websites for you.  As you can see, it also tells you the date and time when you&#8217;re not using it.  One magicword I made was &#8220;vs&#8221; to start Visual Studio.  <img class="alignright size-full wp-image-73" title="slickrun2" src="http://thetestingblog.files.wordpress.com/2009/07/slickrun21.jpg?w=134&#038;h=20" alt="slickrun2" width="134" height="20" />Just type in &#8220;vs&#8221; push enter, and it launches Visual Studio.  For me, typing &#8220;sql&#8221; launches SQL Management Studio.  You can also define MagicWords that allow you to pass in parameters.  For instance, &#8220;weather&#8221; takes a zip code as a parameter, launching weather.com with the local forecast of that zip code.<img class="alignleft size-full wp-image-74" title="slickrun3" src="http://thetestingblog.files.wordpress.com/2009/07/slickrun3.jpg?w=136&#038;h=25" alt="slickrun3" width="136" height="25" /></p>
<p>Overall, I think Slickrun is a great way to quickly open applications and websites while reducing icon clutter on your desktop.  For the power user, it really speeds things up.  And the learning curve isn&#8217;t bad because you can use it as much or as little as you want.  The Windows GUI and program icons are still available when you don&#8217;t remember a command.</p>
<p>It&#8217;s not for everyone: my colleague Randy use to be a big UNIX programmer, and now he does .NET stuff almost exclusively.  About Slickrun, he said that it reminds him of his UNIX days, and he doesn&#8217;t want to go back to having to remember commands.  He said there&#8217;s a reason why they created operating systems with nice GUI&#8217;s.  Point taken, Randy.</p>
<hr /><strong><span style="font-size:medium;">Clip X (clipboard extender utility)</span></p>
<p>http://clipx.org/</strong></p>
<p><img class="aligncenter size-full wp-image-84" title="ClipX" src="http://thetestingblog.files.wordpress.com/2009/07/clipx.jpg?w=337&#038;h=386" alt="ClipX" width="337" height="386" /></p>
<p>ClipX is a utility that extents the functionality of the keyboard.  It creates a sort of copy &amp; paste stack.  The latest copied things end up on the top.  By pressing Ctrl+Shift+v (I defined this combination.), I bring up a list of the last couple of things copied.  I can select that from that list using the arrow keys or by typing that number, and it will paste that item.  It even allows copied images on the list.  The great thing is that you don&#8217;t have to use it all the time.  Your regular cut, copy, and paste still works the same; this is just extra.  Try out this tool.  I think you will like it.  It&#8217;s highly configurable and great to use.</p>
<p>Occasionally on some contexts, it will have trouble copying to the list, but regular copy and paste still works.  Overall, it&#8217;s a great and useful tool.</p>
<hr />
<p>Come back soon for more tools.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=66&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2009/07/31/useful-non-testing-tools-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/slickrun.jpg" medium="image">
			<media:title type="html">slickrun</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/slickrun21.jpg" medium="image">
			<media:title type="html">slickrun2</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/slickrun3.jpg" medium="image">
			<media:title type="html">slickrun3</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/clipx.jpg" medium="image">
			<media:title type="html">ClipX</media:title>
		</media:content>
	</item>
		<item>
		<title>Useful Non-testing Tools</title>
		<link>http://thetestingblog.com/2009/07/30/useful-non-testing-tools/</link>
		<comments>http://thetestingblog.com/2009/07/30/useful-non-testing-tools/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 23:14:51 +0000</pubDate>
		<dc:creator>Daniel Brown</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[cropper]]></category>
		<category><![CDATA[notepad++]]></category>
		<category><![CDATA[paint.net]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[testing tools]]></category>
		<category><![CDATA[useful]]></category>

		<guid isPermaLink="false">http://thetestingblog.com/?p=24</guid>
		<description><![CDATA[After writing two philosophic testing blog entries that smacked of a bourbon fogged night (I promise; I was sober!), I decided to give the people something with some meat.  I have compiled a list (no warnings or errors) of some of the best non-testing tools that testers can use.  These are tools that aren&#8217;t directly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=24&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After writing two philosophic testing blog entries that smacked of a bourbon fogged night (I promise; I was sober!), I decided to give the people something with some meat.  I have compiled a list (no warnings or errors) of some of the best non-testing tools that testers can use.  These are tools that aren&#8217;t directly related to testing, but help make our job easier.  I have used continually these tools continually.  I could be a douche bag hipster and throw together a list of cutting edge tools that are cool to mention, but I won&#8217;t.  I find that kind of behavior disingenuous to promote tools I don&#8217;t really use so I&#8217;m only going to mention ones that I&#8217;ve actually found useful.    <strong>OH, AND THEY ARE ALL FREE!</strong> If any of the links don&#8217;t work, just Google the name of the tool.  You&#8217;ll find it.  Google knows all.  Here&#8217;s the meat:</p>
<hr />
<p><strong></strong></p>
<p><span style="font-size:medium;"><strong>Cropper  (</strong><em><strong>Screen Capture Utility)</strong></em></span><br />
<strong><span style="font-weight:normal;"><a style="text-decoration:none;" href="http://blogs.geekdojo.net/brian/articles/Cropper.aspx"><strong>http://blogs.geekdojo.net/brian/articles/Cropper.aspx</strong></a></span></strong> </p>
<p><img class="aligncenter size-medium wp-image-25" title="cropper" src="http://thetestingblog.files.wordpress.com/2009/07/cropper.jpg?w=300&#038;h=192" alt="cropper" width="300" height="192" /></p>
<p>Cropper is a transparent, floating screenshot utility.  You can make it big, small just by dragging the corner.  You can change the output format and resolution. Left Click or Press Enter to take a screenshot.  This is an absolute must have for anyone that has to take screenshots.  (<em>Irony: in order to take a screenshot of Cropper itself, I had to use PrtScn.  Haha.)</em></p>
<hr />
<p><strong></strong></p>
<p><span style="font-size:medium;"><strong>Paint.NET (graphics editing program)</strong><br />
<strong></span><a href="http://www.getpaint.net/download.html">http://www.getpaint.net/download.html</a></strong></p>
<p><strong><img class="aligncenter size-full wp-image-27" title="1" src="http://thetestingblog.files.wordpress.com/2009/07/11.jpg?w=454&#038;h=349" alt="1" width="454" height="349" /><span style="font-weight:normal;"> </span></strong></p>
<p><strong><span style="font-weight:normal;">Paint.NET is a great utility for editing photos.  This is especially true if you only have MS Paint that comes with windows.  (What a piece of garbage MS Paint is!)  The interface is nice and slick and easy to use.  If you&#8217;re currently using GIMP, give this one a try.  You may like it better.  I think it&#8217;s better.  One caveat: if you are a long time power user of Photoshop, you will probably turn your nose up at this program.  Photoshop is definitely better.  But this is free, SON!</span></strong></p>
<hr />
<strong></strong></p>
<p><span style="font-size:medium;"><strong>Notepad++ (replacement for MS Notepad)</span><br />
<a href="http://notepad-plus.sourceforge.net/"> http://notepad-plus.sourceforge.net/</a></strong></p>
<p><strong> </strong></p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:496px;width:1px;height:1px;">Notepad++</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:496px;width:1px;height:1px;">http://notepad-plus.sourceforge.net/</div>
<p><strong><img class="aligncenter size-full wp-image-29" title="2" src="http://thetestingblog.files.wordpress.com/2009/07/2.jpg?w=455&#038;h=302" alt="2" width="455" height="302" /></strong></p>
<p>Notepad++ is a badass replacement for MS Notepad.  If you didn&#8217;t have any nice development tools, you could write your code from here, compile it from the command line, and not feel bad about yourself.  First off, it has color coding different file types (see XML above), and of course, you can add custom schemas.  You can do absolutely crazy find and replace string manipulations with this program.  You can write complex macros.  You can convert the character set from Windows to Mac to UNIX.  Whatever you want!  It accepts plug-ins.  People build tons of plug-ins for it.  I downloaded a plugin that allowed me to view and edit the Hex of a compiled *.exe.  If you like options, this program is chalked full of them without being a bloated piece of crap.  This is the Ivan Drago of Notepad replacements.  &#8221;I must break you&#8221; from using MS Notepad</p>
<p>.<img class="alignnone size-thumbnail wp-image-30" title="dolph-m61" src="http://thetestingblog.files.wordpress.com/2009/07/dolph-m61.jpg?w=150&#038;h=122" alt="dolph-m61" width="150" height="122" /></p>
<hr />
<p><strong></strong></p>
<p><span style="font-size:medium;"><strong>Replacing Notepad with Notepad++ (Notepad sucks!)</span><br />
<a href="http://notepad-plus.sourceforge.net/commun/misc/NppLauncher.bin.zip">http://notepad-plus.sourceforge.net/commun/misc/NppLauncher.bin.zip</a></strong></p>
<p>Now that you have Notepad++, why would you ever go back to stupid MS Notepad?    Let&#8217;s make it where Notepad++ completely replaces it.  Download the launcher from the above link.  Unzip it.  Copy the &#8220;notepad.exe&#8221; file into:<br />
<span style="color:Blue;"><br />
C:\WINDOWS\ServicePackFiles\i386\<br />
C:\WINDOWS\system32\dllcache\<br />
C:\WINDOWS\system32\<br />
C:\WINDOWS\<br />
</span><br />
You may get some messages popping up asking you if it&#8217;s okay to do this.  Don&#8217;t worry about it.  It&#8217;s fine.  Windows can be nervous, but don&#8217;t you get nervous.</p>
<p>For additional Info on replacement of Notepad go here: <br />
<a href="http://notepad-plus.sourceforge.net/uk/site.htm/">http://notepad-plus.sourceforge.net/uk/site.htm/</a></p>
<hr />
<p><strong> I have tons more tools to go.  Return later to see Part II. </Strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thetestingblog.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thetestingblog.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thetestingblog.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thetestingblog.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thetestingblog.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thetestingblog.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thetestingblog.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thetestingblog.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thetestingblog.com&amp;blog=8467555&amp;post=24&amp;subd=thetestingblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thetestingblog.com/2009/07/30/useful-non-testing-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/43a80f3d05753a9af40a3725839bf178?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aubrownds</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/cropper.jpg?w=300" medium="image">
			<media:title type="html">cropper</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/11.jpg" medium="image">
			<media:title type="html">1</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/2.jpg" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://thetestingblog.files.wordpress.com/2009/07/dolph-m61.jpg?w=150" medium="image">
			<media:title type="html">dolph-m61</media:title>
		</media:content>
	</item>
	</channel>
</rss>