<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>devXero&#039;s blog</title>
	<atom:link href="http://devxero.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://devxero.wordpress.com</link>
	<description>a blog about agile, development, and automation</description>
	<lastBuildDate>Tue, 03 Nov 2009 17:50:25 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='devxero.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/0ee5a6b6c7b8201b569b12eef51e7c4c?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>devXero&#039;s blog</title>
		<link>http://devxero.wordpress.com</link>
	</image>
			<item>
		<title>Interesting thread on hiring Agile Testers</title>
		<link>http://devxero.wordpress.com/2009/11/03/interesting-thread-on-hiring-agile-testers/</link>
		<comments>http://devxero.wordpress.com/2009/11/03/interesting-thread-on-hiring-agile-testers/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 17:46:02 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=220</guid>
		<description><![CDATA[Thought this was a thread worth following
http://tech.groups.yahoo.com/group/agile-testing/message/18026
As I stated in the thread, it is a tough decision to hire developers to fill Agile Tester spots.  Actually more to the point, it is tough to fill Agile Tester spots in general  You are really looking for someone with good technical skills but with a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=220&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Thought this was a thread worth following</p>
<p><a href="http://tech.groups.yahoo.com/group/agile-testing/message/18026">http://tech.groups.yahoo.com/group/agile-testing/message/18026</a></p>
<p>As I stated in the thread, it is a tough decision to hire developers to fill Agile Tester spots.  Actually more to the point, it is tough to fill Agile Tester spots in general  You are really looking for someone with good technical skills but with a true passion for testing.  When you look at hiring a developer to fill that spot you are going to be getting those technical skills but there are times you will find that the candidate in question does not have the true passion for testing.  If this is the case then it is a possibility that the job that they are asked to do will not be up to the needs of the team.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=220&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/11/03/interesting-thread-on-hiring-agile-testers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Ways to improve the reliability and efficiency of SWAT/UI tests (Part 4 – Safely Using InnerHTML)</title>
		<link>http://devxero.wordpress.com/2009/10/28/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-4-%e2%80%93-safely-using-innerhtml/</link>
		<comments>http://devxero.wordpress.com/2009/10/28/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-4-%e2%80%93-safely-using-innerhtml/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 01:57:44 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[UI Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=210</guid>
		<description><![CDATA[This will be the last of my posts on this specific topic for now, though I am sure many more posts will be made along the same lines in the not to distant future.  For this one I want to look at safely using InnerHTML.  Many people do not realize how vastly different browser can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=210&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This will be the last of my posts on this specific topic for now, though I am sure many more posts will be made along the same lines in the not to distant future.  For this one I want to look at safely using InnerHTML.  Many people do not realize how vastly different browser can treat HTML.  Specifically HTML created dynamically as part of a web 2.0 application.  Below you will find some generalized examples of html in 3 different browsers.</p>
<p><strong>–IE 7</strong></p>
<blockquote><p>&lt;option value=fl selected&gt;Florida&lt;/option&gt;</p></blockquote>
<p><span id="more-210"></span><strong>–IE 8</strong></p>
<blockquote><p>&lt;option selected value=fl&gt;Florida&lt;/option&gt;</p></blockquote>
<p><strong>-FireFox</strong></p>
<blockquote><p>&lt;option value=“fl” selected&gt;Florida&lt;/option&gt;</p></blockquote>
<p>Notice how the selected attribute moves around and that the value sometimes has quotes and sometimes does not.  These are all things to be expected when dealing with HTML elements. Unfortunately many times I see people write automation against one browsers specific interpretation of the HTML which can cause issues down the line.   So now the question is how do we avoid these issues and create expressions to best deal with them.  Below are three examples of different ways to write expressions that relate to the above HTML.  Each uses a different technique to best find the element.  Obviously these techniques can be combined for even better expressions.</p>
<p><strong>1. Use Parent Element </strong></p>
<blockquote><p>|parentElement.id=csState;value=fl;selected=true|OPTION|</p></blockquote>
<p>- Notice how by using parentElement we can identify the parent of the control and use that to create a stronger expression.  You can find more on parentElement here (<a href="http://ulti-swat.wikispaces.com/Expressions+Explained">http://ulti-swat.wikispaces.com/Expressions+Explained</a>).</p>
<p><strong>2. Use Regular Expressions </strong></p>
<blockquote><p>|innerHTML:Florida[\w\W]+Georgia[\w\W]+New Jersey|SELECT|</p></blockquote>
<p>- The above expression would be used to find the order of items in a select list.  Instead of using the entire innerHTML of the element as many people do, you can instead just use an expression such as this one to look for the pertinent data.</p>
<p><strong>3. Make good use of attributes </strong></p>
<blockquote><p>|value=fl;innerHTML=Florida;selected=false|OPTION|</p></blockquote>
<p>- Attributes are your friend.  Here we are using all of the available attributes to really get the best handle possible on the element.</p>
<p>Hopefully these examples will help you create a strong, more reliable SWAT test.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/210/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=210&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/28/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-4-%e2%80%93-safely-using-innerhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Internal Presentation on Reliabilty and Efficiency of UI tests</title>
		<link>http://devxero.wordpress.com/2009/10/28/internal-presentation-on-reliabilty-and-efficiency-of-ui-tests/</link>
		<comments>http://devxero.wordpress.com/2009/10/28/internal-presentation-on-reliabilty-and-efficiency-of-ui-tests/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 00:47:11 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[UX Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=202</guid>
		<description><![CDATA[I did a presentation internally at Ultimate Software on improving the Reliability and Efficiency of tests and I thought it would be worth posting on here as well.  I will also be making a few more posts to cover all the topics I outlined in the presentation.
Improving SWAT\UI Test Reliability and Efficiency
      [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=202&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I did a presentation internally at Ultimate Software on improving the Reliability and Efficiency of tests and I thought it would be worth posting on here as well.  I will also be making a few more posts to cover all the topics I outlined in the presentation.</p>
<p><a href="http://devxero.files.wordpress.com/2009/10/improving-swatui-test-reliability-and-efficiency.pdf">Improving SWAT\UI Test Reliability and Efficiency</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=202&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/28/internal-presentation-on-reliabilty-and-efficiency-of-ui-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>A shortfall of UI automation and a creative way to deal with it</title>
		<link>http://devxero.wordpress.com/2009/10/28/a-shortfall-of-ui-automation-and-a-creative-way-to-deal-with-it/</link>
		<comments>http://devxero.wordpress.com/2009/10/28/a-shortfall-of-ui-automation-and-a-creative-way-to-deal-with-it/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 22:36:06 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[UI Testing]]></category>
		<category><![CDATA[UX Testing]]></category>
		<category><![CDATA[Automated Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=199</guid>
		<description><![CDATA[One of my biggest flaws with automation in my eyes is that when you run most UI automation (excluding bitmap comparisons that are more trouble then they are worth) the UI can change but the test will not catch it.  This is actually a very common scenario and usually when people discuss solutions they go [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=199&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of my biggest flaws with automation in my eyes is that when you run most UI automation (excluding bitmap comparisons that are more trouble then they are worth) the UI can change but the test will not catch it.  This is actually a very common scenario and usually when people discuss solutions they go back to bitmap comparisons.  However I have heard (but not confirmed) that Google has a better way.</p>
<p>What Google has done is to run their UI automation on very public monitors.  Then when people are walking by, hopefully if they see a defect they will go let the responsible team know and it will be rectified.  I think this is an absolutely great idea and one I hope to implement some time in the near future.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=199&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/28/a-shortfall-of-ui-automation-and-a-creative-way-to-deal-with-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Automation is validation</title>
		<link>http://devxero.wordpress.com/2009/10/28/automation-is-validation/</link>
		<comments>http://devxero.wordpress.com/2009/10/28/automation-is-validation/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 22:25:28 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[UI Testing]]></category>
		<category><![CDATA[UX Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=196</guid>
		<description><![CDATA[At a presentation I did earlier this week one of my coworkers made the comment
Automation is for validation, testing requires hands, eyes, and a brain
I have heard similar comments before but I thought that this was worth repeating.  When you create and run automation, you are validating against what you already know.  The script (whether [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=196&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>At a presentation I did earlier this week one of my coworkers made the comment</p>
<blockquote><p>Automation is for validation, testing requires hands, eyes, and a brain</p></blockquote>
<p>I have heard similar comments before but I thought that this was worth repeating.  When you create and run automation, you are validating against what you already know.  The script (whether its above or below the UI) was based on some known state and values.  For the most part the automation can only tell you when something expected did NOT happen.  The majority of scripts will not tell you when something unexpected did happen.</p>
<p>For example if I have a login page that takes a user name and password.   When I fill in the user name and password, and press a button I log in.  Now if someone were to add an additional step to my login process, any automation I have would obviously catch that.  However if someone added something that did NOT affect login to the login page then most likely my scripts would NOT catch that.  These things could include changes to the UI, popups, new text, or possibly something more malignant.</p>
<p>This is where the basic difference between automation and testing come from.  When you test you not only are working with base data and expected results, but you have the ability to comprehend the unexpected. What extensive automation really does is allow testers more time to look into the unexplored areas of the system.  More time can be spent on exploratory testing since your regression suite is handling all of the expected tests and scenarios.  By spending more time doing this you are liable to find all of those edge case scenarios that your customers are guaranteed to find.</p>
<p>So in sum it all up, automation is a hugely important part of the development process, but to help identify that what is working hasn&#8217;t broke not to &#8220;test&#8221;. When it comes to testing, it takes someone (or maybe one day something) that can identify the unexpected and can appropriately identify what to do about it.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/196/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=196&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/28/automation-is-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Ways to improve the reliability and efficiency of SWAT/UI tests (Part 3 – The truth behing AssertElementDoesNotExist)</title>
		<link>http://devxero.wordpress.com/2009/10/07/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-3-%e2%80%93-the-truth-behing-assertelementdoesnotexist/</link>
		<comments>http://devxero.wordpress.com/2009/10/07/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-3-%e2%80%93-the-truth-behing-assertelementdoesnotexist/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 00:28:51 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[UI Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=190</guid>
		<description><![CDATA[Were now up to part 3, and I am really thinking about ditching the numbers, I think this list is going to get very long very&#8230;
But on to part 3 and this will be a short one.  AssertElementDoesNotExist was one of the first commands created for SWAT.  Unfortunately many people do not know some of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=190&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Were now up to part 3, and I am really thinking about ditching the numbers, I think this list is going to get very long very&#8230;</p>
<p>But on to part 3 and this will be a short one.  AssertElementDoesNotExist was one of the first commands created for SWAT.  Unfortunately many people do not know some of the dirty and dark secrets of this command.</p>
<p><span id="more-190"></span></p>
<p><strong>You dont always know what you are looking for&#8230;</strong></p>
<p>The most common mistake I see with this command is that people match it with a very complicated expression where many factors could make the command pass (which means the expression was NOT matched.)  In essence you get a false positive.</p>
<p>Example:</p>
<p><em>HTML</em></p>
<p style="padding-left:30px;"><code>&lt;a href="www.google.com" id="myLink"&gt;Google&lt;/a&gt;</code></p>
<p><em>SWAT</em></p>
<blockquote><p>|AssertElementDoesNotExist|Expression|id:myLink;href:google@|A|</p></blockquote>
<p>Notice that I made a mistake with the href.  However because of that, this command would actually pass.  Which is one of the dangers of this command.</p>
<p><strong>Its Slowwwwwwwwwwwwwwwwww</strong></p>
<p>As you may or may not know, in your config file for SWAT you can set the default timeouts of many of the commands.  In almost all cases, as soon as SWAT finds an element it moves on to the next command.  However in the case of AssertElementDoesNotExist, SWAT will keep on searching through the length of the timeout.  Because of this, using a large amount of AssertElementDoesNotExist commands can drastically alter the time it takes to run your test.</p>
<p>Example</p>
<blockquote><p>7 second timeout</p>
<p>x 10 uses of the command</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>70 second minimum test run</p></blockquote>
<p>So those are the dark secrets of AssertElementDoesNotExist.  What I try to tell people when it comes to this command, as with all commands, it should be thought about before using it.  I have seen many tests with 10 or 20 of these commands used in a row when it may have been possible to make do with less.  And in some cases, half of those commands were false to begin with.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=190&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/07/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-3-%e2%80%93-the-truth-behing-assertelementdoesnotexist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Ways to improve the reliability and efficiency of SWAT/UI tests (Part 2 – Reliably checking select boxes)</title>
		<link>http://devxero.wordpress.com/2009/10/06/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-2-%e2%80%93-reliably-checking-select-boxes/</link>
		<comments>http://devxero.wordpress.com/2009/10/06/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-2-%e2%80%93-reliably-checking-select-boxes/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 14:37:52 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[UI Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=184</guid>
		<description><![CDATA[This post is written more for a SWAT user since it has to do specifically with how SWAT users check the values of SELECT boxes.  However the ideas here could be applied to other UI testing tools as well.
For this post we will be using the example Select Box below:

&#60;SELECT id=&#34;mySelectBox&#34;&#62;
  &#60;OPTION value=&#34;A&#34;&#62;Alpha&#62;&#60;/OPTION&#62;
  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=184&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post is written more for a SWAT user since it has to do specifically with how SWAT users check the values of SELECT boxes.  However the ideas here could be applied to other UI testing tools as well.</p>
<p>For this post we will be using the example Select Box below:</p>
<pre class="brush: xml;">
&lt;SELECT id=&quot;mySelectBox&quot;&gt;
  &lt;OPTION value=&quot;A&quot;&gt;Alpha&gt;&lt;/OPTION&gt;
  &lt;OPTION value=&quot;b&quot;&gt;Beta&lt;/OPTION&gt;
&lt;/SELECT&gt;
</pre>
<h2><span id="more-184"></span>The Problem</h2>
<p>What we have here is a select box with 2 values and B selected.  Typically we have seen the test for checking the selected value to be done like this:</p>
<blockquote><p>|AssertElementExists|Expression|id=mySelectBox;innerHTML:OPTION value=&#8221;B&#8221; selected|SELECT|</p></blockquote>
<p>Unfortunately each browser handles select boxes a little bit differently.  For instance IE7 and IE8 reverse the order of the value and selected</p>
<p>IE7 Example:</p>
<blockquote><p>OPTION value=&#8221;B&#8221; selected</p></blockquote>
<p>IE8 Example:</p>
<blockquote><p>OPTION selected value=&#8221;B&#8221;</p></blockquote>
<p>Firefox also treats this differently as well.  Many times it removes\adds quotation marks in different places.</p>
<h2>The Solution</h2>
<p>There are 2 different ways to solve this.  The first way is slightly simpler but we have found that in some cases it can lend itself to mistakes.  The 2nd is the much stronger way, and also allows for multi select boxes.</p>
<p>Solution 1</p>
<blockquote><p>|AssertElementExists|Expression|id=mySelectBox;value=B|SELECT|</p></blockquote>
<p>Solution 2</p>
<blockquote><p>|AssertElementExists|Expression|parentElement.id=mySelectBox;value=B;selected=true|OPTION|</p></blockquote>
<p>Notice that in solution 2 we are no longer referencing the Select box.  Instead we are referencing the Option itself.  What we are in essence saying is that we want SWAT to find an Option whose parent is the select box (located by parentElement.id), whose value is B and is selected.  By doing it this way you are drilling down to the specific option you want and avoiding browser compatibility issues.  You can also use this method for just checking options inside a select box.  The example below checks that both values are in the select box:</p>
<blockquote><p>|AssertElementExists|Expression|parentElement.id=mySelectBox;value=B;innerHTML=Beta;selected=true|OPTION|</p>
<p>|AssertElementExists|Expression|parentElement.id=mySelectBox;value=A;innerHTML=Alpha;selected=false|OPTION|</p></blockquote>
<p>Hopefully this helps clear up some of the confusion with Select boxes.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=184&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/06/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-2-%e2%80%93-reliably-checking-select-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Ways to improve the reliability and efficiency of SWAT/UI tests (Part 1 &#8211; Sleeps are evil)</title>
		<link>http://devxero.wordpress.com/2009/10/04/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-1-sleeps-are-evil/</link>
		<comments>http://devxero.wordpress.com/2009/10/04/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-1-sleeps-are-evil/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 23:43:01 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Fitnesse]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[UI Testing]]></category>
		<category><![CDATA[UX Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=173</guid>
		<description><![CDATA[This is the start of a series of posts I am going to be writing on how to improve both the reliability and efficiency of SWAT tests.  Any ideas I present here can be applied to any UI testing tool (SWAT, Selenium, WatiN, QTP, etc&#8230;).  The most important concept to take away from these posts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=173&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is the start of a series of posts I am going to be writing on how to improve both the reliability and efficiency of SWAT tests.  Any ideas I present here can be applied to any UI testing tool (SWAT, Selenium, WatiN, QTP, etc&#8230;).  The most important concept to take away from these posts will be that tests can be made both reliable and efficient with just a few simple techniques.</p>
<p>For the first post we will be looking at the Sleep command (<a href="http://ulti-swat.wikispaces.com/SwatCommandsSleep">http://ulti-swat.wikispaces.com/SwatCommandsSleep</a>).  Almost all UI testing frameworks contain some version of this command.  This command is also sometimes known as a &#8220;Wait&#8221; Command.</p>
<p>Lets start out with why this command is bad:</p>
<ul>
<li>The command will slow down a test suite</li>
<li>No matter what, the time you set for the sleep is always too slow or to long.  Either it will be too long, and your test will just sit there waiting for nothing, or it will be too short and the test will move on before it should.</li>
</ul>
<p>Assuming you are still reading this, and agree that sleeps are bad, you are probably asking what you can do to avoid sleep commands and make your test both stronger and more reliable.</p>
<p><span id="more-173"></span>In my experience I have found there are 3 typical reasons why a sleep command is most commonly used (there are others but I feel at least for the moment that these are edge case scenarios):</p>
<ul>
<li>An asynchronous event is happening on the page that takes longer then SWAT&#8217;s default timeout</li>
<li>An event on the page is waiting for a SQL event (such as a save to finish)</li>
<li>A browser takes longer to load (and set its title bar) then SWATS default timeout</li>
</ul>
<p>With SWAT, 3 commands are provided to deal with these situations</p>
<ul>
<li><a href="http://ulti-swat.wikispaces.com/AssertElementExistsWithTimeout">AssertElementExistsWithTimeout</a></li>
<li><a href="http://ulti-swat.wikispaces.com/AssertDBRecordExistsWithTimeout">AssertDBRecordExistsWithTimeout</a></li>
<li><a href="http://ulti-swat.wikispaces.com/AssertBrowserExists">AssertBrowserExists</a></li>
</ul>
<p>Here is some more on these commands</p>
<p><strong>AssertElementExistsWithTimeout</strong> is meant to allow users to avoid sleeps when they are doing a check on the page.  Many times either a page is a slow loading page, or an asynchronous action is happening on the page, and testers will drop a sleep on the page to attempt to determine when the action has completed.  The standard AssertElementExists command has an adjustable timeout (configured in the config file) but is usually set for just 5-10 seconds.  Because of this people often drop a sleep command to wait for the page.  Instead a tester can use the AssertElementExistsWithTimeout command and set a timeout in milliseconds to tell SWAT to keep polling and checking if this element exists yet.  No matter how long you set the timeout for, as soon as the element is found, SWAT move on.  In my own experience I usually set the timeout from 60000 (1 minute) to 360000 (6 minutes) with the comfort and knowledge that as soon as the criteria is met, the test will move on, but not before it is ready.</p>
<p><strong>AssertDBRecordExistsWithTimeout</strong> is meant for any time the page needs to wait for a DB event to finish.  The timeout is again in milliseconds.  I typically use this any time I am waiting for a SQL transaction such as a save to finish.</p>
<p><strong>AssertBrowserExists </strong>is meant for times when a popup takes so long to load, that the default timeout for AttachToWindow times out.  This will allow SWAT to keep on waiting for a longer time.</p>
<p>In the next post I will examine some other best practices for increasing test efficiency and reliability.</p>
<p>UPDATE: Got some great feedback already.  Sleeps do have their uses.  However the important part to take away from this post is that they are easily over used or used incorrectly.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=173&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/04/ways-to-improve-the-reliability-and-efficiency-of-swatui-tests-part-1-sleeps-are-evil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML Part 2 (Containers)</title>
		<link>http://devxero.wordpress.com/2009/10/04/html-part-2-containers/</link>
		<comments>http://devxero.wordpress.com/2009/10/04/html-part-2-containers/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 21:58:48 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[UI Testing]]></category>
		<category><![CDATA[UX Testing]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=167</guid>
		<description><![CDATA[For part 2 we are going to look at a few different container types and tables.
First some container types you may experience:

DIV
SPAN
P

Each of these are common containers you may come across.  They each have some common similar attributes:

InnerHTML &#8211; This is the area between the open and close tag.

Example: &#60;DIV&#62;This is the innerHTML &#60;/div&#62;


InnerHTML is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=167&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For part 2 we are going to look at a few different container types and tables.</p>
<p>First some container types you may experience:</p>
<ul>
<li>DIV</li>
<li>SPAN</li>
<li>P</li>
</ul>
<p>Each of these are common containers you may come across.  They each have some common similar attributes:</p>
<ul>
<li>InnerHTML &#8211; This is the area between the open and close tag.
<ul>
<li>Example: &lt;DIV&gt;This is the innerHTML &lt;/div&gt;</li>
</ul>
</li>
<li>InnerHTML is ALL of the HTML between the tags, including pieces of other tags
<ul>
<li>Example:&lt;DIV&gt;&lt;SPAN&gt;This is some text&lt;/SPAN&gt;&lt;/DIV&gt;
<ul>
<li>The innerHTML of the div is &#8220;&lt;SPAN&gt;This is some text&lt;/SPAN&gt;&#8221;</li>
<li>The innerHTML of the span is &#8220;This is some text&#8221;</li>
</ul>
</li>
</ul>
</li>
<li>Id</li>
<li>Name</li>
<li>Class</li>
</ul>
<p><span id="more-167"></span></p>
<p>What is important about any container is that it usually contains additional tags.  Below is an example you may come across:</p>
<p><code> </code></p>
<p><code> </code></p>
<p>&nbsp;</p>
<p><code></p>
<div>&lt;div&gt;</div>
<div style="padding-left:30px;">&lt;span&gt;This span contains some text&lt;/span&gt;</div>
<div style="padding-left:30px;">&lt;div&gt;</div>
<div style="padding-left:60px;">This div contains some text and</div>
<div style="padding-left:60px;">&lt;a&gt;a link &lt;/a&gt;</div>
<div style="padding-left:30px;">&lt;/div&gt;</div>
<div>&lt;/div&gt;</div>
<p></code></p>
<p>&nbsp;</p>
<p>Containers are prevalent through any application but with CSS (style sheets) make them even more important.</p>
<p>Another type of container is a Header container.  There are a couple you may come across but the most common are:</p>
<ul>
<li>H1</li>
<li>H2</li>
<li>H3</li>
</ul>
<p>These are commonly used to create common types of headers on a page.  When it comes to attributes they are treated the same as the containers we looked at above.</p>
<p>The next type of HTML we will look at are tables.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=167&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/10/04/html-part-2-containers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
		<item>
		<title>Test steps vs Test execution time</title>
		<link>http://devxero.wordpress.com/2009/09/30/test-steps-vs-test-execution-time/</link>
		<comments>http://devxero.wordpress.com/2009/09/30/test-steps-vs-test-execution-time/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 21:00:30 +0000</pubDate>
		<dc:creator>Mike Longin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[SWAT]]></category>

		<guid isPermaLink="false">http://devxero.wordpress.com/?p=159</guid>
		<description><![CDATA[This has been bothering me for a while and wanted to bring it up.  When writing tests I have already mentioned the concept of 200 test steps.  By limiting yourself to only 200 steps, you will find tests easier to write, maintain, and run.  However that really does not take into account test execution time. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=159&subd=devxero&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This has been bothering me for a while and wanted to bring it up.  When writing tests I have already mentioned the concept of 200 test steps.  By limiting yourself to only 200 steps, you will find tests easier to write, maintain, and run.  However that really does not take into account test execution time.  I am sure we could easily find an example of a test that is only 10 steps in length but that takes 20 minutes.  I believe optimum length is less than 10 minutes, but preferably 5.</p>
<p>I really do not have a reason for that time, other than gut feeling but the math seems to work in my favor.  If a test takes 5 minutes to run, and 5 minutes to fix a bug.  It means at minimum you are going to need 15 minutes to fix any bug (5 to verify it, 5 to fix, and 5 to verify the fix.)  Once we start getting over that 15 minute threshold I believe we are really setting ourselves up for failure.</p>
<p>UPDATE:   So just spent over an hour working on a test, starting to think that 5 minutes may even be too long&#8230;</p>
<p>Does anyone else have tips or tricks, or experience with this?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devxero.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devxero.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/devxero.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/devxero.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/devxero.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/devxero.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/devxero.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/devxero.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/devxero.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/devxero.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devxero.wordpress.com&blog=4418362&post=159&subd=devxero&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://devxero.wordpress.com/2009/09/30/test-steps-vs-test-execution-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92e4797ee2c3c0d7a367dc13c12e70c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Mike Longin</media:title>
		</media:content>
	</item>
	</channel>
</rss>