<?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/"
	>

<channel>
	<title>Testing Thoughts &#187; Nerd T35t1ng</title>
	<atom:link href="http://testing.gershon.info/category/nerd-t35t1ng/feed/" rel="self" type="application/rss+xml" />
	<link>http://testing.gershon.info</link>
	<description>Things to share about Software Testing</description>
	<lastBuildDate>Mon, 09 Jan 2012 18:44:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Big Exploratory Testing Rolling Strategy Dice</title>
		<link>http://testing.gershon.info/201108/the-big-exploratory/</link>
		<comments>http://testing.gershon.info/201108/the-big-exploratory/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 19:55:02 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[Dice]]></category>
		<category><![CDATA[exploratory]]></category>
		<category><![CDATA[heuristic]]></category>
		<category><![CDATA[Issi]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[Rolling]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Teaching]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=631</guid>
		<description><![CDATA[Marlon Brando said in a role he played: &#8220;People win with loaded dice&#8220;&#8230; This is the exercise we&#8217;re building today, loaded dices &#8211; for the win! &#8230;I get by with a little help from my friends. One of the friends at work who pushes me into all sort of good experiences is Issi Hazan. At [...]]]></description>
			<content:encoded><![CDATA[<p>Marlon Brando said in a role he played: &#8220;<code>People win with loaded dice</code>&#8220;&#8230;<br />
This is the exercise we&#8217;re building today, loaded dices &#8211; for the win!</p>
<hr />
<p><strong><em>&#8230;I get by with a little help from my friends.</em></strong> One of the friends at work who pushes me into all sort of good experiences is <a href="http://testermindset.blogspot.com">Issi Hazan</a>. At this example, he invited me to join him in a testing class for the Tech-Career project (<em>a social <a href="http://www.tech-career.org/">wellbeing program in Israel</a> that works with immigrants from Ethiopia to form them and prepare them for a job in the High-Tech industry. They were mentioned at <a href="http://testing.gershon.info/200909/create-your-testing-portfolio-presentation/">this old post about building a portfolio</a>, and at work we volunteer by giving them coding and testing classes</em>).</p>
<p>Issi&#8217;s aim is to teach the group strategies for Exploratory Testing.<br />
But how to do that in a single short out-of-the blue session? How do you convey the strategy, heuristics, coverage models, quality criteria in a practical easy-to-get form? How to make it dynamic and not-boring?</p>
<p>In this post we want to run through you this idea for an aiding tool for the instruction &#8212; and the execution too &#8212; of tests of exploratory nature.<span id="more-631"></span></p>
<p>Many strategies employ clueing techniques: Creativity Cards like the <a href="http://www.amazon.com/Creative-Whack-Pack-Roger-Oech/dp/0880793589/">Creative Whack Pack</a>, &#8220;Prime Me&#8221; clues like the ones in <a href="http://sessiontester.openqa.org/">Session Tester</a> (<em>hmmm&#8230; soon a feature of <a href="http://testing.gershon.info/reporter/">Rapid Reporter</a>?</em>), Brainstorming techniques&#8230; Clueing techniques give you one hint, and your objective/experience/context will use the clue to progress and get unstuck.</p>
<p>So here&#8217;s where the clueing &#8216;<strong>Rolling Strategy Dice</strong>&#8216; come:<br />
<iframe width="560" height="345" src="http://www.youtube.com/embed/KelFIdIcfog?yt:cc=on" frameborder="0" allowfullscreen></iframe></p>
<p>As you see in the video above, the dice will roll one of <a href="http://www.satisfice.com/tools/satisfice-tsm-4p.pdf">six Product Elements</a> SFDPOT (<em>from <a href="http://www.satisfice.com/">James Bach</a></em>) and one of twelve <a href="http://thetesteye.com/posters/TheTestEye_SoftwareQualityCharacteristics.pdf">Quality Characteristics</a> CRUCSPICSTMP (<em>from <a href="http://thetesteye.com/blog/">The Test Eye team</a></em>).<br />
So a throw of dices can bring &#8220;<code>Function</code>&#8221; and &#8220;<code>Reliability</code>&#8220;. Ok, so how would you study the function aspect of your product from a Reliability point of view? Go on, map the functions that are essential and have the user&#8217;s trust. Map the functions that can bring the overall system to unreliable states. And so on!<br />
Your next throw of dice can be &#8220;<code>Structure</code>&#8221; and &#8220;<code>Charisma</code>&#8220;. This one is interesting too. Look at all the non-executable files. Is the product folder organized, even attractive? Or it is a mess that scares users away? How&#8217;s the product code?</p>
<p>So that&#8217;s the idea. We suggest it as a method for taking a class through some of the ideas, heuristics and mnemonics we use when testing; and for use in day to day testing as a complementary tool.</p>
<p>How to use:</p>
<ol>
<li>Online Version: The <a href="http://testing.gershon.info/exploratory-dice-roll/">dice <strong>can be used online</strong></a> for free in courses or day to day tests at <a href="http://testing.gershon.info/exploratory-dice-roll/">this link</a>.</li>
<li>Build your own: The <a href='http://testing.gershon.info/wp-content/uploads/ExploratoryTestingDice.pdf'><strong>templates</strong></a> (<em>Thanks <a href="http://thetesteye.com/blog/">Rikard Edgren</a>!</em>) can be downloaded at <a href='http://testing.gershon.info/wp-content/uploads/ExploratoryTestingDice.pdf'>ExploratoryTestingDice.pdf</a>.</li>
</ol>
<p><strong>What do you think?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201108/the-big-exploratory/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Lightning Talks night with EuroStar 2010 (the Rebel Alliance, a conference after the conference with beer)</title>
		<link>http://testing.gershon.info/201012/eurostar2010-rebel-alliance-night/</link>
		<comments>http://testing.gershon.info/201012/eurostar2010-rebel-alliance-night/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 17:13:34 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[eurostar]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Lightning]]></category>
		<category><![CDATA[Lightning Talks]]></category>
		<category><![CDATA[night]]></category>
		<category><![CDATA[party]]></category>
		<category><![CDATA[peer]]></category>
		<category><![CDATA[Rebel Alliance]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=448</guid>
		<description><![CDATA[I am back from EuroStar. I&#8217;ve got lots to write about EuroStar: the people, the lectures, the Test Lab, the venue. However, if my mails are any indication, the thing people are waiting most to read about is the &#8220;Rebel Alliance&#8221; night. This night, which went by many names (&#8220;Rebel Alliance&#8221;, &#8220;Oprørsalliancen&#8221;, &#8220;Danish Alliance&#8221;), was [...]]]></description>
			<content:encoded><![CDATA[<p>I am back from EuroStar.<br />
I&#8217;ve got lots to write about <a href="http://www.eurostarconferences.com/">EuroStar</a>: the people, the lectures, the Test Lab, the venue. However, if my mails are any indication, the thing people are waiting most to read about is the &#8220;Rebel Alliance&#8221; night.</p>
<p>This night, which went by many names (<em>&#8220;Rebel Alliance&#8221;, &#8220;Oprørsalliancen&#8221;, &#8220;Danish Alliance&#8221;</em>), was an informal meeting of friends. As we <a href="http://www.softwaretestpro.com/Item/4705/The-Rebel-Alliance-Re-takes-Hoth!/Video-Agile-Software-Testing">did at StarEast</a>, it was <strong>&#8220;a mini conference after the conference, with beer&#8221;</strong>. We had there very special people and some famous names from the software testing world, and we spent the night talking testing, debating testing, listening to lightning talks on testing, playing games and debating some more. I am a boring nerd, so for me it was the best party ever.<br />
The content and energy were fantastic, it was a remarkable evening. In this post I&#8217;ve collected some pics, videos and links.</p>
<p>Who was there? I know I&#8217;ll miss a name, but here goes a list (<a href="http://www.random.org/lists"><em>random order</em></a>):<br />
<a href="http://www.o2sn.dk/jesper">Jesper L Ottosen</a> | <a href="http://www.testingreferences.com">Joris Meerts</a> | <a href="http://www.dorothygraham.co.uk/">Dorothy Graham</a> | <a href="http://www.workroom-productions.com/">James Lyndsay</a><br />
<a href="http://twitter.com/Btknaack">Bart Knaack</a> | <a href="http://testsidestory.wordpress.com">Zeger Van Hese</a> | <a href="http://thetesteye.com/">Martin Jansson</a> | <a href="http://se.linkedin.com/in/henkman">Henrik Andersson</a><br />
<a href="http://www.developsense.com/blog/">Michael Bolton</a> | <a href="http://cartoontester.blogspot.com">Andy Glover</a> | <a href="http://www.steveo1967.blogspot.com">John Stevenson</a> | <a href="http://thesocialtester.posterous.com/">Rob Lambert</a><br />
<a href="http://carstenfeilberg.blogspot.com/">Carsten Feilberg</a> | <a href="http://www.enjoytesting.blogspot.com">Ajay Balamurugadas</a> | <a href="http://www.shino.de">Markus Gaertner</a> | <a href="http://thetesteye.com/">Henrik Emilsson</a><br />
<a href="http://uk.linkedin.com/pub/julian-harty/13/104/5a0">Julian Harty</a> | <a href="http://www.amibug.com">Rob Sabourin</a> | <a href="http://thetesteye.com/">Rikard Edgren</a> | <a href="http://testing.gershon.info">Shmuel Gershon</a><br />
<a href="http://www.qualityperspectives.ca">Lynn McKee</a> | <a href="http://www.twitter.com/Rob_Lugton">Rob Lugton</a></p>
<p><span id="more-448"></span></p>
<p>We have plenty of pictures available online:</p>
<ul>
<li>Mine: <a href="http://cid-229b5dac0b9324e4.photos.live.com/browse.aspx/EuroStar%202010%20Alliance%20Night">http://cid-229b5dac0b9324e4.photos.live.com/browse.aspx/EuroStar%202010%20Alliance%20Night</a></li>
<li>Jesper: <a href="http://picasaweb.google.com/jlottosen/EuroStar2010">http://picasaweb.google.com/jlottosen/EuroStar2010</a>#</li>
<li>John: <a href="http://www.flickr.com/photos/steveo1967/sets/72157625396736467/">http://www.flickr.com/photos/steveo1967/sets/72157625396736467/</a></li>
</ul>
<p>I triggered the meetup by sending emails to some social media friends, all original thinkers which whom I&#8217;ve been learning a lot over the past months. But once this was done, the group pretty much organized itself, duplicated in number and generated content. As we said there, it was not my party, it was a massive multiplayer game. Congratulations to all who helped it happen.<br />
Special thanks go to: <strong>Huge thanks to EuroStar</strong> for helping us find a room, free of charge. Our meeting was <strong>not </strong>an official part of the conference, and they nevertheless helped us look for a location. And it was a great one! Tables, drinks, projector, loudspeakers&#8230; <strong><a href="http://xndev.blogspot.com/">Matt Heusser</a></strong> for giving me initial hints on what to organize. <strong>Jesper</strong> for finding a bar and pizza and suggesting &#8216;Doodle&#8217; for polls. <strong>Zeger</strong> for convincing EuroStar to help <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . <strong>Zeger</strong>, <strong>Jesper</strong> and <strong>Rob L</strong> were extremely helpful as advisors whenever I got stuck without idea what to do next.</p>
<p>I would recommend you to go to any conference (<em>EuroStar will happen<a href="http://www.eurostarconferences.com"> next year in Manchester</a></em>) and try to find people to meet at night. We overorganized this one and everything was settled even before the conference started&#8230; But you might as well talk to the people sitting with you at lunch and launch an evening of open discussion and community feedback without prior work.</p>
<p>The <a href="http://www.youtube.com/view_play_list?p=949976C2D5515672">lightning talks</a> are embedded below (<a href="http://www.youtube.com/view_play_list?p=949976C2D5515672"><em>link to playlist</em></a>).<br />
If you have any comment or <strong>question that you would like to address to any of the speakers</strong>, and you write it in the comments area below, <strong>I&#8217;ll make sure to send it to the speaker so he can reply to you</strong>. Maybe in this way this will be a two-directional learning thing instead of one-way videos.</p>
<p>Because many of my readers are from non-english speaking countries (<em>Hi </em><a href="http://groups.yahoo.com/group/dftestes"><em>DFTestes</em></a><em>!, Hi Co-workers!</em>), I added transcriptions to most of them to make it easier to understand:</p>
<p><strong>Shmuel Gershon</strong><br />
I was the first in line for talks. My talk was an extended version of this blog post on <a href="http://www.eurostarconferences.com/blog-posts/2010/10/15/reporting-the-whole-instead-of-the-usual-you-missed-a-spot---by-shmuel-gershon.aspx" class="broken_link">reporting the whole and not only bugs</a>. I received good feedback on the idea, and now we are ruminating on it.<br />
The basic idea for the talk is that if the testing service consists on discovering and reporting information about a system, we should tell all the information we see: bugs, delighting features and areas we are indifferent to.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/mG5eZrxVd0w?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/mG5eZrxVd0w?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"> </embed></object></p>
<p><strong>Jesper Ottosen<br />
</strong>Jesper is a test manager at CSC, and he explains how their team uses visual artifacts to keep morale up, and how these relates to looking for &#8220;Perfects&#8221;. Also, an analysis on how normally User Acceptance Tests have no user, no acceptance, and no tests&#8230;</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/wB_N-TZPde8?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/wB_N-TZPde8?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"> </embed></object></p>
<p><strong>James Lyndsay</strong><br />
James&#8217; talk was a challenge call:<br />
He challenges all participants to access and explore a testing game with a cool concept.</p>
<p><strong>Bart Knaack </strong>presented a lightning talk about the role of testers, programmers and managers in deciding when a scenario is &#8220;not a use case&#8221; and where we should be concerned by it. For some reason (<em>read that as &#8220;it&#8217;s my fault&#8221;</em>) I don&#8217;t have that on my video, but Rob Lambert will probably post it online as well.</p>
<p><strong>Dorothy Graham<br />
</strong>Dorothy talks about her approach on forcing testers to take a programming or technical path, and how a team of testers can better use the skills each one wants to develop.<br />
In the second part (<em>don&#8217;t miss it!</em>), Dorothy sing&#8217;s her &#8220;Testing Techniques&#8221; song! Music starts around 04:50&#8230;</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/xXRY4WEINmQ?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/xXRY4WEINmQ?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Rikard Edgren</strong><br />
Rikard, from The Test Eye website, showed us his view about the eye and the vision &#8212; what skills a tester needs to sharpen in his eyes, to see what matters.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/9OrTyI-FOGg?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/9OrTyI-FOGg?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Rob Sabourin</strong><br />
The more I hear Rob speaking, the more impressed by his clear views and sharpness of mind. In his lightning talk, Rob tells the real-life story of a project he&#8217;s been working on, that had surprising results. It&#8217;s a story about people, process, numbers, innovation and responsibility.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/B0yoiahDBb8?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/B0yoiahDBb8?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Michael Bolton<br />
</strong>Michael talks about three things: The CBC series on how to think about science, the problem people get in when trying to simplify complex matters (<em>legibility</em>) and the value of different cultures and languages.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/fOh2akfToo8?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/fOh2akfToo8?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Zeger Van Hese</strong><br />
Zeger showed us a beautiful presentation about beauty, based on a study done in Washington. What defines our perception of beauty? What is the part of context in that? Is &#8216;time&#8217; a context as well?<br />
Would you recognize a masterpiece if it was located in an incongruous context?</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/WgYPVkD-0Ok?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/WgYPVkD-0Ok?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Joris Meerts<br />
</strong>Joris has prepared an impressive work on the history of testing (<a href="http://www.testingreferences.com/testingtimeline.php">http://www.testingreferences.com/testin­gtimeline.php</a>). In his talk, he presented the work and asked for more ideas and additions.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/xlr19d0t-UQ?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/xlr19d0t-UQ?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Markus Gaertner<br />
</strong>Markus talks in this lightning talk about feedback and about insights and how mixing contexts up can be dangerous for results.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/Tj9XGyYsCPU?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/Tj9XGyYsCPU?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p><strong>Andy Glover</strong><br />
Andy, aka The Cartoon Tester, challenged us (and YOU) to draw on of the definition of testing: Testing is the INFINITE PROCESS of comparing the INVISIBLE to the AMBIGUOUS so as to avoid the UNTHINKABLE happening to the ANONYMOUS (<em>definition by <a href="http://www.satisfice.com/blog">James Bach</a></em>).<br />
Can you draw this?</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/sXDjxppqJ5Q?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/sXDjxppqJ5Q?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>Well, I hope you enjoyed the night as much as we did!</p>
<p>If you have any comment or <strong>question that you would like to address to any of the speakers above</strong>, and you write it in the comments area below, <strong>I&#8217;ll make sure to send it to the speaker so he can reply to you</strong>. Maybe in this way this will be a two-directional learning thing instead of one-way videos.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201012/eurostar2010-rebel-alliance-night/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Alternative Paths for Self-Education in Software Testing by Markus Gaertner (EuroStar talk)</title>
		<link>http://testing.gershon.info/201012/alternative-paths-for-self-education-in-software-testing-by-markus-gaertner-eurostar-talk/</link>
		<comments>http://testing.gershon.info/201012/alternative-paths-for-self-education-in-software-testing-by-markus-gaertner-eurostar-talk/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 13:08:00 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Annotations]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[alternative]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[eurostar]]></category>
		<category><![CDATA[learn]]></category>
		<category><![CDATA[lecture]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[Markus]]></category>
		<category><![CDATA[notes]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=442</guid>
		<description><![CDATA[Markus Gartner is very skilled in speed-notes. He&#8217;s been around EuroStar speed-noting all the session&#8217;s he&#8217;s been into. He calls it live blogging, but I use the term Speed-Note because, well, I think I coined it . He was live-blogging all the talks, but&#8230; who is live-blogging Markus&#8217;s talk? Who watches the watchmen? Well, I took the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.shino.de/main/about-me">Markus Gartner</a> is very skilled in speed-notes. He&#8217;s been around EuroStar <a href="http://www.shino.de/tag/eurostar/">speed-noting all the session&#8217;s he&#8217;s been into</a>. He calls it live blogging, but I use the term Speed-Note because, well, I <em>think</em> I coined it <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .<br />
He was live-blogging all the talks, but&#8230; who is live-blogging Markus&#8217;s talk? Who watches the watchmen? Well, I took the challenge. What you see below are my notes from his ~40 minutes talk.</p>
<p><strong><span style="color: #000080;"><span style="text-decoration: underline;"><a href="http://www.slideshare.net/mgaertne/alternative-paths-for-self-education-in-software-testing-webinar-5178063">Alternative Paths for Self-Education in Software Testing by Markus Gaertner</a></span></span></strong></p>
<p><img title="Markus at EuroStar" src="http://c0013564.cdn1.cloudfiles.rackspacecloud.com/x2_39a84f3" alt="" width="300" align="right" />Markus&#8217;s main motivation for organizing this talk was noticing an economic downtime a few years back, where conventional commercial education was costly to follow and pay for by companies or individuals. But even in this situation, if you&#8217;re in a position where you want to learn and educate yourself, there are other ways&#8230;<br />
Markus&#8217;s first conventional/official training course in Software Testing was in 2007, 1 year after starting his work as a tester. By that time he already had got responsibility leading people and projects, and he attributes this to spending that year learning about testing from books and people, thinking &#8220;how can I advance in this?&#8221;</p>
<p><strong>Who is responsible for your education?</strong><br />
One can assign the responsibility over her education on the employer, on teachers, certifications, family&#8230; Markus main message on the lecture is that <strong>YOU</strong> are responsible for your own education. (<em>editor&#8217;s note: I agree. In fact, I believe it can&#8217;t work any other way</em>).</p>
<p>Shino (<em>as he&#8217;s called informally by school friends</em>) presented some options to self-education:</p>
<ul>
<li><strong>Feedback.</strong>
<ul>
<li>By writing a personal journal one can assess how his thoughts change over time &#8212; that&#8217;s <strong>self-feedback</strong>. By writing to a blog or magazine you receive a different feedback, which is <strong>external feedback</strong> by other people reading your stuff. For even more <strong>direct feedback</strong>, you can write on mailing lists or present at conferences. And there&#8217;s also an environments built specifically for getting <strong>quick and easy feedback</strong>, and it&#8217;s called, guess what, Social Media. On <a href="https://twitter.com/sgershon">Twitter</a>, on <a href="http://il.linkedin.com/in/sgershon">LinkedIn</a>, the <a href="http://www.softwaretestingclub.com/profile/ShmuelGershon">Software Testing Club</a> or <a href="http://www.weekendtesting.com">Weekend Testing</a>, you can get immediate feedback to questions and affirmations (<em>editor&#8217;s note: some of the links point to my own profiles</em>).</li>
</ul>
</li>
<li><strong>Learn to Program</strong>
<ul>
<li>Programming can be a very useful skill for a tester.<br />
You can try to learn some <a href="http://www.lmgtfy.com/?q=scripting+languages&amp;l=1">scripting languages</a> to help you during your tests, or study <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)">design patterns</a> to understand more about software construction. Learning about programming techniques and technologies or pairing with a programmer can give you a great understanding of what goes on in the code.</li>
</ul>
</li>
</ul>
<p>There are many more options to learn and advance. Markus divided them by two:</p>
<ul>
<li><strong>*HYPOTHESIS* &#8211; Left Side of the Brain</strong>
<ul>
<li>Books
<ul>
<li>There are many books you can read, but Markus mentioned specifically three.</li>
<li><strong><a href="http://www.amazon.com/gp/product/0471358460?ie=UTF8&amp;tag=testithoug-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0471358460">Testing Computer Software</a></strong> &#8211; Cem Kaner
<ul>
<li>Gives a very good understanding of software testing and it structure. Markus heard rumors that a 3rd edition might be on the way. (<em>editor&#8217;s note: Can it be? Remember, you heard the scoop <strong>here</strong> first! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </em>)</li>
</ul>
</li>
<li><strong><a href="http://www.amazon.com/gp/product/158053791X?ie=UTF8&amp;tag=testithoug-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=158053791X">A Practitioner&#8217;s Guide to Software Test Design</a></strong> &#8211; Lee Copeland
<ul>
<li>This book structures techniques of software technique, in a very short form. This is Markus preferred and recommended book. (<em>editor&#8217;s note: I like this book a lot, thanks <a href="http://hexawise.wordpress.com/">Justin</a> for the great gift. But the book I like most is Testing Comp Software by Kaner (and thanks Hayim for this gift!)</em>)</li>
</ul>
</li>
<li><strong><a href="http://www.amazon.com/Lessons-Learned-Software-Testing-Kaner/dp/0471081124">Lessons Learned in Software Testing</a></strong> &#8211; Kaner/Bach/Pettichord
<ul>
<li>An easy reading book with a multitude of different aspects and ideas about testing in all its aspects.</li>
</ul>
</li>
<li><strong><a href="http://www.amazon.com/Secrets-Buccaneer-Scholar-Self-Education-Pursuit-Lifetime/dp/1439109087/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1291293934&amp;sr=8-1">Secrets of a Buccaneer-Scholar</a></strong>
<ul>
<li>This book by James Bach includes heuristics for learning (<em>like the SACKED SCOWS, Long Leash Heuristic, Obsess and Forget&#8230;</em>) that can be used in most contexts.</li>
</ul>
</li>
</ul>
</li>
<li><a href="http://www.satisfice.com/rst.pdf">RST</a>
<ul>
<li>It&#8217;s a commercial course by James Bach and Michael Bolton. You have to take the course frontally in a class room. But the slides are available online (!) at <a href="http://www.satisfice.com/rst.pdf">http://www.satisfice.com/rst.pdf</a> and they include models, heuristics and other valuable points from the course.</li>
</ul>
</li>
<li>BBST
<ul>
<li>Developed by James Bach and Cem Kaner, this course is an in-depth view of software techniques and our work as testers (<em>it covers Bug Advocacy and Testing Techniques</em>). One of the ways to take the course is by looking at the <a href="http://www.testingeducation.org/BBST/index.html" class="broken_link">videos at the BBST website</a>, the other is by taking the <a href="http://www.associationforsoftwaretesting.org/training/">course with the AST association</a>, which include &#8212; in addition to that material &#8212; collaboration and feedback with peers and instructors.</li>
</ul>
</li>
</ul>
</li>
<li><strong></strong></li>
<li><strong>*SYNTHESIS* &#8211; Right Side of the Brain</strong>
<ul>
<li>Testing Challenges
<ul>
<li>Solving challenges as a game may condition you to solve challenges in real life. Markus reminded us that James Bach is willing to share testing challenges over Skype to anyone who contacts him (<a href="http://www.satisfice.com/blog/archives/393">http://satisfice.com/blog/archives/393</a>). Eusebiu Blindu, for example, has challenges on his website as well (<a href="http://www.testalways.com/2010/07/05/find-bugs-and-patterns/">link</a>, <a href="http://www.testalways.com/2010/07/18/another-test-puzzle/">link</a>, <a href="http://www.testalways.com/2010/08/02/operators-puzzle/">link</a>).</li>
</ul>
</li>
<li>Dojos
<ul>
<li>On coding dojos, programmers pair and try to solve one specific coding problem. They include collaboration, a safe environment and a deliberate practice. Markus cloned this idea over to testing, and in Testing Dojos testers solve a problem (<em>test this, evaluate tools, learn new approaches&#8230;</em>) in pairs or individually to sharpen their skills.</li>
</ul>
</li>
<li><a href="http://weekendtesting.com/">Weekend Testing</a>
<ul>
<li>A weekend testing session is an online ~2 hours session of testing where people work on their own or pairing. They are like dojos in matter of mission, and include a multi-person discussion over Skype on the mission and the results. (<em>editor&#8217;s note: It&#8217;s certainly a fun way to spend the weekend! I was there and recommend</em>).</li>
</ul>
</li>
<li>Miagi-Do
<ul>
<li>This &#8216;school&#8217; for software testing was founded by <a href="http://xndev.blogspot.com/">Matt Heusser</a>, is non-commercial and zero-profit, and aims to improve testing skills through practice. By proving skills when solving testing challenges you earn colored belts. Markus is a Black-Belt Miagi-Do tester and can be contacted for more information or for initiation. (<em>editor&#8217;s note: While is it true that there isn&#8217;t much you can do with the belts <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , there&#8217;s much you can do with the skills.</em>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Summarizing his talk, Markus says that there are different styles for learning, and you are responsible to discover what your own style is and how you will advance on it. Markus recommends, in any case, trying as many types of learning as you can.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201012/alternative-paths-for-self-education-in-software-testing-by-markus-gaertner-eurostar-talk/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The effect of time.  And Shana Tova UMetuka (Happy and Sweet Year)</title>
		<link>http://testing.gershon.info/201009/the-effect-of-time-shana-tova/</link>
		<comments>http://testing.gershon.info/201009/the-effect-of-time-shana-tova/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 22:02:09 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=393</guid>
		<description><![CDATA[שנה הלכה שנה באה אני כפי ארימה. שנה טובה לך, אבא, שנה טובה לך, אמא.(link) &#8220;For auld lang syne, my dear, for auld lang syne, we&#8217;ll take a cup of kindness yet, for auld lang syne. (link)&#8221;   Tomorrow we celebrate in Israel the New Year in the Hebrew calendar. Yes, 4 months before December [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://testing.gershon.info/wp-content/uploads/128.png" alt="" align="right" /></p>
<table border="0">
<tbody>
<tr>
<td>שנה הלכה שנה באה<br />
אני כפי ארימה.<br />
שנה טובה לך, אבא,<br />
שנה טובה לך, אמא.(<a href="http://www.zemereshet.co.il/song.asp?id=228">link</a>)</td>
<td>&#8220;For auld lang syne, my dear,<br />
for auld lang syne,<br />
we&#8217;ll take a cup of kindness yet,<br />
for auld lang syne. (<em><a href="http://en.wikipedia.org/wiki/Auld_Lang_Syne">link</a></em>)&#8221;</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Tomorrow we celebrate in Israel the <a href="http://en.wikipedia.org/wiki/Rosh_Hashanah">New Year in the Hebrew calendar</a>. Yes, 4 months before December <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , and guess what&#8230; we are now celebrating year 5771! The difference between the years counted in Gregorian calendar and the Hebrew calendar is ~3760 years.</p>
<p>New years, calendars and dates are extremely important for Software Testing.</p>
<p>Let me tell you a true story about value, about a bug. It was not a bug I found, but in fact a bug I had created.<span id="more-393"></span></p>
<p>Once upon a time I was a programmer, and wrote my very first commercial piece of software when I was in college: A library management system for a high-school, and it had to manage books and loans, and generate reports with due dates and past-due notices. It was, modesty aside, a beauty. Easy to use, quick, implemented all the requirements I was sent and even had big transparent buttons on a book-collection-picture background (<em>well, these was in ~2000, I guess user interface tastes have changed</em>).</p>
<p>Once done, I visited the school again, installed the software and database, and demonstrated the software to the manager (<em>who had asked it from me</em>) and the librarians. They loved the big transparent buttons! And also approved the flow of the system, how one catalogues books, and how one manages loans. Acceptance Test: Pass.</p>
<p>A week later, I receive a call from the librarian: The software is bad, and they can&#8217;t use it. &#8220;What&#8217;s the problem?&#8221;, I asked.</p>
<p>&#8220;We don&#8217;t use Gregorian dates. It is our policy that all the dates used at school and in correspondence with the students are Hebrew dates. All the reports of your application say October 14, 1999 or November 22, 2000 when we need ד׳ בְּחֶשְׁוָן תש״ס or כ״ד בְּחֶשְׁוָן תשס״א !&#8221;</p>
<p>Now what? No one had told me about this &#8216;little&#8217; detail. Not in the requirements, and not upon acceptance homologation. So, is it a bug? Whose fault it is?</p>
<p>This story taught me forever that bugs are not a matter of contract. Bugs are a matter of value, and the application was completely devoid of value as it was. I added date-transformation function to all the outputs (was a lot of extra-work), and returned to the school with a version 2.0.</p>
<p>Almost all software has a module that is date sensitive. How thorough you test it?</p>
<p>Dates have tricky properties. <strong>Leap (<em>bissext</em>) years</strong> have <a href="http://en.wikipedia.org/wiki/Intercalation">one additional day in February</a>. How do date calculations in the software you test work? If it does date subtractions, leap years can provide a good test path.</p>
<p>That is, if the software at least knows how to deal with the existence of leap years. For example, Microsoft Zune devices around the world rebooted and freeze in 2009, because a leap year had finished (<a href="http://en.wikipedia.org/wiki/Zune#Zune_30_leap_year_bug">details on the bug here</a>).</p>
<p><a href="http://www.fashionfunky.com/2009/01/buggy_zunes_throw_up_on_new_ye.php"><img src="http://www.fashionfunky.com/upload/2009/01/02/zune.jpg" alt="Zune error message" height="225" /></a></p>
<p>Another thing you should pay attention, like in the story above, is to <strong>date locale</strong>. If the application is installed in a Hebrew OS, or a Chinese OS, it may need to display localized dates when it doesn&#8217;t. Or the opposite: Windows settings may push the localized format to the application when there was no intention of it. A good starting point to learn about locales is <a href="http://msdn.microsoft.com/en-us/goglobal/bb688174.aspx">here</a>.</p>
<p>What else? Pay attention to ends. I&#8217;ve heard of problems with the <strong>days 31</strong> and the <strong>month of December</strong>. Or both together, December 31. Does the application behave properly in these cases? What about when the day changes to the next one? Can the software cope with the <strong>change of year</strong>?</p>
<p>Date <strong>changes on runtime</strong> are very important. What happens if you move the date/time back in the middle of operation? What happens if you execute a function, manipulate the time, and execute the function again at the very same time?</p>
<p>We shouldn&#8217;t forget one of the most notorious of date bugs: <a href="http://en.wikipedia.org/wiki/Year_2000_problem">Y2K</a>. Lots of early software used two digits for date handling, so the passage from year (<em>19</em>)99 to year (<em>20</em>)00 could have been catastrophic (<em>at the end, only a <a href="http://en.wikipedia.org/wiki/Year_2000_problem#Documented_errors">few failures were reported</a></em>).</p>
<p>Can you identify what are the <strong>real boundaries</strong> of the date format used in your application? Maybe Y2K isn&#8217;t a problem, but <a href="http://en.wikipedia.org/wiki/Year_2038_problem">Y2038</a> or <a href="http://www.mail-archive.com/debian-bugs-closed@lists.debian.org/msg243671.html">Y2106</a> is.</p>
<p>Well, here&#8217;re my wishes for a great year ahead. Wish you all good surprises and good and fun testing.</p>
<p>Shana Tova (<em>Happy New Year</em>)!!</p>
<p>    Shmuel</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201009/the-effect-of-time-shana-tova/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STAREast 2010 &#8211; Bugs on a Plane!</title>
		<link>http://testing.gershon.info/201005/stareast-2010-bugs-on-a-plane/</link>
		<comments>http://testing.gershon.info/201005/stareast-2010-bugs-on-a-plane/#comments</comments>
		<pubDate>Tue, 11 May 2010 22:40:55 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[heuristic]]></category>
		<category><![CDATA[hiccupps]]></category>
		<category><![CDATA[insights]]></category>
		<category><![CDATA[interesting]]></category>
		<category><![CDATA[physical]]></category>
		<category><![CDATA[plane]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[stareast]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[trip]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=285</guid>
		<description><![CDATA[Last month I visited the STAR East conference. It was over two weeks ago, which on the internet age makes it old news. I follow my own clock, however, and will start posting about STAR East only now. Scott Rosenberg would call this type of blogging &#8216;history&#8217; instead of &#8216;journalism&#8217; (link), and it sounds just [...]]]></description>
			<content:encoded><![CDATA[<p>Last month I visited the <a title="STAR East" href="http://www.sqe.com/stareast/Schedule/Default.aspx" target="_self">STAR East conference</a>. It was over two weeks ago, which on the internet age makes it old news.<br />
I follow my own clock, however, and will start posting about STAR East only now. <a href="http://www.wordyard.com/">Scott Rosenberg</a> would call this type of blogging &#8216;history&#8217; instead of &#8216;journalism&#8217; (<a href="http://www.wordyard.com/2010/05/03/no-more-bouncers-at-the-journalism-club-door/"><em>link</em></a>), and it sounds just as fine.</p>
<p>In next blog posts, I&#8217;ll write about what happened at STAR. What happens in Orlando doesn&#8217;t stay there.<br />
But on this one, it&#8217;s a bit about what happened in <strong>the way</strong> there.</p>
<p>For some time before travelling, I&#8217;ve been thinking about physical problems that resemble computer bugs. &#8220;Spirits in the material world&#8221;. For example:</p>
<table>
<tbody>
<tr>
<td><img class="alignnone size-thumbnail wp-image-286" title="roofbottle" src="http://testing.gershon.info/wp-content/uploads/roofbottle.jpg" alt="" width="140" /></td>
<td>In this picture you can (<em>barely</em>) see a water bottle that was forgotten by a worker on my neighbors&#8217; roof. Just like a programmer would forget a temporary variable she invented to get some refreshment from the code inherent limitations, a worker will forget his own refreshment once it isn&#8217;t  needed anymore.</td>
</tr>
</tbody>
</table>
<p><span id="more-285"></span></p>
<table>
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-287" title="urinals" src="http://testing.gershon.info/wp-content/uploads/urinals.jpg" alt="" width="140" /></td>
<td>This other picture is of a bathroom urinal row. I bet the urinals looked beautiful in the catalog, with their slim form that doesn&#8217;t stand out of the wall too much. But when &#8220;implementing&#8221; the bathroom, not only the beauty is lost when you build the necessary dividers, but the very same low-footprint of the urinals makes the rest of the environment unclean.<br />
How many times a company/developer makes a bad decision of, say, a coding library, just to discover that the very &#8216;flexible&#8217; API promised by it is the part that gives them most trouble? How many times they decide to retrocede the and change the library?</p>
<p>Ok, ok, tasteless example.</td>
</tr>
</tbody>
</table>
<p>It seems that the same thinking process that makes a programmer/tester miss a detail when coding/testing happens in any other aspect of real life. I&#8217;m reading &#8220;<a href="http://whywemakemistakes.com/book.php">Why we make mistakes</a>&#8221; by <a href="http://whywemakemistakes.com/author.php">Joe Hallinan</a> and this idea seems to be congruent with many examples.</p>
<p>Well, with that mindset, it&#8217;s a sure thing that I would find bugs on my trip. Not because the trip was bad &#8212; au contraire, it was a mostly pleasant journey. But analyzing things and trying to assess their value is a good exercise for testers.</p>
<p>To make the exercise better, I decided to categorize the bugs and problems into the 8 parts of the <strong>HICCUPPS</strong> mnemonic consistency heuristic for analyzing a bug. It is a great way of building yourself an oracle to assess a potential problem, and I learned about it first from <a href="http://www.developsense.com">Michael Bolton</a>&#8216;s &#8220;<a href="http://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf">Testing without a Map</a>&#8221; article, highly recommended.</p>
<p>A quick explanation of the heuristic: One method of assessing any phenomenon is by comparing its consistency to a different (<em>but comparable</em>) source. The 8 aspects this mnemonic suggests are:</p>
<table>
<tbody>
<tr>
<td colspan="4">Is the phenomenon consistent with a comparable idea in:</td>
</tr>
<tr>
<td><strong>H</strong></td>
<td>History (<em>e.g. the same function in the past</em>)</td>
</tr>
<tr>
<td><strong>I</strong></td>
<td>Image (<em>e.g. what the company would like customers to think of it</em>)</td>
</tr>
<tr>
<td><strong>C</strong></td>
<td>Comparable products (<em>e.g. the competitor&#8217;s <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>)</td>
</tr>
<tr>
<td><strong>C</strong></td>
<td>Claims (<em>e.g. a user manual statement</em>)</td>
</tr>
<tr>
<td><strong>U</strong></td>
<td>Users’ expectations (<em>e.g. what users have become used to</em>)</td>
</tr>
<tr>
<td><strong>P</strong></td>
<td>Product itself (<em>e.g. the same function elsewhere</em>)</td>
</tr>
<tr>
<td><strong>P</strong></td>
<td>Purpose (<em>e.g. the aim of this very function</em>)</td>
</tr>
<tr>
<td><strong>S</strong></td>
<td>Statutes (<em>e.g. a certification check</em>)</td>
</tr>
</tbody>
</table>
<p>To illustrate better the method and to share the fun of travelling, here goes a list of interesting events encountered on the trip:</p>
<p><strong>[<span style="text-decoration: underline;">H - History</span>] Airlines/Airports are stingier than in the past</strong></p>
<p><strong> </strong>It&#8217;s been a long time since I last travelled. So my recollection on how it works left me with some expectations, like having free carts at the airport, or having free peanuts during short flights, or having free headphones in the long ones.<br />
Surprise: A cart costs US$4.00, a headphone costs US$5.00, and peanuts only if you brought from home! I was lucky I had my headphones in the carry-on case, but would be disappointed if I had to pay for airline ones.</p>
<p>This is interesting: Is that a problem? Is it a bug? Well, certainly it is inconsistent with the (far) history of tourist aviation, but it may be a good business decision. And fixing a bug (or deciding something is one) is a business decision.</p>
<p><strong>[<span style="text-decoration: underline;">I - Image</span>] Airlines seem to content with poor software</strong></p>
<p><strong> </strong>US Airways have a personal in-flight video system for each passenger (<em>on long flights</em>). It is great, has a touch-screen and showcases movies, music, even TV shows.<br />
But the system is slow. It&#8217;s so slow that you often get confused by what it is doing &#8212; Is it stuck? Should I press again? Which of my last clicks is he processing now?</p>
<p>A funny thing is that at the beginning of the flight, the attendant announces: &#8220;please expect a delay after pressing the buttons on screen, it is part of the normal operation of the system&#8221;. What? In the age of iPad and other rapid touch-screens, is it really part of normal operation? I observed the other travellers, and saw at least two that were frantically pressing the screen waiting for answer.<br />
We all also hope that the cockpit controls respond faster&#8230;</p>
<p><img class="alignleft size-thumbnail wp-image-290" title="linuxplane" src="http://testing.gershon.info/wp-content/uploads/linuxplane.jpg" alt="" width="250" height="187" />This one has two interesting points:<br />
- I had a glimpse of the system rebooting when the aircraft landed. It is a Linux based system, and has a quote in its boot sequence that would make any software tester laugh (<em>I laughed</em>): &#8220;<code>All bugs added by David S. Miller</code>&#8221; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , which turns out to be a real line in the Linux Kernel (<em><a href="http://en.wikipedia.org/wiki/David_S._Miller">David is a programmer for RedHat</a></em>). Great attitude, Dave!<br />
- US Airways have, apparently, tested a different in-flight system, that is not available on A330 aircrafts. According to <a href="http://www.youtube.com/watch?v=Mikb9DmEnDM">this review</a>, it is much faster.</p>
<p><strong>[<span style="text-decoration: underline;">C - Comparable Products</span>] Top storage is smaller in international flights?</strong></p>
<p><strong> </strong>The overhead storage in the transatlantic trip was only deep enough to have the luggagge stored sideways. Good? Bad? Well, we don&#8217;t know (<em>yet</em>).<br />
The storage (<em>called overhead bin in the lingo</em>) is made by a company called <a href="http://www.cdzodiac.com/documents/11x17_CutawayPoster.pdf">C&amp;D Zodiac</a>, and they look very professional and thorough. So the storage space is good? We still don&#8217;t know.</p>
<p>One thing we can do, is to try to learn from comparison: The domestic flight had an overhead bin too, but in this case the carry-on luggage fit on its length too, almost twice the depth of the other.<br />
How come? International flights have much longer duration, and it is normal that people will bring larger/more carry-on (<em>sandwiches? Games? Stuff for the kids?</em>). So why is storage room smaller in international flights? A bug?<br />
OTOH, on domestic flights more people are expected to bring only a carry-on (<em>they stay less time at their destination</em>), so maybe there are more/bigger carry-on on these flights. So what? No bug?</p>
<p>And that is exactly the point of interest here:<br />
The mnemonics/heuristics don&#8217;t tell you a definite answer, but they help you to think.</p>
<p><strong>[<span style="text-decoration: underline;">C - Claims</span>] Where&#8217;s the Kosher food?</strong></p>
<p><strong> </strong>US Airways cancelled my flight back, but I will not complain about that.<br />
However, they did claim that there would be an acceptable solution, and that  the airport hotel would be able to provide Kosher meals. And none of these claims stood to the truth.</p>
<p>The airport hotel had no Kosher preparation, and US Airways made it very difficult to find an acceptable solution. It took three hours of phone calling and walking between their offices until they agreed to provide suitable meals from outside.</p>
<p>A claim, even a verbal one, is a claim that your customer will expect you to fulfill.</p>
<p><strong>[<span style="text-decoration: underline;">U - User Expectations</span>] What&#8217;s with the default volume settings?</strong></p>
<p><strong> </strong>The aforementioned in-flight entertainment system had many settings. One of these was the volume setting, controlling how loud the movie you are seeing is.<br />
However, this setting was re-set for every movie, which means that every time you moved to a different TV show, it will be at a loud volume again!<br />
And I think (<em>I did not ask for tools to verify it at the time</em>) that every time the attendant/pilot talked on the announcement system, even when it was during a movie, the volume was at the loud volume &#8211; again.</p>
<p>My expectation, as a user of the system, is that once I set a volume level for one show, it stays on that level for other shows. I got startled by loudness once and again.</p>
<p><strong>[<span style="text-decoration: underline;">P - Product Itself</span>] Now, where can I change the diapers?</strong></p>
<p><strong> </strong>This is my favorite one.<br />
Bathroom stalls at airplanes have this platform that you can detach from the wall and use it horizontally to change the diapers of your little kid.<br />
Bathroom stalls at airplanes also have this new foamy liquid soap, strongly attached to the</p>
<p><img class="size-thumbnail wp-image-289 alignleft" title="diapers" src="http://testing.gershon.info/wp-content/uploads/diapers.jpg" alt="" width="250" height="187" />But, as you can see on the picture, the soap was installed right in the place where the platform should be based on. There is no way to use the support in order to lay the platform down.</p>
<p>So this is a perfect example of two parts of a system that are inconsistent with themselves &#8212; or, in this case, not only inconsistent, but the feature added later, practically nullifies the original feature.</p>
<p><strong>[<span style="text-decoration: underline;">P - Purpose</span>] Is your seatbelt fastened? Is it? Not?</strong></p>
<p>I noticed during the flight that the flight attendants had to check if passengers had their seatbelts fastened. So they went from passenger to passenger, trying to discern if the seatbelt is locked or not. Not always an easy task, as passengers are usually holding things or use a blanket.</p>
<p>But if this &#8220;check seatbelts&#8221; function exists, why isn&#8217;t the automatic system of the aircraft aiding? Why isn&#8217;t there a little row of LED lights that show which seatbelt is fastened and which isn&#8217;t? Attendants would (<em>maybe</em>) have it all much easier.<br />
It appears to me that without this simple system (<em>hey, </em><strong><em>cars</em></strong><em> have it</em>) the aircraft system is not serving its purpose in every way it could.</p>
<p><strong>[<span style="text-decoration: underline;">S - Statutes</span>] This page intentionally left blank</strong></p>
<p>This one is missing. Because:</p>
<ul>
<li>I don&#8217;t think I noticed anything that was against a statute or law.</li>
<li>It would be irresponsible to suggest things that are against the law in this (<em>or other</em>) industry &#8212; especially as I am not a domain expert.</li>
</ul>
<p>As you see, a 12 hours flight is a lot of time&#8230; These are my notes from trip to (<em>and back from</em>) Orlando.<br />
I am interested in learning about other methods you use to analyze bugs/value in the physical world. Share in the comments!</p>
<p>Now let me start that post about the actual STAR East lectures and networking&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201005/stareast-2010-bugs-on-a-plane/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Finding Nemo &#8211; Solving Pradeep&#039;s software testing challenge (an exploratory approach)</title>
		<link>http://testing.gershon.info/201002/nemo-solving-exploratory-approach/</link>
		<comments>http://testing.gershon.info/201002/nemo-solving-exploratory-approach/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 12:39:06 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Ask the Tester]]></category>
		<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[Test Riddle]]></category>
		<category><![CDATA[answer]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[exploratory]]></category>
		<category><![CDATA[exploratory testing]]></category>
		<category><![CDATA[exploratory testing example]]></category>
		<category><![CDATA[pradeep]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[riddles]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[solving]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[testing solution]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=154</guid>
		<description><![CDATA[Back on December, Pradeep Soundararajan set a challenge up in his blog. He built an application with the description below: This was an interesting exercise. What took my interest in this one? - First of all, I liked Pradeep&#8217;s post about learning to code. Learning to code is an important skill for a tester. I [...]]]></description>
			<content:encoded><![CDATA[<p>Back on December, <a href="http://testertested.blogspot.com/">Pradeep Soundararajan</a> set a <a href="http://testertested.blogspot.com/2009/12/why-testers-need-to-learn-to-write-code.html">challenge up in his blog</a>.<br />
He built an application with the description below:</p>
<p><a href="http://testing.gershon.info/wp-content/uploads/cmdnemo.jpg"><img class="alignnone size-full wp-image-122" title="cmdnemo" src="http://testing.gershon.info/wp-content/uploads/cmdnemo.jpg" alt="" width="534" height="130" /></a></p>
<p>This was an interesting exercise.<br />
What took my interest in this one?<br />
<strong>- First</strong> of all, I liked Pradeep&#8217;s post about learning to code.<br />
Learning to code is an important skill for a tester. I can relate to it because I am trying to learn <a href="http://en.wikipedia.org/wiki/Windows_PowerShell">PowerShell</a>. I program in some languages (<em>C#, C++, PHP, VbScript&#8230;</em>) and have a programming background (<em>after my Computer Systems Engineer degree, the &#8216;natural&#8217; path was to code, and I worked as a programmer for many years before finding Software Testing</em>), but PowerShell has <a href="http://dirtsimple.org/2004/12/python-is-not-java.html">different approach and paradigms</a> and learning it will definitely be fun.<br />
<strong>- Second</strong>, I had an impromptu vacation day, and I thought it would be educational to use it for a peer testing puzzle. I thought I could win this one quickly (<em>I was mistaken, it took me long</em>). <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So I downloaded Pradeep&#8217;s application, and got to work!<br />
Rather than just trying to solve the puzzle, I looked at it as if the mission was:<br />
&#8220;<code>This is commercial 'roulette' style game. Stakeholders want to know it the game logic can be broken/learnt, which could mean a substantial loss of money when people start winning every time.</code>&#8221;</p>
<blockquote><p><strong>Testing Hint:</strong> Cem Kaner says &#8220;<code>Testing is an empirical, technical investigation of a product, done on behalf of stakeholders, with the intention of revealing quality-related information of the kind that they seek</code>&#8220;. So it is important to set straight what is the information to seek. Which kind of bugs to look for?</p></blockquote>
<p>In this blog I describe my attemp to answer this question in an exploratory way.<span id="more-154"></span></p>
<p>Now, Stop the press!<br />
You may want to go to <a href="http://testertested.blogspot.com/2009/12/why-testers-need-to-learn-to-write-code.html">Pradeeps post</a>, download <a href="http://interviewsandjobs.com/testertested/fnemo_1.7.6.exe" class="broken_link">the file</a>, and try it for yourself before reading my solution. This post will be waiting right here when you&#8217;re done. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8230;</p>
<p>Here is the report of what I did, the line of thinking during my experiment, and the conclusion:</p>
<ul>
<li>1. First, I ordered my environment to allow efficient and organized work:
<ol>
<li>Increased the <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/commandpromptoptions.mspx?mfr=true">Screen Buffer Size</a> of the Command line I was using to 500 (<em>it turned out that I would do well on less, even half, than that (</em>see point 2.b<em>). But it didn&#8217;t hurt</em>).</li>
<li>Renamed the executable to be shorter and without number version: <strong><code>ren fnemo_1.7.6.exe fnemo.exe</code></strong></li>
<li>Changed the prompt to something shorter, cleaner, and that gave me context about this task against the other Cmd lines windows open: <code><strong>prompt $Cfnemo$F$S$G</strong></code></li>
</ol>
</li>
</ul>
<blockquote><p><strong>Testing Hint:</strong> Organizing your testing environment before you start will likely help you during your tests. After you&#8217;re in the heat of fight, it will be harder to stop and get organized.</p></blockquote>
<ul>
<li>I tried some basic executions of the program, to grasp the feeling of what it does and how hard it is to find Nemo. This also taught me what are the messages returned by the application when Nemo is found, and when Nemo isn&#8217;t found. They&#8217;re &#8220;<strong>Found Nemo this time!, Nemo Gill Bubbles SharkTooth Flow Phamplet Stinger</strong>&#8221; and &#8220;<strong>Ah! bad luck, didnt find Nemo this time!</strong>&#8221; respectively.
<ol>
<li>I also learnt that Pradeep used Perl and <a href="http://www.indigostar.com/perl2exe.htm">Perl2Exe</a> to do the app.</li>
<li>Additionally, the application clears the screen at every execution, so the big command line buffer is not so helpful.</li>
</ol>
</li>
</ul>
<blockquote><p><strong>Testing Hint:</strong> Planning or scheduling your testing before you experiment a bit with the software <strong>can </strong>be done. But you risk being completely wrong in your assumptions about the app. In our case, there were no big surprises, but there could be.</p></blockquote>
<ul>
<li><a href="http://testertested.blogspot.com/2009/12/why-testers-need-to-learn-to-write-code.html?showComment=1260335959722#c6013367471319656833">Sarmila commented</a> on the <a href="http://testertested.blogspot.com/2009/12/why-testers-need-to-learn-to-write-code.html">Challenge page</a> about disassembling the executable. Although by learning all the assembly one can learn about the rules that move the fishes around, it would be <strong>extremely </strong>difficult and overkill. But this made me think on how Perl2Exe works… Maybe it just wraps the Perl interpreter and the Perl script together? If so, what if the script is stored internally in clear? I tried to open the app in an <a href="http://sourceforge.net/projects/npp-plugins/">Hex editor</a>, but no, the Perl script isn&#8217;t in clear text there, it is obfuscated.
<ul>
<li>I also tried the useful <a href="http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx">Strings</a> tool by SysInternals. My intention was to see if, maybe, the array of fishes could be seen at the app code, in order to learn the initial order of fishes. It couldn&#8217;t.</li>
<li>That ended my cheating session <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , from here on I used only a black box functional approach.
<ul>
<li>Well, it is not really cheating because there were no rules against that. If you do a full reverse engineer of the code, the answer is legit too. But I preferred the straightforward exploratory approach: learning from the software functionality as I use it, and use this learning to redirect my next steps.</li>
</ul>
</li>
</ul>
</li>
<li>.</li>
<li>By now, I knew that Nemo changed places between plays.
<ol>
<li>Nemo also change places between invalid parameters (which may or not be a bug).</li>
<li>Moreover, the other fishes change places too, even their placement related to Nemos&#8217; placement changes.</li>
<li>So I tried to see if Nemo will return to the same place in any consistent way or number of times. Running that is easy, you just enter &#8220;3&#8243;, &#8220;3&#8243;, &#8220;3&#8243;… and count where Nemo was found and where he wasn&#8217;t.
<ul>
<li>I discovered there is regularity (for &#8220;3&#8243;, its every 2, 3, 17, 5, 10, 5…), but the regularity was irregular enough, and also changed for different positions. This was likely a consequence of the real logic, rather than the logic itself. This correlates to the movement of fishes, but does not cause it.</li>
</ul>
</li>
</ol>
</li>
</ul>
<blockquote><p><strong>Testing Hint:</strong> Take note of your steps while testing. Using the <a href="http://sessiontester.openqa.org/">Session Tester</a> tool is a great idea. For this session, I used <a href="http://office.microsoft.com/onenote">MS OneNote</a> because it supports rich text, and I could use tables.<br />
Is that like saying that rich texts helps rich tests? <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p></blockquote>
<ul>
<li>Another detail that helped me in the game was knowing the developer and the purpose of the challenge. This puts a lot of content in the context. Pradeep is a rather playful <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  and would put some tricks into it.
<ol>
<li>First I tried to see if Nemo could sometimes be in any placement bigger than 7 (there are 7 fishes, places 1 to 7, but there were no rules as to where the fishes were limited to be).</li>
<li>I tried in a toss of up to 220 attempts, and Nemo wasn&#8217;t in place 8 even once. So I let this idea on StandBy for now.</li>
<li>Then I tried&#8230; what if the &#8220;<code>Minimum attempts</code>&#8221; input at the beginning of the app affected where Nemo appears?
<ul>
<li>10 is the default for the &#8220;<code>Minimum Attempts</code>&#8220;. Nemo is at place 1 at the beginning there.</li>
<li>11 attempts chosen: Nemo is at place 1 at the beginning too. Maybe it does not affect?</li>
<li>12 attempts chosen: Nemo is at place 4! Bingo!</li>
<li>13, 14, 15, 16 showed that the original places were cycling at &#8217;3&#8242; intervals. That means that when trying to find Nemo on the default 10 attempts, it will be in the same placements as 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52…</li>
</ul>
</li>
</ol>
</li>
</ul>
<blockquote><p><strong>Testing Hint:</strong> let the test and what you learn during the testing guide you. New information you find should set you in a new direction.</p></blockquote>
<ul>
<li>You&#8217;re seeing that &#8220;220 attempts&#8221; above, and thinking if I really entered each number manually.
<ol>
<li>By this time, I decided that I was in need of some automation to insert inputs to the application.</li>
<li>The original app had no apparent automation capabilities, so I decided to use the internal input redirection of the Command line:
<ul>
<li>By using the &#8220;<strong>&lt;</strong>&#8221; operator, I could redirect an input file &#8220;<strong>input.txt</strong>&#8221; to the app using &#8220;<strong>fnemo.exe &lt; input.txt</strong>&#8220;</li>
<li>I extended that to &#8220;<strong>fnemo.exe &lt; input.txt &gt; output.txt</strong>&#8220;, which gives us with a complete dump of results that can be searched with Notepad.</li>
</ul>
</li>
<li>We had an easy automation now, and this can help our sapient testing. I was exploring, and using automation to help me try different things help me explore my possibilities and get a bigger picture of the situation when needed.</li>
</ol>
</li>
</ul>
<blockquote><p><strong>Testing Hint:</strong> Don&#8217;t be afraid of automation. It can help you talk with the software in different ways and interact with it differently. It helps a lot with data generation and logging, too. <strong>Another hint:</strong> Never let the automation take control of the testing. It is there to help you, not to drive the effort.</p></blockquote>
<ul>
<li>With the knowledge and tool I had so far, I did a lot of trials in order to find where Nemo is at each iteration. This could give me a hint if he moved in any regular or consistent manner.
<ul>
<li>So I made a big file of winning moves (<em>a lot of trial and error went in it</em>).</li>
</ul>
</li>
<li>.</li>
<li>It was now time to model the results:
<ul>
<li><strong>First attempts at modeling</strong> the results:</li>
<li>I got this: Nemo&#8217;s position: <strong>1, 3, 5, 3, 2, 7, 3, 4, 7, 4, 4, 1, 5, 5, 2, 5, 6&#8230;</strong>
<ul>
<li>Nemo was certainly jumping around without any clear regularity, even when I did it twice the times there was no repetition.</li>
</ul>
</li>
</ul>
</li>
<li>On the <strong>Second modeling attempt</strong>, I tried to see if a more visual model could help:</li>
<li>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
<tr>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>X</td>
</tr>
</tbody>
</table>
</li>
<li>Even in a table with many more results, it made no sense.</li>
</ul>
<li>.</li>
<li>I changed my approach. Looking only at Nemo was not giving enough insight. Plus, I knew the other fishes moved along, so there might be a hint in their placement.
<ul>
<li>I got this table:</li>
<li>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
<tr>
<td>Stinger</td>
<td>SharkTooth</td>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
</tr>
<tr>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
</tr>
<tr>
<td>Stinger</td>
<td>SharkTooth</td>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
</tr>
<tr>
<td>Stinger</td>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
</tr>
<tr>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
<td><strong>Nemo</strong></td>
</tr>
<tr>
<td>Phamplet</td>
<td>Stinger</td>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
</tr>
<tr>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
</tr>
<tr>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
<td><strong>Nemo</strong></td>
</tr>
<tr>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
</tr>
<tr>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
</tr>
<tr>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
</tr>
</tbody>
</table>
</li>
<li>That didn&#8217;t look good. Nemo moved spuriously, and the other fishes either jumped aimlessly or stayed at their place. Nothing made much sense.</li>
</ul>
</li>
<blockquote><p><strong>Testing Hint:</strong> When you look at a problem or thing, different models will give you different view and different details. Multiple viewpoints help &#8212; keep changing the viewpoint until you learn enough.</p></blockquote>
<p>One interesting thing that happened by this time, is that in my manual trials, I was finding Nemo pretty easily.<br />
Intuitively, I was seeing a pattern on the game, a pattern that was not conscious or explicit. It was as if my mind had already learned the rules without noticing them.<br />
It reminded me of what <a href="http://www.douglasadams.com/">Douglas Adams</a> wrote in <a href="http://en.wikipedia.org/wiki/Dirk_Gently's_Holistic_Detective_Agency">Dirk Gently&#8217;s Holistic Detective Agency</a>:<br />
&#8220;<code>A ball flying through the air is responding to the force and direction with which it was thrown, the action of gravity, the friction of the air which it must expend its energy on overcoming, the turbulence of the air around its surface, and the rate and direction of the ball's spin.<br />
And yet, someone who might have difficulty consciously trying to work out what 3 x 4 x 5 comes to would have no trouble in doing differential calculus and a whole host of related calculations so astoundingly fast that they can actually catch a flying ball.<br />
People who call this instinct are merely giving the phenomenon a name, not explaining anything.</code>&#8221;</p>
<ul>
<li>I still thought that looking at the other fishes will bring the breakthrough needed.
<ol>
<li>In order to learn the movement of the fishes, I did a table of their placement in relation to Nemo at every run.
<ol>
<li>i. This is what I got:</li>
<li>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
</tr>
<tr>
<td><strong>Nemo</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
</tbody>
</table>
</li>
<li>See anything interesting? The rows repeat themselves alternatingly! So the fishes were not really moving around, they were following Nemo!
<ol>
<li>My take is that Pradeep has two different arrays: One for <strong>Odd</strong> rows, the other for <strong>Even </strong>rows.
<ol>
<li>This may not be true, but it doesn&#8217;t matter for us. When testing, we not always know what exactly the programmer wrote in the code, but we infer a mental model. If it suits the needs, it is a good model even when not the real thing.
<ol>
<li>Many times I think these fake mental models are even better than the real thing. It’s the best way for them to act as an intuitive Oracle when analyzing an application.</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ul>
<blockquote><p><strong>Testing hint: </strong>When you learn and infer about software, you make assumptions and a mental model of what the software does inside itself. This model <strong>does not need to be an exact depiction </strong>of the code underneath the app. As long as it answers your questions, and you change this model constantly as you learn, it is good.</p></blockquote>
<ul>
<li>From this part on, I started to analyze Even rows and Odd rows separately.
<ul>
<li>Bingo! Seeing the pattern was easy now.</li>
<li><strong>Odd</strong> rows follow this cyclic sequence: <strong>+4, +4, +1</strong></li>
<li><strong>Even</strong> rows follow this cyclic sequence: <strong>+0, +4, +4</strong></li>
</ul>
</li>
<li>.</li>
<li>But what with the differences when using different &#8220;<code>Minimum Attempts</code>&#8220;?
<ul>
<li>A quick look at the tables I had gathered showed that they follow the same rules, but start at different places.</li>
</ul>
</li>
<li>.</li>
<li>At the end of this trials, these are the set of rules that allow me to know where&#8217;s Nemo at any given time:</li>
<li><strong>a. Where does Nemo start?</strong>
<ol>
<li>&#8220;<code>Minimum Attempts</code>&#8221; of 10, 13, 16, 19…</li>
<li>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
<td><strong>Place 1</strong></td>
<td><strong>Place 2</strong></td>
<td><strong>Place 3</strong></td>
<td><strong>Place 4</strong></td>
<td><strong>Place 5</strong></td>
<td><strong>Place 6</strong></td>
<td><strong>Place 7</strong></td>
</tr>
<tr>
<td><strong>First Line</strong></td>
<td>Nemo</td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
<tr>
<td><strong>Second Line</strong></td>
<td>Stinger</td>
<td>SharkTooth</td>
<td>Nemo</td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
</tr>
</tbody>
</table>
</li>
</ol>
<ol>
<li>&#8220;<code>Minimum Attempts</code>&#8221; of 11, 14, 17, 20…</li>
<li>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
<td><strong>Place 1</strong></td>
<td><strong>Place 2</strong></td>
<td><strong>Place 3</strong></td>
<td><strong>Place 4</strong></td>
<td><strong>Place 5</strong></td>
<td><strong>Place 6</strong></td>
<td><strong>Place 7</strong></td>
</tr>
<tr>
<td><strong>First Line</strong></td>
<td>Nemo</td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
</tr>
<tr>
<td><strong>Second Line</strong></td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
<td>Stinger</td>
<td>SharkTooth</td>
<td>Nemo</td>
<td>Phamplet</td>
</tr>
</tbody>
</table>
</li>
<li>&#8220;<code>Minimum Attempts</code>&#8221; of 12, 15, 18, 21….</li>
<li>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td> </td>
<td>Place 1</td>
<td>Place 2</td>
<td>Place 3</td>
<td>Place 4</td>
<td>Place 5</td>
<td>Place 6</td>
<td>Place 7</td>
</tr>
<tr>
<td>First Line</td>
<td>Flow</td>
<td>Phamplet</td>
<td>Stinger</td>
<td>Nemo</td>
<td>Gill</td>
<td>Bubbles</td>
<td>SharkTooth</td>
</tr>
<tr>
<td>Second Line</td>
<td>Stinger</td>
<td>SharkTooth</td>
<td>Nemo</td>
<td>Phamplet</td>
<td>Gill</td>
<td>Bubbles</td>
<td>Flow</td>
</tr>
</tbody>
</table>
</li>
</ol>
</li>
<li><strong>b. Where does Nemo go?</strong>
<ol>
<li>i. &#8220;<code>Minimum Attempts</code>&#8221; of 10, 13, 16, 19… Follow this cyclic rule, starting at step 1.</li>
<li>ii. &#8220;<code>Minimum Attempts</code>&#8221; of 11, 14, 17, 20… Follow this cyclic rule, starting at step 2.</li>
<li>iii. &#8220;<code>Minimum Attempts</code>&#8221; of 12, 15, 18, 21… Follow this cyclic rule, starting at step 3.</li>
<li><strong>Odd Rows: +4 | +4 | +1</strong></li>
<li><strong>Even Rows: +0 | +4 | +4</strong></li>
</ol>
</li>
<li>.</li>
<li><strong>How do I know it is right? </strong>
<ul>
<li><strong>Proof! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong> I built another automation aid: An Excel spreadsheet that can tell you the position of nemo in all trials given an initial &#8220;<code>Minimum Attempt</code>&#8220;. It works!</li>
<li><strong>You can download the spreadsheet to try it </strong><a href="http://testing.gershon.info/wp-content/uploads/FindingNemoForPradeep.xls"><strong>here</strong></a><strong>.</strong> Choose any number of initial attempts, it will tell you all Nemo&#8217;s position accurately.</li>
<li>Is this the real logic behind Pradeep&#8217;s challenge? It may not be. It is probable that pradeep did something else, much simpler, and that only <strong>translates</strong> into this. However, this answers the mission of predicting Nemo&#8217;s moves.
<ul>
<li>I am sure that analyzing the findings above one can discover what was really that Pradeep did. I&#8217;ll just ask Pradeep on a mail for a suggestion. <strong>Testing hint:</strong> You can always reach out to the developer and ask him about his software and/or code! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
</li>
</ul>
</li>
</ul>
<blockquote><p><strong>Testing hint:</strong> Again, your mental model doesn&#8217;t always needs to be exact. As long as it works and answers the questions you have. Keep in mind that this mental model should be flexible and evolve with your knowledge.</p></blockquote>
<ul>
<li><strong>Conclusion sent to the &#8216;roulette&#8217; stakeholders:<br />
Until a higher amount of randomness is added to the game, it is too risky to release the game as is now. A malicious player can find the logic of the game after some hours of work, and a pair of smart malicious players in even less time.</strong></li>
</ul>
<p>Thanks Pradeep, for the nice challenge.<br />
It was a very nice experiment, and I learnt a lot. The best part, for me, was organizing my thoughts in this report, and I hope you like it too.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201002/nemo-solving-exploratory-approach/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Software Testing is Funny! with Demetri Martin</title>
		<link>http://testing.gershon.info/200912/testing-is-funny-with-demetri-martin/</link>
		<comments>http://testing.gershon.info/200912/testing-is-funny-with-demetri-martin/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 15:56:59 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Test Annotations]]></category>
		<category><![CDATA[comedy]]></category>
		<category><![CDATA[demetri]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[joke]]></category>
		<category><![CDATA[martin]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=68</guid>
		<description><![CDATA[One best friend of mine introduced me to Mitch Hedberg and Demetri Martin, great one-liner comedians. They are/were two funny men!! Three, actually, if you count my friend which is also funny.  After hearing the disks for over a year, not only the jokes aren&#8217;t any less funny, but I&#8217;ve started to find subliminal testing [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;">
<div id="attachment_78" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-78 " title="Demetri Martin" src="http://testing.gershon.info/wp-content/uploads/402006martin1-150x150.jpg" alt="" width="150" height="150" /><p class="wp-caption-text">Demetri Martin</p></div>
</div>
<p>One best friend of mine introduced me to <a href="http://en.wikipedia.org/wiki/Mitch_Hedberg">Mitch Hedberg</a> and <a href="http://en.wikipedia.org/wiki/Demetri_Martin">Demetri Martin</a>, great one-liner comedians. They are/were two funny men!! Three, actually, if you count my friend which is also funny. </p>
<p>After hearing the disks for over a year, not only the jokes aren&#8217;t any less funny, but I&#8217;ve started to find <a href="http://en.wikipedia.org/wiki/Subliminal_Message">subliminal testing messages</a> in them <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .<br />
I&#8217;m writing down these &#8220;insights&#8221; because I find value in them. And even if they fail to teach you something&#8230; Hey! At least the jokes are pretty funny! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
So here go some favorite quotes, and their parallel in testing: </p>
<p><span id="more-68"></span> </p>
<p>. </p>
<blockquote><p><strong>1)</strong> &#8220;<code>A drunk driver is very dangerous. So is a drunk backseat driver, if he’s persuasive!<br />
'<em>Dude, make a left.</em>'<br />
'<em>But those are trees…!</em>'<br />
'<em>Trust me...</em>'</code>&#8220; </p></blockquote>
<p>We are testers. As such, most of the time we aren&#8217;t driving the company: Essential operational decisions are made by someone else (<em>project manager, product owner, CEO, whatever you call him</em>).<br />
But if we are not the drivers, our position is certainly close to this of a backseat driver: we have our maps, good knowledge of the area and our experience; and we give advice that is used to take real decisions. So <strong>don&#8217;t be a drunken backseat driver, it&#8217;s dangerous!</strong> If you are inebriated by an obsessive desire to fix a bug, or by a personal quest against/for colleague, by a blind belief in a set of metrics or a unfounded trust in a <a href="http://www.developsense.com/articles/2004-09-ComparativelySpeaking.pdf">fictitious</a> &#8220;Best Practice&#8221;, you&#8217;ll be taking your company directly into the trees. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  And, as with any drunk person&#8230; Whenever your judgment isn&#8217;t objective&#8230; At least recognize/admit that you may be drunk! Will make it easier for everyone else. </p>
<p>. </p>
<blockquote><p><strong>2)</strong> &#8220;<code>I used to play sports... Then I realized you can <em><strong>buy</strong></em> trophies. Now I'm good at everything!</code>&#8220; </p></blockquote>
<p>A plaque, a crown, a card, a trophy&#8230; It is common to find people who treasure &#8220;victory symbols&#8221;, I know I do. They prove you&#8217;ve mastered a skill.<br />
Trophies are nice and great, but only if they are accompanied by skills and real world practice. Trophies that can be attained without these traits are just empty cups<a href="http://www.imdb.com/title/tt0317219/quotes">*</a>. </p>
<p>One should beware when dealing with &#8220;achievement symbols&#8221;&#8230; At times, acquiring the symbol does not mean acquiring the achievement or skill too!<br />
For example, just as buying the trophy doesn&#8217;t make Demetri good at tennis, getting a testing certification won&#8217;t make a tester good at testing&#8230; The certifications syllabi try to teach only specific lexicon and terms definition, but not the real practice of testing, because they don&#8217;t/can&#8217;t cover the interactions between persons and players.<br />
For some people, the joke could be read as &#8220;<code>I used to practice and study... Then I realized you can pass a certification. Now I can prove mastership - without the effort of gaining it!</code>&#8221; Be sure to be from the ones who keep learning and carrying the skill. </p>
<p>. </p>
<blockquote><p><strong>3)</strong> &#8220;<code>I am afraid of sharks, but only in a water situation. If I saw a shark on the street, I'd be like '<em>What? F#*k you!</em>'<br />
It's funny, that's like the opposite of how I am with lions!</code>&#8220; </p></blockquote>
<p>What&#8217;s the Best Practice for dealing with sharks? &#8220;Escaping&#8221; or &#8220;screaming&#8221;, right?<br />
What if the shark&#8217;s on the sand? Or dead? Not hungry? Not dangerous? You have an anti-bite clothe? Anti-shark cage? Suddenly the <a href="http://www.developsense.com/articles/2004-09-ComparativelySpeaking.pdf">&#8216;Best Practice&#8217;</a> looks more like a &#8216;so-so advice&#8217;, uh? </p>
<p>The business of testing isn&#8217;t different. By looking at our surroundings and context, we can learn important details about our problems &#8211; and only then we can try to find an action path that solves it.<br />
Without the context analysis, we may come with solutions that don&#8217;t address the <strong>real</strong> problem or does it badly. One size only seldom fits all. </p>
<p>. </p>
<blockquote><p><strong>4)</strong> &#8220;<code>If I have to move up in a building, I choose the elevator over the escalator. Because one time I was riding the escalator and I tripped. I fell down the stairs... for an hour and a half.</code>&#8220;</p></blockquote>
<p>Automation is all nice and fine&#8230; Until you trip on it! Then it takes long time to recover from the fall (<em>you could be long done by this time</em>) and the fix to the system can be so crooked that it lets you prone to further tripping.<br />
The elevator is a much more robust automation (<em>not only it goes up and down, but it is much safer to trip in it <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>).<br />
Anyway, who said you have to automate? An equally good way to go up and down is the stairs! You don&#8217;t need to wait for them to come, they are as quick as you need (<em>or can make</em>) them to be, you can stop to look around or change direction in the middle of the way, they don&#8217;t limit weight or number of users and they are never out-of-order.<br />
Slipping, well, can hurt a bit <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Just remember that manually doing things gives you many opportunities a machine cannot provide. </p>
<p>. </p>
<blockquote><p><strong>5)</strong> &#8220;<code>I saw a sign on this door; it said, '<em>Exit Only</em>'. So, I entered it and went up to the guy working there, and I was like, '<em>I have some good news. You have severely underestimated this door over here by, like, 100%, man!</em>'</code>&#8220;</p></blockquote>
<p><img class="alignleft size-thumbnail wp-image-82" title="Exit Only" src="http://testing.gershon.info/wp-content/uploads/c-exitsigns1.jpg" alt="" width="90" height="108" />Labeling is a natural instinct: The Bible depicts Adam naming animals as his first action in Eden, and Aristotle has been <a href="http://en.wikipedia.org/wiki/Aristotle#Classification_of_living_things">classifying everything</a> since the 300 BC.<br />
But the labels we use can limit ourselves or our tools.<br />
&#8220;<code>I'm a tester, I can't code</code>&#8220;.<br />
&#8220;<code>I'm an engineer, I can't sell</code>&#8220;.<br />
&#8220;<code>I'm a newbie, I can't help</code>&#8220;.<br />
Good news! You&#8217;ve underestimated yourself by at least 100%! </p>
<p>. </p>
<blockquote><p><strong>6)</strong> &#8220;<code>I want to make a revolving door that says '<em>Pull</em>' on it, just see how obedient people are.</code>&#8220; </p></blockquote>
<p>Meeting a Test Case that says “<code>1) Reach to revolving door</code>”, “<code>2) Pull the door to open</code>”. What do you do?<br />
Maybe nothing is wrong. Maybe there are good reasons to make people walk backwards at the entrance.<br />
Or maybe there isn&#8217;t, and then, who&#8217;s decides? The test case? The design? The developer? The tester?<br />
What are <strong>your ways to discover about the door</strong> product and its users before deciding on obeying or not?</p>
<p>. </p>
<blockquote><p><strong>7)</strong> &#8220;<code>I was walking down the street, and this guy waved to me. Then he came up to me and said, '<em>I'm sorry, I thought you were someone else.</em>' I said, '<em>I am.</em>'</code>&#8220; </p></blockquote>
<p>Wow, that&#8217;s a funny joke! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Beginning a task with a very clear objective is usually a good thing &#8211; but failing to identify or even acknowledge alternative outcomes may not be.<br />
A good friend was working in an academic project, trying to prove a theory about the nature of lasers. However, while progressing in the research, the calculations made clear that the theory wasn&#8217;t right. He was desolated &#8211; all this work and nothing to publish! He failed, momentarily, to notice that demonstrating a theory wrong has as much scientific value as proving it right, and the publication will advance science just as well.<br />
Testing present us with many similar situations. We can start a test chasing a specific bug, and miss other bugs that may appear. Or we can keep our mind open for different outcomes, and grow your tests as we go from these outcomes. A different bug <strong>is</strong> hiding there, believe it <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . </p>
<p>. </p>
<blockquote><p><strong>8 )</strong> &#8220;<code>My plumbing is all screwed up. Because it turns out, I do not own a garbage disposal.</code>&#8220; </p></blockquote>
<p>How many times we rely on a garbage disposal when we don&#8217;t have one?<br />
- Don&#8217;t worry, release it that way, we have a fantastic relationship with this customer. <em>What if you don&#8217;t?</em><br />
- It&#8217;s fine to release that way, the customer has a great quality assurance team and they&#8217;ll catch it if there&#8217;s a problem. <em>What if they don&#8217;t?</em><br />
- No problem, we can work Sundays &#8212; our testing department understands our needs and won&#8217;t care. <em>What if they do care?</em><br />
- This looks like a very nasty bug. But customers will always have the underlying framework, so it is fine. <em>Will they always?</em> </p>
<p><em>.</em> </p>
<blockquote><p><strong>9)</strong> &#8220;<code>I'm in a weird position, because I like rainbows, but I'm not gay. So whenever I go out wearing a rainbow shirt, I have to put '<em>Not gay</em>'. But I'm not against gays, so under that I'll have to put '<em>... but supportive</em>'. It's weird how one group of people took refracted light. That's very greedy, gays.</code>&#8220; </p></blockquote>
<p>Once in a while a group of people will come, wrap common sense ideas in a new named package, and claim ownership, which is as reasonable as taking sole ownership of refracted light. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
I could parallel this one to many things or groups, but I chose one where this happens with a lot of enthusiasm&#8230; The Agile movement.<br />
Suddenly, you can&#8217;t focus on customer and organize a software project in a change-adapting way, without being called Agile. That group just took no-nonsense practices that had been used for decades and re-branded them as if they had invented it! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Don&#8217;t get me wrong &#8211; it is my opinion that what Agile preaches are often-good-practices-for-many-contexts and there are testimonies of companies, projects and souls being saved from a bureaucracy and poor quality hell by adopting Agile as a new approach. But this does not mean that anyone who is delivering quality in a &#8220;release early release often&#8221; way is <strong><span style="text-decoration: underline;">A</span>gile</strong>.<br />
For example, even being a total newbie and never part of an Agile team until now, my personal testing approach focus on happy customers, working software, individual interactions and change &#8212; without me needing to be an <strong><span style="text-decoration: underline;">A</span></strong>gilist.<br />
More experienced great people had practiced all that, and test-first, and XP for decades. </p>
<p>More than that, not only the practices&#8217; refracted light was taken, but even the word &#8220;agile&#8221; itself was expropriated <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8211; see James Bach&#8217;s note at his <a href="http://www.satisfice.com/blog/archives/51">&#8216;Who stole Agile&#8217; post</a>. </p>
<p>&#8212;&#8212;<br />
Hope you enjoyed the article, or at least Demetri&#8217;s jokes.<br />
If you have more insights and funny stuff to share, don&#8217;t hesitate to contact me &#8211; I promise to laugh.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200912/testing-is-funny-with-demetri-martin/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Testing questions and the Laws of eCommerce</title>
		<link>http://testing.gershon.info/200911/testing-and-knowing-the-law-of-ecommerce/</link>
		<comments>http://testing.gershon.info/200911/testing-and-knowing-the-law-of-ecommerce/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 13:08:15 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Ask the Tester]]></category>
		<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[commerce]]></category>
		<category><![CDATA[law]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[questions]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20091130/testing-and-knowing-the-law-of-ecommerce/</guid>
		<description><![CDATA[(Disclosure: I am not a lawyer!) (Request: Are you a lawyer? Please send me corrections ) Matters related to law, and all the discussions around it, interest me much &#8212; especially when related to Software. This made me read about the subject and keep contact with the legal representatives within the company I work for. This also [...]]]></description>
			<content:encoded><![CDATA[<p>(<em>Disclosure: I am not a lawyer!</em>) (<em>Request: Are you a lawyer? Please send me corrections <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>)</p>
<p>Matters related to law, and all the discussions around it, interest me much &#8212; especially when related to Software.<br />
This made me read about the subject and keep contact with the legal representatives within the company I work for. This also motivated me to learn and lecture about the legal guidelines in software development adopted by our company, and to lecture about legal matters on software in general at the last <a href="http://www.sigist.org.il/">Israeli SIGiST</a> conference.<br />
Most important than all, this made people share with me a lot of comments, questions and stories pertaining to the law.</p>
<p>For example, one colleague brought to my attention a case in which he and some friends had bought a PlayStation 3 in the local Office Depot website for 220NIS &#8211; when the normal price is almost tenfold! They believed it was some special sale promotion, but at the end Office Depot announced it as a typing mistake and cancelled the sale after it had been acknowledged (<em>sale confirmation by email</em>). <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
(<em>There is an article about the episode in Hebrew </em><a href="http://www.ynet.co.il/articles/0,7340,L-3769212,00.html"><em>here </em></a><em>if you want to see it</em>).</p>
<p>What is my opinion on the legal aspects of the story? I was asked.<br />
I don&#8217;t have one, as I am not a legal professional, I answered. I am, though, a Testing professional, and here is the tester rambling I sent by mail commenting the occurrence:</p>
<p><span id="more-65"></span>&#8212;&#8212;<br />
In fact, electronic transactions are special and different that normal stores. They can be built without any human interaction whatsoever, and the lack of human monitoring can bring new and unexpected problems.<br />
Note that I can’t have an official Legal opinion, as I am not a lawyer. I’ll just write what I learn.<br />
A usual understanding in contract law is that once both parts show agreement to the deal, then the deal is closed and valid (<em>I think a lawyer would explain this by stating that there is a mutual offer <strong>and acceptance</strong> of goods or services</em>). Such agreement is shown, for example, by accepting the payment money.<br />
In such a case as this story, the electronic sale often includes a debit in the buyer&#8217;s Credit Card (<em>that turns into a credit at the cancellation of sale</em>). If a service provider accepts payment for a service, he is in obligation to provide the service at the agreed terms. If he didn’t agreed to the terms, he would not have taken the payment. So in our case the fact that a payment transaction was completed supposedly forces the two parts to honor it (<em>the store should not cancel the delivery just as you should not cancel the money debit</em>).</p>
<p>However, apart from the amateur philosophy, we can find a bit more of info in the net about this sort of things&#8230;<br />
a) Not only the payment debit can be viewed as a contract acceptance, but also the confirmation mail you receive when buying online can be seen as such, depending on what it writes.<br />
b) The Terms of Service of the website can be used for or against the store, depending on their presence and the judge interpretation of them.</p>
<ul>
<li>For example:</li>
<li>Buy.Com (<em>huge company, 290 million revenue</em>) announced at $164 a $588 monitor. They tried to cancel the sales, and lost more than $60000 in a lawsuit (<a href="http://news.cnet.com/2100-1017-221466.html">CNET link</a>).</li>
<li>On the other hand, Amazon.Com (<em>huger, 19 billion revenue</em>) announced at $11 a $449 handheld (<a href="http://news.cnet.com/Amazon-wont-honor-pricing-mistake/2100-1017_3-993246.html">CNET link</a>). They cancelled the sales successfully, claiming that the Terms of Use state that <code>there is no binding contract until the <strong>confirmation of shipment arrives</strong></code>.</li>
<ul>
<li>Buy.Com had no such protection in their terms, and after the lawsuit they updated the terms to include “<code>have the right to refuse or cancel any such orders whether or not the order has been confirmed and your credit card charged</code>”.</li>
<ul>
<li>If it will always help? Not sure. In <a href="http://news.cnet.com/2100-1017-221466.html">this link</a> a representative of the <a href="http://www.ftc.gov/">FTC</a> says that it will depend greatly on the state the lawsuit is taking place.</li>
</ul>
</ul>
</ul>
<p>In the US, there is a concept of “<code>loss of bargain</code>”, that could allow one to buy the PS3 at normal price and sue for the difference (<em>which represents the bargain lost due to the store&#8217;s malpractice</em>). Of course, if the judge identifies the buyer as having bought it to exploit a weakness or obvious typo, the attempt can backfire&#8230;</p>
<p> </p>
<p>Now that we learned some principles of the domain&#8230; We go for the most important&#8230; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
As I said, I have no legal opinion, but <strong>I do have a tester opinion</strong>.<br />
First, this shows (<em>again</em>) that there is no final answer in the law yet for new technologies and new problems.</p>
<p>And I now know that for assessing risk on an e-store product, one has to answer these questions too:</p>
<ul>
<li>Does the system have any protection against mistakes</li>
<ul>
<li>This can be done by issuing an alert if there is a big discrepancy after:</li>
<ul>
<li>comparing the product to similar ones</li>
<li>or comparing to the previous price</li>
<li>or comparing to the price in the normal (brick) store</li>
</ul>
</ul>
<li>Does the system require a manual human confirmation before sending the payment or confirmation mail?</li>
<ul>
<li>This can be bad for a large operation, but for small-medium business, can be a good way of catching mistakes</li>
</ul>
<li>Does the system alerts the administrator if there is a sudden surge in the purchases of a newly added product?</li>
<li>Do the Terms and Conditions protect the company in case of mistakes?</li>
<li>Are the Terms and Conditions clear to the end user? At least in a visible place?</li>
<li>Is the user obliged to mark an acceptance to the Terms during log-on, or it is just a link in the page footer?</li>
</ul>
<p>These are some of the questions I would ask when faced with such a product. There are more, certainly &#8212; please share your own ones in the comments or by email <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8212;&#8212;<br />
One last comment&#8230; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Sometimes the typos make the prices higher than the norm&#8230; See this picture, a real example from Amazon <strong>selling </strong><a href="http://www.amazon.com/ENGTX285-TOP-HTDI-1GD3-GeForce/dp/B001S2PXJ2"><strong>this $400 card</strong></a><strong> for a whopping $5 million</strong>!! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  That&#8217;s a lot of money for a graphics card&#8230;<br />
<a class="imagelink" title="400 card" href="http://testing.gershon.info/wp-content/uploads/400card.jpg"><img id="image64" alt="400 card" src="http://testing.gershon.info/wp-content/uploads/400card.jpg" height="120" /></a><br />
Hummm&#8230; would they cancel <strong>this </strong>sale as a mistake too? <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200911/testing-and-knowing-the-law-of-ecommerce/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Job Description</title>
		<link>http://testing.gershon.info/200903/job-description/</link>
		<comments>http://testing.gershon.info/200903/job-description/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 10:35:35 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20090312/job-description/</guid>
		<description><![CDATA[I was reading a job position offering these days for a &#8220;QA engineer&#8220;. There was the usual mumbo jumbo of the required traits (&#8220;BSC in computer science or equivalent&#8220;, &#8220;Worked directly with R&#038;D department&#8220;) and advantage points (&#8220;General knowledge of at least one mainstream (programming) language&#8220;), and one of the requirements lines said &#8220;Testing methodologies: [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading a job position offering these days for a &#8220;<strong>QA engineer</strong>&#8220;.<br />
There was the usual mumbo jumbo of the required traits (<em>&#8220;<font face="courier new">BSC in computer science or equivalent</font>&#8220;, &#8220;<font face="courier new">Worked directly with R&#038;D department</font>&#8220;</em>) and advantage points (&#8220;<font face="courier new">General knowledge of at least one mainstream (programming) language</font>&#8220;), and one of the requirements lines said &#8220;<font face="courier new">Testing methodologies: STD, STP</font>&#8220;.<br />
I got curious to know what these methodologies are and what the TLA mean, so I called the company offering the job:<span id="more-49"></span></p>
<blockquote><p>&#8211; Hi, Nancy? (<em>Name changed. And she wasn&#8217;t the testing manager, she was from the HR.</em>)<br />
&#8211; Yes.<br />
&#8211; Hi, my name is Shmuel and I saw you&#8217;re offering a software testing position, the &#8220;QA engineer&#8221; opening&#8230;<br />
&#8211; We have it, right.<br />
&#8211; I saw that one of the requirements is to know the STD and STP methodologies, and I was wondering what are STD and STP.<br />
&#8211; Well, if you have no experience on that, then the position is not relevant to you.<br />
&#8211; No, no, I guess the experience is fine; it is just that the announcement made me curious. These acronyms can mean many things, you know? So I want to know how your company understands them.<br />
&#8211; They mean specification documents.<br />
&#8211; Does STD stand for Software Test Documentation? What does the STP mean?<br />
&#8211; No, ST<strong>D</strong> is for <strong>S</strong>oftware <strong>T</strong>est <strong>D</strong>esign, and the <strong>P</strong>&#8230; Well, both mean specification documents.<br />
&#8211; Why design? Is that the specification of the tests to run, of the testing system, or of the product?<br />
&#8211; Why don&#8217;t you just look up the meanings on Google?<br />
&#8211; I tried right before calling you. The acronyms are all over the web, but they have different meanings too (*).<br />
&#8211; Listen, these are very important topics, if you don&#8217;t know them the position is not relevant. They&#8217;re very important, and very well known.<br />
&#8211; I see. Thanks you Nancy!<br />
&#8211; Thanks, bye bye.</p></blockquote>
<p><strong>Very important and well known.</strong> Well, I guess I&#8217;ll put them in my list of things to learn&#8230; As soon as I decide which meaning I want them to have…</p>
<p>Let&#8217;s see. I guess two of the best &#8220;methods&#8221; I use in testing are:</p>
<p><font color="#000080"><strong>STD &#8211; Software Test Drawing:</strong> Scribbling in a whiteboard (<em>pen+paper are good too, but my experience shows whiteboards are much better</em>). This is especially useful when you&#8217;re working with someone else. With some squares and circles explanations become simple, concepts become clear, people can point when they talk, you can easily delete mistakes, and the best part is that usually there is always a joke at the end of the process. Whiteboard scribbling is a major testing tool for me.</font></p>
<p><font color="#000080"><strong>STP &#8211; Software Test Peer (<em>or Pal</em>): </strong>If you are like me, your brain is constantly storming <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Nothing beats thinking out loud or talking to peers and fellow testers/developers about the challenges you face &#8212; more often than not you&#8217;ll learn about a direction you hadn&#8217;t thought of or about a tool that can help. Works fantastically with STD <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</font></p>
<p>I may start an &#8220;Alphabet of Really Useful Software Testing Things&#8221; &#8212; please contribute on the comments.</p>
<p>(*) In fact Google says D and P apparently can mean Design, Documentation, Development, Performance, Process, Plan, Programming&#8230;Pick your own definition. Most companies seem to accept STP as Software Test Plan, though.I still like that anyone can pick the definition that best suits his needs or business, though. So I&#8217;ll stick to mine <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p><em>Note to my employer: No, I am not looking for a job elsewhere yet <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</em></p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200903/job-description/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On certified testers and being certifiable, and on non native english speakers :)</title>
		<link>http://testing.gershon.info/200902/on-certified-testers-and-being-certifiable-and-on-non-native-english-speakers/</link>
		<comments>http://testing.gershon.info/200902/on-certified-testers-and-being-certifiable-and-on-non-native-english-speakers/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 10:29:42 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20090227/on-certified-testers-and-being-certifiable-and-on-non-native-english-speakers/</guid>
		<description><![CDATA[I like the SQE. SQE brings columns by Michael Bolton almost monthly on the Better Magazine. They also arrange the nice STAR conferences (hadn&#8217;t the opportunity to participate yet, but I will eventually) and store a large number of articles online of all testing flavors. Today morning I was greeted by an Email from SQE: The subject read [...]]]></description>
			<content:encoded><![CDATA[<p>I like the <a href="http://www.sqe.com/" target="_blank">SQE</a>.<br />
SQE brings columns by <a href="http://www.developsense.com/" target="_blank">Michael Bolton</a> almost monthly on the <a href="http://www.bettersoftware.com/" target="_blank">Better Magazine</a>. They also arrange the nice <a href="http://www.sqe.com/conferences/" target="_blank">STAR conferences</a> (<em>hadn&#8217;t the opportunity to participate yet, but I will eventually</em>) and store a large number of <a href="http://www.stickyminds.com/index.asp" target="_blank">articles online</a> of all testing flavors.</p>
<p>Today morning I was greeted by an Email from SQE: The subject read &#8220;<strong>Are you certifiable?</strong>&#8220;.<br />
My first reaction was to discuss the term. If I am certifiable? <strong>I?</strong> In my mind, I was arguing whether a person can be considered certifiable or maybe the topic of certification is the one certifiable.<br />
As in &#8220;Software Testing is (<em>or not</em>) a certifiable topic&#8221; against &#8220;Johnny is a certifiable (<em>or not</em>) software tester&#8221;.</p>
<p>I was puzzled over the confusing choice of words:</p>
<p><span id="more-47"></span>A lot of good people (<a href="https://www.rbcs-us.com/UserContent/Articles/ISTQB%20Certification%20_Update%200308_%20_2_.pdf" target="_blank"><em>Rex Black</em></a><em>, in a moderated way </em><a href="http://www.pstestware.nl/data/uploads/be_file/file_location/Todays%20Testing%20Innovations%20-%20Lee%20Copeland.pdf" target="_blank"><em>Lee Copeland</em></a><em>, Michael Stahl (link to </em><a href="http://www.stickyminds.com/sitewide.asp?ObjectId=10191&#038;Function=DETAILBROWSE&#038;ObjectType=CP&#038;sqry=%2AZ%28SM%29%2AJ%28MIXED%29%2AR%28relevance%29%2AK%28simplesite%29%2AF%28Security%29%2A&#038;sidx=151&#038;sopp=25&#038;sitewide.asp?sid=1&#038;sqry=%2AZ%28SM%29%2AJ%28MIXED%29%2AR%28relevance%29%2AK%28simplesite%29%2AF%28Security%29%2A&#038;sidx=151&#038;sopp=25#authorbio" target="_blank"><em>an unrelated article</em></a><em>)&#8230;</em>) support certification, and a huge lot of good people think that either the software testing arena is immature to certify, or the certifications out there are inadequate, or both (<a href="http://www.satisfice.com/blog/archives/36" target="_blank"><em>James Bach</em></a><em>, </em><a href="http://www.developsense.com/2007/12/why-i-am-not-yet-certified-eurostar.html" target="_blank"><em>Michael Bolton</em></a><em>, </em><a href="http://blogs.msdn.com/james_whittaker/archive/2008/09/11/on-certificiation.aspx" target="_blank"><em>James Whitaker</em></a><em>, </em><a href="http://www.kaner.com/pdfs/OpenCertRequirements.pdf" target="_blank"><em>Cem Kaner</em></a>&#8230;). For transparency&#8217;s sake (<em>so you get the context of this rambling</em>), while I admire and have learned a lot from the first ones, the last ones are personal heroes (<em>ok, Michael Stahl is a hero+guru too <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>).</p>
<p>So we did not even come to an agreement if the craft itself is certifiable, and you are talking about certifiable persons? How does that work?</p>
<p>.</p>
<p>.<br />
At this moment I stopped musing and went to the <a href="http://www.visualthesaurus.com/" target="_blank">dictionary</a>:</p>
<p><img alt="certifiable.jpg" src="http://testing.gershon.info/wp-content/uploads/certifiable.jpg" /><br />
Ok, my guess on the meaning of the work was correct: &#8220;<font face="courier new">a certifiable fact</font>&#8220;, &#8220;<font face="courier new">capable of being guaranteed</font>&#8220;.<br />
So was the other meaning, about certifiable persons: &#8220;<font face="courier new">endorsed authoritatively as having met certain requirements</font>&#8221; (<em>in our case, an exam with multiple choice memory questions</em> <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).<br />
But wow. That one in the middle is a curious meaning! &#8220;<font face="courier new">fit to be certified as insane (and treated accordingly)</font>&#8221;<br />
<strong>Certifiable == Insane.</strong> And while I don&#8217;t see a problem with insane people being ISTQB certified and vice-versa, it made it even a weirder word choice.</p>
<p>I had to search more in the internet to see that this &#8220;are you certifiable&#8221; idiom is a bit common in english. Microsoft even has a game with this name <a href="http://www.microsoft.com/click/areyoucertifiable/" target="_blank">here</a>.</p>
<p>So it was a joke! Ah, all a joke, but they kept me thinking.<br />
I guess that most of the non-native speakers of the SQE newsletters didn&#8217;t get the joke. And they were this close to being offended (<em>depends on the culture one comes from</em>).<br />
SQE (<em>and all</em>), it was good as an excuse for me to post the links for certification articles, but pay attention to your publications&#8217; audience! It takes a lot of time to get your jokes overseas <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200902/on-certified-testers-and-being-certifiable-and-on-non-native-english-speakers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Insights &#8211; The Graphing Calculator</title>
		<link>http://testing.gershon.info/200902/testing-insights-the-graphing-calculator/</link>
		<comments>http://testing.gershon.info/200902/testing-insights-the-graphing-calculator/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 10:44:59 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Annotations]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20090213/testing-insights-the-graphing-calculator/</guid>
		<description><![CDATA[I&#8217;ve recently heard The Graphing Calculator Story, a ~54:00 min long Google Tech video on YouTube. On it, Ron Avitzur tells the story of the development of his (and Greg&#8217;s) Graphing Calculator, an impressive mathematical software that shipped with Mac computers for years. What&#8217;s special about the story? Well, he did it at Apple, but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently heard <a href="http://www.youtube.com/watch?v=Dl643JFJWig" target="_blank">The Graphing Calculator Story</a>, a ~54:00 min long Google Tech video on YouTube. On it, Ron Avitzur tells the story of the development of his (<em>and Greg&#8217;s</em>) <a href="http://www.PacificT.com/Products.html" target="_blank">Graphing Calculator</a>, an impressive mathematical software that shipped with Mac computers for years.<br />
What&#8217;s special about the story? Well, he did it at Apple, but for free (<em>his contract was already closed</em>), and in secret (<em>Apple had cancelled the project</em>). As he says, sneaking into the building and volunteering for an eight billion dollar corporation. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I enjoyed the story very much. It is very exciting to see the passion he had (<em>has</em>) for his software and how he was committed to it. Plus, Ron is a great story teller.<br />
The graphing calculator had all the ingredients of a cool app. It <a href="http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s02.html" target="_blank">scratched a developer&#8217;s personal itch</a>, and is a great example of <a href="http://markbernstein.org/NeoVictorian.html" target="_blank">NeoVictorian computing</a>: built for people, built by people, crafted in workshop, inspired.<br />
Actually, if we&#8217;re commenting on NeoVictorianism, Ron was one that really &#8220;<font face="times">woke up one day to find himself <a href="http://markbernstein.org/NeoVictorian.html" target="_blank">living in the software factory</a></font>&#8220;. The night got very cold, they said the factory is going to close and he should move somewhere else. The cool part? He kept doing his individual craftsmanship inside the corporation. Secretly.</p>
<p><span id="more-46"></span></p>
<p>Now to our matter, testing. He&#8217;s got some very good comments on Software Testing (<em>which he calls in the story as QA. Not his fault, but ours</em>). So nice comments, that I&#8217;ll just transcript:<br />
At (<em>~20:24</em>), &#8220;<font face="times">Our biggest problem was QA</font>&#8220;. &#8220;<font face="times">Fundamentally, you can&#8217;t do your own QA &#8212; it&#8217;s a question of seeing your own blind spots</font>&#8220;, and &#8220;<font face="times">it is expensive to do it well</font>&#8220;.<br />
At a moment in the story, two testing engineers came to offer help, as in their official work &#8220;<font face="times">they were really bored because they spend lots of times developing automatic test tools and now they&#8217;re at the point where they push the button and the test starts in the morning and they come back in the evening to see which API&#8217;s break</font>&#8220;.<br />
These testers were successful because they badly wanted to explore the new software, and also because they had good mathematical experience/background &#8212; closely fit skilled testers!</p>
<p>Ron later speaks about usability (<em>~35:57</em>).<br />
He describes the process of the usability studies they conducted after they&#8217;ve been programming with users in mind. Ron (<em>which understands well the importance of usability: &#8220;<font face="times">In a classroom, any time spent frustrated with the computer is time taken away from teaching</font>&#8220;</em>) says that even after all the attention to usability they had, they were surprised by the results of the study: &#8220;<font face="times">Sitting behind a two-way mirror, watching first-time users struggle with our software, reminded me that programmers are the least qualified people to design software for novices. Humbled after five days of this, Greg and I went back and painstakingly added feedback to the software, as if we were standing next to users, explaining it ourselves.</font>&#8221; In the movie, he adds that they were &#8220;<font face="times">pounding on the glass</font>&#8221; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  and that &#8220;<font face="times">all engineers should be forced to go through this, watching real users actually trying to use their software</font>&#8220;.</p>
<p>There&#8217;s another interesting comment at the very beginning (<em>~02:30</em>). Ron comments on how straightforward typewriting work was on the firsts Macs, and how a newbie could go from zero to full speed in less than 5 minutes on <a href="http://en.wikipedia.org/wiki/MacWrite" target="_blank">MacWrite</a>.<br />
This is very curious: Even today, the computer is more useful as a typewriter than anything else. The uses had varied much, and nowadays professionals use the computer for every nitty-gritty important detail, but still, the first thing that comes to mind to most people when they think &#8220;computer&#8221; is &#8220;writing&#8221;. From journals to books to presentations, my perception is that the only thing people can do (<em>on a computer</em>) with no complex instructions is publishing. Want to <a href="http://en.wikipedia.org/wiki/Desktop_publishing" target="_blank">publish</a>? Open this app and start typing. But you want to <a href="http://en.wikipedia.org/wiki/3D_software" target="_blank">render a 3D object</a>? <a href="http://www.lsba.org/2007MemberServices/LOMAPMaterial/Picking%20the%20Best%20Law%20Office%20Software.pdf" target="_blank">Search for a court lawsuit</a>? Build a <a href="http://en.wikipedia.org/wiki/Database_software" target="_blank">repository of data</a>? Out of luck, will take years to learn it well.<br />
Our hardware has evolved, and the purposes we use the computer for have changed too. But the form has stayed the same as 30 years ago. And (<em>not</em>) surprisingly, the interfaces of our apps still resemble the interface of that first MacWrite. Time to change how we interact with computers? I hope so. <a href="http://www.sciencedaily.com/" target="_blank">Science Daily</a> had long ago an <a href="http://www.sciencedaily.com/releases/2002/10/021010072402.htm" target="_blank">article</a> that said &#8220;<font face="times">While much about the computer has changed over the last three decades–greater power, faster speeds, more memory&#8230; – what has not changed is the user interface.</font>&#8221; They offered a <a href="http://en.wikipedia.org/wiki/Gesture_recognition" target="_blank">gesture interface</a> proposition, and other technologies like <a href="http://en.wikipedia.org/wiki/Multi-touch" target="_blank">multitouch</a> or <a href="http://en.wikipedia.org/wiki/Brain-computer_interface" target="_blank">brain-controlled interfaces</a> are being researched. From my part, I&#8217;m ready to test the new paradigm as soon as it&#8217;s ready <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>This is the <a href="http://www.youtube.com/watch?v=Dl643JFJWig" target="_blank">full video</a>, this is the link for the <a href="http://www.pacifict.com/Story/" target="_blank">graphing calculator storry in text form</a> (<em>10 min instead of 55 <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>), and go here for a <a href="http://www.youtube.com/watch?v=yJKZERN5mt4" target="_blank">demo of the product</a> at Apple&#8217;s launch.</p>
<p>Enjoy, and please let know your testing thoughts in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200902/testing-insights-the-graphing-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stuart&#039;s introductions to Fitnesse, FitNesse Series (Part 2)</title>
		<link>http://testing.gershon.info/200811/stuarts-introductions-to-fitnesse-fitnesse-series-part-2/</link>
		<comments>http://testing.gershon.info/200811/stuarts-introductions-to-fitnesse-fitnesse-series-part-2/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 13:47:07 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[FitNesse]]></category>
		<category><![CDATA[Nerd T35t1ng]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20081128/stuarts-introductions-to-fitnesse-fitnesse-series-part-2/</guid>
		<description><![CDATA[Hi. Writing the Fitnesse posts turned to be harder than I thought. I do have a bit of tests ready for the triangle case, but not enough text to make an interesting post. As I&#8217;m not using Fitnesse in my day-to-day work, it makes it harder to bring cool insights or to explore on the framework. But [...]]]></description>
			<content:encoded><![CDATA[<p>Hi.</p>
<p><a href="http://testing.gershon.info/category/nerd-t35t1ng/fitnesse">Writing the Fitnesse posts</a> turned to be harder than I thought.<br />
I do have a bit of tests ready for the triangle case, but not enough text to make an interesting post. As I&#8217;m not using Fitnesse in my day-to-day work, it makes it harder to bring cool insights or to explore on the framework.</p>
<p>But I just discovered someone who not only uses Fitnesse at work, but also writes articles about Fitnesse that give the Fitnese feeling:</p>
<p><span id="more-44"></span>Stuart writes at <a href="http://working-thought.blogspot.com/">http://working-thought.blogspot.com/</a>.<br />
It seems as if his company has been trying Fitnesse for a while, and they&#8217;re over the initial pains. Now they&#8217;re on more advanced pains <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , but with apparently good results.</p>
<p>If you &#8216;ve already seen the <a href="http://fitnesse.org/FitNesse.TwoMinuteExample" target="_blank">Two Minute Example</a> at the <a href="http://fitnesse.org/">Fitnesse page</a>, then you know what Fitnesse if used for.<br />
Then start reading from &#8220;<a href="http://working-thought.blogspot.com/2008/06/fitnesse-for-dummies.html">Fitnesse for Dummies</a>&#8221; at Stuart&#8217;s blog (<em>and laugh at the ilarious GenericFixture.jar error page</em>). There are further posts later, like the very insightful <a href="http://working-thought.blogspot.com/2008/10/i-hate-fitnesse-fitnesse-rocks.html">love/hate relationship</a> with Fitnesse.</p>
<p> </p>
<p>As for me, the post I liked most was the one about <a href="http://working-thought.blogspot.com/2008/06/automate-this.html">test automations</a>, that has nothing to do with Fitnesse, but explains well many of the web-app testing tasks.</p>
<p>I wish luck to Stuart, and who knows? Maybe I&#8217;ll get back at posting about Fitnesse somewhen. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200811/stuarts-introductions-to-fitnesse-fitnesse-series-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testers don&#039;t think like Developers think like Computers</title>
		<link>http://testing.gershon.info/200806/testers-dont-think-like-developers-think-like-computers/</link>
		<comments>http://testing.gershon.info/200806/testers-dont-think-like-developers-think-like-computers/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 20:10:28 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Annotations]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20080616/testers-dont-think-like-developers-think-like-computer/</guid>
		<description><![CDATA[We all are told constantly not to think like a programmers. We&#8217;ve told other people dozens of times &#8220;Don&#8217;t you think like a programmer. We don&#8217;t care why the software does it &#8211; it is still wrong&#8221;. For testers, thinking like developers is evil. If you think like a programmer, you&#8217;ll start excusing the software [...]]]></description>
			<content:encoded><![CDATA[<p>We all are told constantly not to think like a programmers.<br />
We&#8217;ve told other people dozens of times &#8220;Don&#8217;t you think like a programmer. We don&#8217;t care <strong>why </strong>the software does it &#8211; it is still wrong&#8221;.</p>
<p><a href="http://www.amazon.com/gp/product/1400082471?ie=UTF8&#038;tag=testithoug-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1400082471"><img title="Dreaming in Code" alt="Dreaming in Code" src="http://ecx.images-amazon.com/images/I/51Klh6hn1KL._SL160_.jpg" align="right" /></a></p>
<p>For testers, thinking like developers is evil. If you think like a programmer, you&#8217;ll start excusing the software and will forgive the system&#8217;s bugs.</p>
<p>I am reading the very cool book &#8220;Dreaming in Code&#8221; by Scott Rosenberg, and I just understood a little bit more on why&#8217;s so bad sharing the developers mindset.</p>
<p><span id="more-36"></span></p>
<p>Scott starts its book with Chapter 0, a common practice in computer literature. When enumerating the reasons, he explains that &#8220;Programmers count from zero, not from one. (&#8230;) Why do programmers count from zero? Because computers count from zero!&#8221; and that developers are taught to think like computers.</p>
<p>This is a very interesting and basic concept.<br />
Dr. Parnas in his &#8220;Strategic Defense System&#8221; paper (<em>a real favorite of mine</em> <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) has a whole chapter called <strong>Why conventional software development does not produce reliable programs</strong>, in which he clarifies this problem &#8212; developers thinking (<em>or trying to think</em>) like a computer:</p>
<blockquote><p>As we continue in our attempt to &#8220;think like a computer&#8221;, the amount we have to remember grows and grows. The simple rules defining how we got to certain points in a program become more complex as we branch there from other points. (&#8230;) Because one needs to remember so much (&#8230;), new problems are created when old problems are corrected.</p></blockquote>
<p>The beauty in all this is that Testers should not exercise the programming rationale (<em>when analyzing a software</em>) because they&#8217;ll be mimicking the rationale of the very same software they are testing. They are limiting themselves to what the program knows about itself, instead of expanding their logic to people-centered matters &#8212; i.e. how the software will be used and what it is really meant to do.</p>
<p>Back to &#8220;Dreaming in Code&#8221;, Scott has an almost poetical way of writing the concepts developed by Dr. Parnas.<br />
Because computers think from zero, &#8220;programming include little offsets, translations of &#8216;+1&#8242; or &#8216;-1&#8242;&#8221;, he says. So:</p>
<blockquote><p>There&#8217;s a space between (&#8230;) the way the machine counts and thinks and the way we count and think. When you search for explanations for software&#8217;s bugs and delay and stubborn resistance to human desires, that space is where you&#8217;ll find them.</p></blockquote>
<p>Poetry. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200806/testers-dont-think-like-developers-think-like-computers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Set the butterflies free &#8211; now I am collecting quotes</title>
		<link>http://testing.gershon.info/200806/set-the-butterflies-free-now-i-am-collecting-quotes/</link>
		<comments>http://testing.gershon.info/200806/set-the-butterflies-free-now-i-am-collecting-quotes/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 19:59:17 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Test Annotations]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20080608/set-the-butterflies-free-now-i-am-collecting-quotes/</guid>
		<description><![CDATA[I&#8217;ve started a quote collection. Many times I want to quote someone but I just don&#8217;t remember how exactly the phrase was. Or remember the quote but am not certain on the source&#8230; I am fond of quoting. Not sure why, but I like to quote. I guess it gives some legitimating to what I am saying. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started a quote collection. Many times I want to quote someone but I just don&#8217;t remember how exactly the phrase was. Or remember the quote but am not certain on the source&#8230;</p>
<p>I am fond of quoting.<br />
Not sure why, but I like to quote. I guess it gives some legitimating to what I am saying. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, the quote collection is available at this address: <a href="http://testing.gershon.info/quote-collection/">http://testing.gershon.info/quote-collection/</a>. It will grow slowly, please check it regularly.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200806/set-the-butterflies-free-now-i-am-collecting-quotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BotT: Excel 2007 has algebra difficulties&#8230;</title>
		<link>http://testing.gershon.info/200805/33/</link>
		<comments>http://testing.gershon.info/200805/33/#comments</comments>
		<pubDate>Sun, 04 May 2008 22:40:20 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>
		<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20080504/33/</guid>
		<description><![CDATA[Do you use MS Office 2007? Well, then you probably noticed that Excel multiplies &#8220;850 x 77.1&#8243; as &#8220;100,000&#8243; instead of &#8220;65,535&#8243;. Uh, you didn&#8217;t notice? Well neither did I until I read it all over the internet. See the post on SlashDot for scoop, and see its comments for some good laughs. There are [...]]]></description>
			<content:encoded><![CDATA[<p>Do you use MS Office 2007?<br />
Well, then you probably noticed that Excel multiplies &#8220;850 x 77.1&#8243; as &#8220;100,000&#8243; instead of &#8220;65,535&#8243;.</p>
<p>Uh, you didn&#8217;t notice? Well neither did I until I read it all over the internet.<br />
See <a title="the post on SlashDot" href="http://it.slashdot.org/article.pl?sid=07/09/24/2339203" target="_blank">the post on SlashDot </a>for scoop, and see <a title="SlashDot comments" href="http://it.slashdot.org/comments.pl?sid=307215&#038;threshold=1&#038;commentsort=0&#038;mode=thread&#038;pid=0" target="_blank">its comments</a> for some good laughs. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There are explanations all around about how this bug came to appear in Excel.<br />
The best one is probably <a title="Explaining the Excel Bug" href="http://www.joelonsoftware.com/items/2007/09/26b.html">Joel&#8217;s one</a> (<em>you may remember Joel from </em><a title="my post on Joel on Software" href="http://testing.gershon.info/20070425/annotated-joel-on-software-bad-reasons-not-to-test/"><em>this post</em></a>).<span id="more-33"></span></p>
<p>Go and read it. Joel is very deep in there and explains why the binary calculations can be confusing, and how the binary notation standards may or not help you developing better software.</p>
<p>I say &#8220;<em>go and read it</em>&#8221; because I&#8217;ll not repeat his explanation here <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
I will, however, quote the best parts from the questions at the end &#8212; very insightfull!</p>
<p>First insight is a matter for pondering about bugs, small bugs and the perils of fixing such:</p>
<blockquote><p><strong>Q: Isn&#8217;t this really, really bad?<br />
</strong>A: IMHO, no, the chance that you would see this in real life calculations is microscopic. Better worry about getting hit by a meterorite. Microsoft, of course, will be forced to tell everyone &#8220;accuracy is extremely important to us&#8221; and I&#8217;m sure they&#8217;ll have a fix in a matter of days, and they&#8217;ll be subjected to all kinds of well-deserved ridicule, but since I don&#8217;t work there I&#8217;m free to tell you that the chance of this bug actually mattering to you as an individual is breathtakingly small.<br />
(&#8230;)<br />
And let&#8217;s face it &#8212; do you really want the bright sparks who work there now, and manage to break lots of perfectly good working code &#8212; rewriting the core calculating engine in Excel? Better keep them busy adding and removing dancing paper clips all day long.</p></blockquote>
<p>Second insight, on the perils of automated tests (<em>an automated test sees only what you ask it to see, hence it has blind spots and will not report for side-effects!</em>).<br />
(<em>Of course, as Joel says, it is doubtfull that manual tests would ever exercise rare/random calculations</em>):</p>
<blockquote><p><strong>Q: Shouldn&#8217;t they be testing for these kinds of things?</strong><br />
A: I&#8217;ll bet that most of the numeric testing done on the Excel team is done automatically with VBA code. Cells containing this value display as 100,000, but from VBA, they&#8217;re going to look like 65,535 (since the number would be passed into the Basic runtime in binary, before the display formatting.) I&#8217;m sure there&#8217;s plenty of code to test display formatting, but with a bug like this that only happens on 12 out of 18446744073709551616 possible floating point binary numbers, it&#8217;s unlikely that any set of black-box tests would cover this case.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200805/33/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Triangle problem as a starting point &#8211; FitNesse Series (Part 1)</title>
		<link>http://testing.gershon.info/200707/the-triangle-problem-as-a-starting-point-fitnesse-series-part-1/</link>
		<comments>http://testing.gershon.info/200707/the-triangle-problem-as-a-starting-point-fitnesse-series-part-1/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 19:14:46 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[FitNesse]]></category>
		<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20070704/the-triangle-problem-as-a-starting-point-fitnesse-series-part-1/</guid>
		<description><![CDATA[Which came first, the chicken or the egg? And after all, why would any of them cross the road? That question is as old as time. How would you test a program which can return the type of a triangle based on the side widths? That question is as old as me. In 1979 (yes, I [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Which came <strong>first, the chicken or the egg</strong>? And after all, why would any of them cross the road?<br />
That question is as old as time.</li>
<li>How would you test <strong>a program which can return the type of a triangle based on the side widths</strong>?<br />
That question is as old as me.</li>
</ul>
<p><a title="The Art of Software Testing" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fo%2FASIN%2F0471469122%3Fpf%5Frd%5Fm%3DATVPDKIKX0DER%26pf%5Frd%5Fs%3Dcenter-6%26pf%5Frd%5Fr%3D0TD64REN2A91HA0GT9Y6%26pf%5Frd%5Ft%3D101%26pf%5Frd%5Fp%3D278843901%26pf%5Frd%5Fi%3D507846&#038;tag=testithoug-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325" target="_blank"><img id="image14" height="96" alt="The Art of Software Testing cover image" src="http://testing.gershon.info/wp-content/uploads/theartoofsoftwaretesting.jpg" /></a>In 1979 (<em>yes, I am that young <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em>), <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fexec%2Fobidos%2Fsearch-handle-url%3F%255Fencoding%3DUTF8%26search-type%3Dss%26index%3Dbooks%26field-author%3DGlenford%2520J.%2520Myers&#038;tag=testithoug-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Glenford J. Myers</a><img style="margin: 0px; border: medium none" height="1" src="http://www.assoc-amazon.com/e/ir?t=testithoug-20&#038;l=ur2&#038;o=1" width="1" border="0" /> wrote what was to be the first classic book on Software Testing.<br />
Called &#8220;<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fo%2FASIN%2F0471469122%3Fpf%5Frd%5Fm%3DATVPDKIKX0DER%26pf%5Frd%5Fs%3Dcenter-6%26pf%5Frd%5Fr%3D0TD64REN2A91HA0GT9Y6%26pf%5Frd%5Ft%3D101%26pf%5Frd%5Fp%3D278843901%26pf%5Frd%5Fi%3D507846&#038;tag=testithoug-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">The Art of Software Testing</a><img style="margin: 0px; border: medium none" height="1" src="http://www.assoc-amazon.com/e/ir?t=testithoug-20&#038;l=ur2&#038;o=1" width="1" border="0" />&#8220;, this book is very old, and written with old software in mind &#8211; most technologies and methodologies existing today were not dreamed of back then.<br />
Well, it turns out the principles of software &#8211; <em>from writing it to testing it</em> - are still pretty much the same. Software is still written on sort of punchcards, the punchcards just got more complex and flexible&#8230; <strong>The book content is surprisingly relevant for today&#8217;s testers</strong> &#8211; so much, that it was updated only once in almost 30 years.<br />
<strong>If you haven&#8217;t, read the book.</strong> Unfortunately, I have read it only partially meanwhile.</p>
<p>Maybe the most known contribution of Mr. Glenford in this book is the <strong>testing self-assessment challenge</strong> in the introduction.</p>
<p><span id="more-13"></span>It goes like this:</p>
<blockquote><p>A Software is given, which receives three inputs (<em>numbers</em>) that define the size of a triangle&#8217;s sides. The SW can, then, categorize the triangle in one of these categories: Equilateral, Scalene, Isosceles or Invalid.<br />
How many test cases can you build for testing this triangle?<br />
The more heterogeneous the cases the better, and: The more effective, better yet.</p></blockquote>
<p>Myers brings then an assessment criteria. If the test cases you came up fit into enough categories such as the ones below, you are in a good way:</p>
<ul>
<li>Test cases that represents a valid scalene/isosceles/equilateral triangle.</li>
<li>Test cases that represent valid isosceles triangles such that there are all three permutations of two equal sides.</li>
<li>Test cases in which one side has a zero value, or negative value.</li>
<li>Test cases that represent invalid triangles.</li>
<li>&#8230; </li>
</ul>
<p>The example is famous, because it grasps clearly the distance between coding and testing. Writing such a program may take about 30 minutes of work to a programmer (<em>I did <a href="http://testing.gershon.info/wp-content/uploads/Triangle_FitNesse_Part01.cs" target="_blank" class="broken_link">this first version</a> in 20 minutes</em>), but testing the program can be a never-ending task.</p>
<hr />How would we use Triangle Problem?           </p>
<p>We will use this problem as the <strong>example to do all the acceptance tests from FitNesse</strong>.</p>
<p>We&#8217;ll have this DLL &#8211; based on <a href="http://testing.gershon.info/wp-content/uploads/Triangle_FitNesse_Part01.cs" target="_blank" class="broken_link">the C# code above</a> &#8211; and we will connect this to our FitNesse server. We will then start checking inputs and outputs. All this in Part 2 of the FitNesse Series!</p>
<hr />The triangle exercise is now all over the internet.<br />
You can read about it in the following links:            </p>
<ol>
<li><strong>Google Search &#8211; &#8220;software testing triangle equilateral&#8221;<br />
</strong><a href="http://www.google.com/search?q=%22software+testing%22+triangle+equilateral">http://www.google.com/search?q=%22software+testing%22+triangle+equilateral</a><br />
You&#8217;ll find most of what&#8217;s online and cool here.</li>
<li><strong>Example with working application (!) for you to test:<br />
</strong><a href="http://www.testobsessed.com/2007/03/21/testing-triangles-a-classic-exercise-updated-for-the-web/">http://www.testobsessed.com/2007/03/21/testing-triangles-a-classic-exercise-updated-for-the-web/</a><br />
Quality Tree Software&#8217;s Elisabeth brought the triangle to the   attention of all again when she posted it on her website.<br />
The working example by Elisabeth: <a href="http://www.testobsessed.com/exercises/triangle.html">http://www.testobsessed.com/exercises/triangle.html</a></li>
<li><strong>Challenge Definition by Alex Samurin<br />
</strong><a href="http://www.geocities.com/xtremetesting/TriangleTest.html">http://www.geocities.com/xtremetesting/TriangleTest.html</a><br />
Alex has a short explanation of the original problem as it was presented by Myers.</li>
<li><strong>Malik&#8217;s Code Inspections<br />
</strong><a href="http://codeinspections.blogspot.com/">http://codeinspections.blogspot.com/</a><br />
Malik summarizes in two paragraphs the two most interesting points on the abovementioned application by Elisabeth: Floating point calculations and sorting algorithms.</li>
<li><strong>The exercise, Bollywood style <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
</strong><a href="http://venkatreddyc.wordpress.com/2007/03/24/taking-on-testing-triangles-a-classic-excercise/">http://venkatreddyc.wordpress.com/2007/03/24/taking-on-testing-triangles-a-classic-excercise/</a><br />
Venkat has written some insights (<em>in a dramatic voice</em>) on the triangle javascript app. I recommend this one, because the pace and steps are <u>very didactic</u>.</li>
<li>Last but not least <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> :<br />
<strong>My post on it</strong>: <a title="A Triangle mystery (not the Bermuda's)" href="http://testing.gershon.info/a-triangle-mystery-not-the-bermudas/">A Triangle mystery (not the Bermudas&#8217;)</a>. I turned this post into a page/article, &#8217;cause it is a useful subject.<br />
Pay attention, I am not trying to really test the triangle application. This is new stuff &#8211; we are using the triangles to test the FitNesse framework! Go for it!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200707/the-triangle-problem-as-a-starting-point-fitnesse-series-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FitNesse Series in Testing Thoughts (Part 0)</title>
		<link>http://testing.gershon.info/200703/fitnesse-series-in-testing-thoughts-part-0/</link>
		<comments>http://testing.gershon.info/200703/fitnesse-series-in-testing-thoughts-part-0/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 22:44:47 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[FitNesse]]></category>
		<category><![CDATA[Nerd T35t1ng]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20070510/fitnesse-series-in-testing-thoughts-part-0/</guid>
		<description><![CDATA[Do you FitNesse? I&#8217;ll (as soon as I get to do a lot of things I want to get done) post some impressions and examples on FitNesse, the cool tool for cool testers. What I plan to do: Install and set a FitNesse setup; Make a simple standard easy program &#8211; the System Under Test! Start [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Do you FitNesse?</strong></p>
<p>I&#8217;ll (<em>as soon as I get to do a lot of things I want to get done</em>) post some impressions and examples on FitNesse, the cool tool for cool testers.</p>
<p><strong>What I plan to do:</strong></p>
<ol>
<li>Install and set a FitNesse setup;</li>
<li>Make a simple standard easy program &#8211; the System Under Test!</li>
<li>Start testing and making the program better with FitNesse.</li>
<li>And <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  all this, with screenshot goodness!</li>
</ol>
<p><strong>When will that be?</strong></p>
<ul>
<li>Ouch. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  It may take a long time. Let&#8217;s talk about this again on July&#8230;</li>
</ul>
<p><strong>Meanwhile:</strong> &#8220;FitNesse is designed to support acceptance testing rather than unit testing in that it facilitates detailed readable description of system function&#8221;. More information can be read in <a href="http://www.fitnesse.org/" target="_blank">FitNesse&#8217;s website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200703/fitnesse-series-in-testing-thoughts-part-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

