<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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/"
	>

<channel>
	<title>Jalian Systems</title>
	<link>http://www.jaliansystems.com</link>
	<description>Trust, Simplicity and Courage</description>
	<pubDate>Thu, 14 Jun 2007 13:21:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>Parallels and Think : Great Combination</title>
		<link>http://www.jaliansystems.com/parallels-and-think-great-combination.html</link>
		<comments>http://www.jaliansystems.com/parallels-and-think-great-combination.html#comments</comments>
		<pubDate>Thu, 14 Jun 2007 13:21:55 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/parallels-and-think-great-combination.html</guid>
		<description><![CDATA[I am using Parallels for some time now for running windows under an iMac. Mostly I use it full screen mode. Whenever we leave fullscreen and get back to OSX, Parallels resizes the desktop. The resulting screen adjustment is really ugly.

Enter Think. Think is a small and beautiful application that stretches a blank (or a [...]]]></description>
			<content:encoded><![CDATA[<p>I am using <a href="http://www.parallels.com" title="Parallels" class="external">Parallels</a> for some time now for running windows under an iMac. Mostly I use it full screen mode. Whenever we leave fullscreen and get back to OSX, Parallels resizes the desktop. The resulting screen adjustment is really ugly.</p>

<p>Enter <a href="http://www.freeverse.com/think/" title="Think" class="external">Think</a>. Think is a small and beautiful application that stretches a blank (or a selected color) screen below your active application. In effect, the current application is highlighted. It comes along with a semi-transparent control panel. Now, the control panel is available when Parallels is running in the full screen mode. Switching to a Mac application? Use the control panel and select the running application.</p>

<p>If only Think supports using a wallpaper now.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/parallels-and-think-great-combination.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>A case for long stories in XP projects</title>
		<link>http://www.jaliansystems.com/a-case-for-long-stories-in-xp-projects.html</link>
		<comments>http://www.jaliansystems.com/a-case-for-long-stories-in-xp-projects.html#comments</comments>
		<pubDate>Wed, 13 Jun 2007 07:56:25 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/a-case-for-long-stories-in-xp-projects.html</guid>
		<description><![CDATA[I lurk around the ExtremeProgramming group with an occasional posting or two. Recently there was this thread where there is some discussion about the length of a story. Most people seems to lean towards shorter stories of 1-3 days duration.

The initial wisdom from the XPers seems to point towards longer stories. Both the wiki as [...]]]></description>
			<content:encoded><![CDATA[<p>I lurk around the <a href="http://tech.groups.yahoo.com/group/extremeprogramming/" title="ExtremeProgramming group" class="external">ExtremeProgramming group</a> with an occasional posting or two. Recently there was <a href="http://tech.groups.yahoo.com/group/extremeprogramming/message/129996" title="this thread" class="external">this thread</a> where there is some discussion about the length of a story. Most people seems to lean towards shorter stories of 1-3 days duration.</p>

<p>The initial wisdom from the XPers seems to point towards longer stories. Both the <a href="http://c2.com/cgi/wiki?UserStory" title="wiki" class="external">wiki</a> as well as XPE refers to stories of 1-5 weeks in duration. Even the initial discussions on the XP group favor longer stories. But over a time there was a general move towards shorter one week iterations (XPE2 calls them <strong>Weekly Cycle</strong>) and a move towards shorter stories.</p>

<p>Contrary to the current trend, longer stories provide better value to an XP project. As a work unit they are easier to handle, buck the half-cone syndrome of cone of uncertainty and make better use of law of averages. Longer stories also have tendency to excite the customer.</p>

<h2>Longer stories = Less <strong>upfront</strong> work to the customer</h2>

<p>This must be obvious. The shorter a story the more work is for the customer. They need to write down more story cards, they need to think of finer details about the application and also handle more cards per release and iteration for prioritization.</p>

<h2>Longer stories = Less upfront analysis</h2>

<p>One of the XP books (I don&#8217;t remember which one - though I think it is <strong>XP installed</strong>) asks the team to practice tearing the cards. That is one of the best advice I have seen. It is really tough to backtrack on something that you have spoken let alone written. But, this is what the teams are asking the customer to do by requesting for shorter stories. Like the design evolves, the application also should evolve. A longer story when discussed during an iteration provides the customers a chance to see the application developed till now and analyze the requirements in the light of what is existing.</p>

<h2>Half Cone syndrome of Cone of Uncertainty</h2>

<p>A recent <a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/05/23/update-on-the-cone-of-uncertainty.aspx" title="post" class="external">post</a> in <a href="http://blogs.construx.com/blogs/stevemcc/default.aspx" title="Steve McConnel&#8217;s blog" class="external">Steve McConnel&#8217;s blog</a> is very illuminating. It seems to be the cone of uncertainty for estimates tends towards underestimation in agile projects. <strong>I did not read the original article, so I might be totally wrong in the conclusions.</strong></p>

<p>Whatever it may be, my personal experience is that shorter work units are easier to estimate, the estimates are more accurate - but I tend to underestimate the work. You can also do an experiment. Take few story cards and estimate them. Then split the cards into smaller tasks and re-estimate them. In most cases you will find that when split to tasks the combined estimate will be lesser than the story card estimate.</p>

<p>So, by using shorter stories we tend to more create more accurate estimates and at the same time we increase the probability of underestimation. Using longer stories mitigates this risk by letting law of averages work for the team.</p>

<h2>Longer stories = More perceived value to the customer</h2>

<p>Frankly speaking, I want my customer to be excited when a story is completed. A 1-3 day story can&#8217;t excite a customer as much as a 1-3 week story. Where as shorter stories act as a progress report, longer stories provide the extra zing that comes when a customer can accomplish something with the software.</p>

<h2>Excuses for using short stories</h2>

<p>I enumerate some of the (valid and not so valid) reasons for using short stories.</p>

<h3>Easy to estimate</h3>

<p>If the team uses yesterday&#8217;s weather, estimating a long story is as easy(or tough) as estimating a short story.</p>

<h3>Concrete estimates</h3>

<p>Estimates are never concrete. The only way we can create concrete estimates to create them post hoc - that is create the estimates after the work is done <img src='http://www.jaliansystems.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>

<p>That said, having larger stories does not mean that the estimates are not concrete. Spikes, yesterday&#8217;s weather and the power of our minds to use analogies and metaphors allows us to create estimates that are as accurate taken together as when we use shorter stories.</p>

<h3>Shorter iterations</h3>

<p>This will be a fodder for another post <img src='http://www.jaliansystems.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . That said, if the team size is big enough longer stories are still possible with short one-week iterations.</p>

<h3>Small teams size</h3>

<p>This is one valid reason to avoid stories and go ahead with tasks. My experience is only with teams of medium size and XP4One. I suspect larger stories (for that matter stories them selves) can be avoided for teams that are very small (say 1-4 in size). Any larger XP team can benefit from longer stories.</p>

<p>If you want to discuss this post, I suggest to use <a href="http://tech.groups.yahoo.com/group/extremeprogramming/" title="ExtremeProgramming group" class="external">ExtremeProgramming group</a>. The blog comments are moderated (though I use akismet I find inappropriate comments once in a while) - and they may appear after some time.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/a-case-for-long-stories-in-xp-projects.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>DTSTTCPW: The Missing Context</title>
		<link>http://www.jaliansystems.com/dtsttcpw-the-missing-context.html</link>
		<comments>http://www.jaliansystems.com/dtsttcpw-the-missing-context.html#comments</comments>
		<pubDate>Fri, 01 Jun 2007 07:08:41 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/dtsttcpw-the-missing-context.html</guid>
		<description><![CDATA[The whole of XP design strategy depends on &#8216;Do the simplest thing that could possibly work&#8217;. It has become a command for XP teams. The c2.com wiki page on DTSTTCPW starts with an excerpt from an interview with WC. The worst part of this excerpt is that it ignores the context in which the question [...]]]></description>
			<content:encoded><![CDATA[<p>The whole of XP design strategy depends on &#8216;Do the simplest thing that could possibly work&#8217;. It has become a command for XP teams. The <a href="http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html" title="c2.com wiki page" class="external">c2.com wiki page</a> on DTSTTCPW starts with an excerpt from an interview with WC. The worst part of this excerpt is that it ignores the context in which the question is asked.</p>

<p>According the interview:</p>

<blockquote>
  </blockquote><blockquote>
    <p>And sometimes the programming was almost effortless, as if Smalltalk had been made to write that program. It was amazing. But other times we&#8217;d be programming away, and we&#8217;d say, &#8220;Now, wait a second, what are we working on here?&#8221; We&#8217;d just get stuck. And if we were stuck more than a minute, I&#8217;d stop and say, &#8220;Kent, what&#8217;s the simplest thing that could possibly work?&#8221;</p>
  </blockquote>


<p>Did you find how it is different from the XP gospel? Here the part is highlighted:</p>

<blockquote>
  </blockquote><blockquote>
    <p><strong>if we were stuck more than a minute</strong></p>
  </blockquote>


<p>So what WC was saying is that do not stop working because you did not find the best design. Go ahead with whatever simple solution you can find at this time. The act of writing code and concretizing the thoughts will stop us from blocking the progress.</p>

<p>It is worth while to hear these things <a href="http://www.artima.com/intv/simplest.html" title="straight from the horse&#8217;s mouth" class="external">straight from the horse&#8217;s mouth</a>.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/dtsttcpw-the-missing-context.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Smitten with Mac</title>
		<link>http://www.jaliansystems.com/smitten-with-mac.html</link>
		<comments>http://www.jaliansystems.com/smitten-with-mac.html#comments</comments>
		<pubDate>Wed, 15 Nov 2006 09:41:56 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/smitten-with-mac.html</guid>
		<description><![CDATA[Few months back I bought a MacMini just to play around with. Initial periods are somewhat irritating - remembering to press command instead of control etc. But I stuck with it. Recently, I realized that I am spending more time on the Mac than either Linux or Windows. Eclipse for Mac is decent (though it [...]]]></description>
			<content:encoded><![CDATA[<p>Few months back I bought a MacMini just to play around with. Initial periods are somewhat irritating - remembering to press command instead of control etc. But I stuck with it. Recently, I realized that I am spending more time on the Mac than either Linux or Windows. Eclipse for Mac is decent (though it crashes once in a while) and I am using it for <a href="http://www.marathontesting.com" title="Marathon" class="external">Marathon</a> development. In the end, I decided to go for a iMac. My iMac just got delivered and it is great. With parallels I am able to run both Linux/Windows on this and the VM is pretty fast.</p>

<h2>Why Mac?</h2>

<ol>
<li>It is smooth and works out of box. And of-course it looks great.</li>
<li>With parallels, I am able to test out Marathon on Linux/Windows and Mac from the same box. No other box can give me the ability to test it under Mac.</li>
<li>Quicksilver - I took sometime getting used to it, but it is a great time saver. Since eclipse also uses Ctrl-space as a short cut, I use Ctrl-Option-Space to bring up QS.</li>
<li>Under the hood, OSX is BSD. So most of the Unix goodies are available.</li>
</ol>

<p>For those of my friends who say (with some justification) Macs are costly, I say just try it. Eye candy makes a lot of difference (though I find myself playing around once in a while instead of working <img src='http://www.jaliansystems.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/smitten-with-mac.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Marathon Java GUI Testing - Status update for 1.0</title>
		<link>http://www.jaliansystems.com/marathon-java-gui-testing-status-update-for-10.html</link>
		<comments>http://www.jaliansystems.com/marathon-java-gui-testing-status-update-for-10.html#comments</comments>
		<pubDate>Mon, 25 Sep 2006 06:35:36 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Marathon</category>
	<category>Java GUI Testing</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/marathon-java-gui-testing-status-update-for-10.html</guid>
		<description><![CDATA[I am waiting for a new version of VLDocking to be released - and hence some delay in releasing next version of Marathon. Meanwhile, I worked on few more features (some small and some big) for easing recording of the automated tests.


When recording a test case marathon now minimizes the main window and shows a [...]]]></description>
			<content:encoded><![CDATA[<p>I am waiting for a new version of VLDocking to be released - and hence some delay in releasing next version of Marathon. Meanwhile, I worked on few more features (some small and some big) for easing recording of the automated tests.</p>

<ol>
<li>When recording a test case marathon now minimizes the main window and shows a small controller window. This should reduce the clutter of the screen to a large extent. The main window is restored when either you close the controller window or stop recording the test case. <a href="http://www.jaliansystems.com/images/screenshots/26092006/commandcenter.png" rel="lightbox[marathon]" title="Marathon Control Center"><img src="http://www.jaliansystems.com/images/screenshots/26092006/commandcenter.gif" width="300" alt="Marathon Control Center" /></a></li>
<li>A new preferences dialog allows you to change options like hot key and menu click for popping up the Marathon assertion menu. You can even change the font used for the editor - that is the test case files that are shown. <a href="http://www.jaliansystems.com/images/screenshots/26092006/preferences.png" rel="lightbox[marathon]" title="Marathon Control Center"><img src="http://www.jaliansystems.com/images/screenshots/26092006/preferences.gif" width="300" alt="Marathon Preferences Dialog" /></a></li>
<li>Along with #2 comes the ability of using Marathon for recording test cases even when your application pushes its own event queue. If the application under test makes use of event queue, just use the keyboard short cut for popping up the Marathon assertion menu. The mouse click does not work.</li>
<li>Our Java testing tool&#8217;s UI has been spruced up. We are using JGoodies looks and VLSolution&#8217;s vldocking framework for most of the UI enhancements. Now you have the ability to move the panels like test tree panel or Navigator panel (that shows the files) whereever you want in the desktop. Marathon even remembers the preferences and restores the same state when you restart it. <a href="http://www.jaliansystems.com/images/screenshots/26092006/docking.png" rel="lightbox[marathon]" title="Docking Framework in Action"><img src="http://www.jaliansystems.com/images/screenshots/26092006/docking.gif" width="300" alt="Marathon Docking Framework" /></a></li>
<li>Project directory structure for the testing projects in Marathon is changed. Now all paths (like classpath etc.) are saved relative to project directory. The MPF file is no more needed and the project settings are saved in the Project directory in a file named &#8216;.project&#8217;. Now, the project settings can also be modified from within Marathon. The Edit menu sports an option called &#8216;Project settings&#8230;&#8217; (what else?) using which you can modify the settings for the current project. The CaptureScripts directory is renamed to Modules - this reflects the ability of Marathon to use any jython functions and not just captured scripts as functions.</li>
<li>A new Project Settings option &#8216;Ignore Components&#8217; has been added to the test project. You can use this to inform Marathon that it need to ignore clicks on the components. By default when a new project is created this is populated with JScrollBar, JToolBar etc. You can update it if you find Marathon recording extraneous clicks while recording your test cases. <a href="http://www.jaliansystems.com/images/screenshots/26092006/ignorecomponents.png" rel="lightbox[marathon]" title="Marathon Ignore Components settings"><img src="http://www.jaliansystems.com/images/screenshots/26092006/ignorecomponents.gif" width="300" alt="Marathon Ignore Components settings" /></a></li>
<li>A new scripting element &#8217;select_menu&#8217; makes its appearance in Marathon now. This is used to record menu activations either using keyboard or mouse.</li>
<li>Recording on collection components like JTree, JTable improved. Now Marathon records multiple selections on these components - so you can stop asking me to record CTRL and SHIFT keys while recording <img src='http://www.jaliansystems.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Two more controls also make debut in this release. JSlider and JProgress bar. Those applications that make use of these two controls need not have work-arounds in the test cases.</li>
<li>Finally, the keystroke recording for test cases is here. Marathon not only records the keystrokes but it tries to be intelligent about not recording keystrokes that do not make sense. If a keystroke is typed that is a menu accelerator key, marathon records it differently.</li>
</ol>

<p> <a href="http://www.jaliansystems.com/images/screenshots/26092006/menurecording.png" rel="lightbox[marathon]" title="Marathon Control Center"><img src="http://www.jaliansystems.com/images/screenshots/26092006/menurecording.gif" width="300" alt="Marathon recording menus" /></a></p>

<p>There are lot more changes comming in next version - which I am toying with the idea of calling Version 1.0. The full list of changes will ofcourse be available in the ChangeLog.</p>

<p>There are few more things I am working on currently. Most important of those are:</p>

<ol>
<li>Mouse clicks record with position and modifiers. These will be recorded only when Marathon does not support a particular component.</li>
<li>Drag and Drop. John submitted a patch for this. I am working on making it generic enough to work with all Marathon components.</li>
<li>A new naming strategy that gives more importance on what is shown on the screen like button texts and labels, rather than components name given by setName().</li>
</ol>

<p>Comments?</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/marathon-java-gui-testing-status-update-for-10.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>GUI testing without a display</title>
		<link>http://www.jaliansystems.com/gui-testing-without-a-display.html</link>
		<comments>http://www.jaliansystems.com/gui-testing-without-a-display.html#comments</comments>
		<pubDate>Thu, 31 Aug 2006 10:06:13 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Marathon</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/gui-testing-without-a-display.html</guid>
		<description><![CDATA[
  Updated. Thanks to Arun for giving me a pointer to pstools.
  
  This will be part of Marathon User Guide when it comes out. I am writing these snippets so that you can benefit from them now.


Now that you wrote a lot tests using marathon how do you run them? The [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
  <p>Updated. Thanks to Arun for giving me a pointer to pstools.</p>
  
  <p>This will be part of Marathon User Guide when it comes out. I am writing these snippets so that you can benefit from them now.</p>
</blockquote>

<p>Now that you wrote a lot tests using <a href="http://marathonman.sourceforge.net" title="marathon" class="external">marathon</a> how do you run them? The problem with GUI testing is that your desktop is tied up for the duration of the tests. The monitor blinks like a tube-light with a starter problem with Windows popping up all over with crazy titles - &#8216;testStartAndStopRecordingWithSetupAndTearDown&#8217; or &#8216;testDeleteFilesWithSomeFailures&#8217;. Even if you can live with this - all these popping up windows will be stealing your application&#8217;s focus (beside stealing yours) and some of your keystrokes and mouse clicks will go there. In the end you end up not knowing whether a test case failed because of you using the keyboard or a bug in the application under test.</p>

<h2>Using java.awt.headless</h2>

<p>Java since 1.4.2 supports a headless mode that is half-baked and not useful for the purposes we are talking about. Googling for &#8216;java headless&#8217; turns up <a href="http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html" title="this page" class="external">this page</a>, so I am pointing this out. Java support for headless is really for applications that need to run without a display and keyboard. Anyhow if you do not need a display then the whole of this article does not make sense.</p>

<h2>Running headless on Linux</h2>

<p>An elegant solution I found to run GUI test suites on Linux is to use Xvbf - a X server that simulates a display, mouse and keyboard. On ubuntu, the platform of choice for me, the Xvfb package comes with a script xvfb-run. Executing an application under Xvfb is just typing:</p>

<blockquote>
  <p><code>xvfb-run marathon &lt;path-to-your-mpf&gt;</code></p>
</blockquote>

<p>The standard error and output will be on your terminal, so you can see the progress of your test case execution and any errors thrown up by the test run.</p>

<h2>Running headless on Windows</h2>

<h3>Using psexec</h3>

<blockquote>
  <p>psexec is a small utility from <a href="http://www.sysinternals.com" title="Sysinternals" class="external">Sysinternals</a> from the pstools package. You can <a href="http://www.sysinternals.com/Utilities/PsTools.html" title="Download it here" class="external">Download it here</a>.</p>
</blockquote>

<p>psexec allows you to run applications on remote machines. We will use it to run marathon headless on Windows. Download the pstools archive and install on the machine. Add the installed directory to the path. There are two ways you can execute Marathon - with a console and without a console.</p>

<p>For using it with a console (so that you can see the progress):</p>

<blockquote>
  <p><code>psexec -s cmd /c marathon -batch &lt;path-to-your-mpf&gt;</code></p>
</blockquote>

<p>If you are not interested in a console:</p>

<blockquote>
  <p><code>psexec -s -d cmd /c marathon -batch &lt;path-to-your-mpf&gt;</code></p>
</blockquote>

<p>Note that <code>-s</code> uses the system account (i.e the administrator) to execute the command. I found it easier to create a batch file that runs Marathon with all options and execute the batch file using psexec:</p>

<blockquote>
  <p><code>psexec -s cmd /c &lt;path-to-batch-file&gt;</code></p>
</blockquote>

<h3>Using telnet</h3>

<p>You can run the tests headless on Windows using the telnet service that is available on Windows XP Professional. You can enable telnet service from Control Panel -&gt; Services. Once you enable the service log-in using the command:</p>

<blockquote>
  <p><code>telnet localhost</code></p>
</blockquote>

<p>Give your user name and password. You will land up at C:&gt; prompt. Run your command:</p>

<blockquote>
  <p><code>marathon -batch &lt;path-to-your-mpf&gt;</code></p>
</blockquote>

<p>That is it. Your display, keyboard and mouse belong to you, no annoying pop-up windows to disturb you and Marathon chugs along running the application tests. You can use <code>-text, -html</code> or <code>-xml</code> arguments along with <code>-batch</code> so that the test results are captured in a report.</p>

<blockquote>
  <p><strong>Note:</strong>
  Running a telnet server is insecure. Modify your windows firewall settings to disable incoming connections. Default is to disable incoming  connections from Internet - it should be OK.</p>
  
  <p><strong>Note:</strong>
  It will be possible to automate the log-in part provided we have a telnet client that can take input from a file and send the commands to 
  the server. I don&#8217;t know of any. Drop me a line if you know such a client for Windows.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/gui-testing-without-a-display.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Marathon GUI Test Tool - Status</title>
		<link>http://www.jaliansystems.com/marathon-gui-test-tool-status.html</link>
		<comments>http://www.jaliansystems.com/marathon-gui-test-tool-status.html#comments</comments>
		<pubDate>Tue, 22 Aug 2006 06:36:33 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Marathon</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/2006/08/22/marathon-gui-test-tool-status/</guid>
		<description><![CDATA[I am writing this post so that it can be a reminder to myself as well as giving information to all of you waiting for a new release of Marathon. Since beginning of August I am full time working for my own company, so I am able to put in lot more effort in the [...]]]></description>
			<content:encoded><![CDATA[<p>I am writing this post so that it can be a reminder to myself as well as giving information to all of you waiting for a new release of <a href="http://sourceforge.net/projects/marathonman" title="Marathon" class="external">Marathon</a>. Since beginning of August I am full time working for my own company, so I am able to put in lot more effort in the development of Marathon. So what is going to be the release plan? The following are the tentative release dates for new versions of Marathon:</p>

<ol>
<li><del>Version 0.91 - August 15th</del></li>
<li>Version 0.92 - August 28th</li>
<li>Version 0.93 - September 4th</li>
<li>Version 1.0beta - September 11th</li>
<li>Version 1.0 - September 18th</li>
</ol>

<h2>Version 0.91</h2>

<p>The following features are added to Version 0.91:</p>

<ol>
<li><p>Tabbed editor</p>

<p>Now you can open multple testscripts/capturescripts and fixtures in the editor multiple tabs. Consider the current functionality as rudimentary. Some more enhancements are planned for 0.92. I faced a funny problem while developing this bit. Somehow, when we put up JEditTextArea components into a tabbed pane, the content of all the tabbed panes with JEditTextArea becomes the same. It turns out that JEditTextArea&#8217;s (from <a href="http://jedit-syntax.sourceforge.net" title="jedit-syntax" class="external">jedit-syntax</a> package) uses a static TextAreaDefault object if default constructor is used. And the TextAreaDefaults has a document also!!</p></li>
<li><p>Docking</p>

<p>The result window and console are docked to the bottom pane. You can switch between the two. The JUnit panel is docked to the Navigator window. You can open it by clicking on the JUnit button.</p></li>
<li><p>Capturing output from the Application under test</p>

<p>The output (stderr/stdout) from the application as well as the test scripts is captured and displayed in the console window. The output from script (using system.err or system.out) is <em>italicised</em>. The stderr output is in red color and stdout is in blue color.</p></li>
<li><p>Runtime port</p>

<p>Marathon uses RMI to communicate with the AUT. Setting up of this port was a major headache in the earlier versions. Now this port is dynamically allocated by Marathon, so you do not need to set marathon.runtime.port property.</p></li>
<li><p>Playing scripts with a delay</p>

<p>Now you can execute the script with a delay from the toolbar using Slow Play command. The delay can be changed by setting marathon.runtime.default.delay to a different value (default: 1000 - i.e 1second).</p></li>
<li><p>Edit menu</p>

<p>Undo/Redo/Cut/Copy/Paste are added to the Edit menu item.</p></li>
</ol>

<h2>Version 0.92</h2>

<p>The concentration for 0.92 is on hardening of Marathon and providing support for Java 5.</p>

<ol>
<li><p><del>Run unit tests in a loop.</del></p>

<p>I added a junitrunner script and facility so that we can execute the UTs in a loop. Found multiple failures when the UTs are run like this and fixed all of them. At this time all UTs are passing.</p></li>
<li><p><del>Support for Java 5</del></p>

<p>All the UTs should pass under Java 5. Should be able to run all of them in a loop. Found a problem with Java 5. See <a href="http://www.jaliansystems.com/windowdispose-can-be-a-recursive-call.html" title="Window.dispose() can be a recursive call">Window.dispose() can be a recursive call</a>.</p></li>
<li><p>ComponentResolver and DefaultNamingConvention need to be updated</p>

<p>I am planning for simplifying the naming conventions used. If we take into consideration that only components on the toplevel, focused window need to be named at any time - we may not need to consider the container objects within the window. Need to check this out. This will also solve the problem where-in different names are being generated for components in Java 2 and Java 5.</p></li>
<li><p><del>Fix some bugs</del></p>

<p>Now when a play is stopped by the user by quitting the application, the display window can be restored to normal state by clicking on the &#8217;stop&#8217; button. Similarly, while recording if the application is exited, the display window comes back to the normal state. (However, the last few clicks might not be recorded).</p></li>
</ol>

<h2>Version 0.93</h2>

<ol>
<li><p>Floating toolbar and hiding Marathon main window while recording</p>

<p>I am excited with this feature. I do not know about others, but I am always irritated that the screen real estate is occupied by the Marathon main window while recording test cases. I am planning to hide the main window if you press the record button. A floating (always on top) tool bar will be displayed with stop/insertscript/pause etc. relevant buttons.</p>

<p>It will also be nice to have a small text area in the toolbar where the current component name hovered on is displayed.</p></li>
<li><p>Assertions</p>

<p>I might leave this for the next version (post 1.0), but I will mention the feature here. There are always requests for new assertions to be added to Marathon. If we can provide a mechanism by which the tester can define a new assertion while recording it might be of great value. While recording, we already know the current focused component. When the user opens the context menu, we can provide a option to record a new assertion. That can provide a list of all getters/is&lt;XX&gt; functions from which the user can select an option and can record a new assertion. Giving this a name make this assertion available when recording on similar components.</p></li>
</ol>

<h2>1.0 Versions</h2>

<p>Mostly documentation and more documentation.</p>

<p>So what do you people think? If I missed out something that you feel should be there, please drop a mail to either the list or add a comment here.</p>

<p>Remember that Marathon can be improved only by feedback from its users.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/marathon-gui-test-tool-status.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Window.dispose() can be a recursive call</title>
		<link>http://www.jaliansystems.com/windowdispose-can-be-a-recursive-call.html</link>
		<comments>http://www.jaliansystems.com/windowdispose-can-be-a-recursive-call.html#comments</comments>
		<pubDate>Tue, 22 Aug 2006 06:06:24 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/2006/08/22/windowdispose-can-be-a-recursive-call/</guid>
		<description><![CDATA[While working on porting Marathon to Java 5, I found a funny problem. We use a TestDialog(derived from JDialog) for running most of the component related test cases. When run under Java 5, the dispose() of TestDialog is being called multiple times. Since TestDialog.dispose() calls super.dispose() this goes into a loop. The number of times [...]]]></description>
			<content:encoded><![CDATA[<p>While working on porting <a href="http://sourceforge.net/projects/marathonman" title="Marathon" class="external">Marathon</a> to Java 5, I found a funny problem. We use a TestDialog(derived from JDialog) for running most of the component related test cases. When run under Java 5, the dispose() of TestDialog is being called multiple times. Since TestDialog.dispose() calls super.dispose() this goes into a loop. The number of times TestDialog.dispose() is called is random. I dug into the sources and found that <em>since some developers might not call super.dispose() in classes derived from Window, the VM calls dispose() for them.</em>. So a little bit of sloppy programming would have helped.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/windowdispose-can-be-a-recursive-call.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Website update and wordpress themes</title>
		<link>http://www.jaliansystems.com/website-update-and-wordpress-themes.html</link>
		<comments>http://www.jaliansystems.com/website-update-and-wordpress-themes.html#comments</comments>
		<pubDate>Mon, 21 Aug 2006 07:35:00 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://www.jaliansystems.com/2006/08/21/website-update-and-wordpress-themes/</guid>
		<description><![CDATA[For some time I am planning to update this website. I am using Wordpress as the backend and wanted to use it also as a CMS for this site. WP supports a concept of pages and page heirarchy, but I could not find any WP themes that makes use of this as I want it.

I [...]]]></description>
			<content:encoded><![CDATA[<p>For some time I am planning to update this website. I am using <a href="http://wordpress.org" title="Wordpress" class="external">Wordpress</a> as the backend and wanted to use it also as a CMS for this site. WP supports a concept of pages and page heirarchy, but I could not find any WP themes that makes use of this as I want it.</p>

<p>I started with an excellent opensource web template by <a href="http://andreasviklund.com" title="Andreas" class="external">Andreas</a>. (BTW, head for his site if you want to see some excellent CSS/XHTML compliant templates). I hacked a bit in wordpress to get what I want. Then I went ahead and created a template for this site (what you see currently for this page).</p>

<p>Both the templates are available for download @ <a href="http://www.jaliansystems.com/products/wordpress-themes/" title="Wordpress Themes">Wordpress themes</a> page.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.jaliansystems.com/website-update-and-wordpress-themes.html/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>iSync plugin for Nokia 9500 communicator</title>
		<link>http://www.jaliansystems.com/isync-plugin-for-nokia-9500-communicator.html</link>
		<comments>http://www.jaliansystems.com/isync-plugin-for-nokia-9500-communicator.html#comments</comments>
		<pubDate>Thu, 06 Jul 2006 09:53:54 +0000</pubDate>
		<dc:creator>KD</dc:creator>
		
	<category>Experiencing Agility</category>
		<guid isPermaLink="false">http://blog.jaliansystems.com/?p=12</guid>
		<description><![CDATA[Looks like 9500 and 9300i have a lot in common. With a little bit of cp and vi, I could make my 9500 sync with Mac. If you have OSX 10.4.7 and iSync 2.3 - go ahead grab the file and untar it in iSync.app directory.

iSync plugin for Nokia 9500

Drop me a line if this [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like 9500 and 9300i have a lot in common. With a little bit of cp and vi, I could make my 9500 sync with Mac. If you have OSX 10.4.7 and iSync 2.3 - go ahead grab the file and untar it in iSync.app directory.</p>

<p><a href="http://jaliansystems.com/downloads/nokia9500.tar.gz" title="iSync plugin for Nokia 9500">iSync plugin for Nokia 9500</a></p>

<p>Drop me a line if this is useful to you.</p>
