<?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; Ask the Tester</title>
	<atom:link href="http://testing.gershon.info/category/ask-the-tester/feed/" rel="self" type="application/rss+xml" />
	<link>http://testing.gershon.info</link>
	<description>Things to share about Software Testing</description>
	<lastBuildDate>Tue, 11 May 2010 22:40:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Should/Need Testers know how to Program (a Testing Question from Brazil)</title>
		<link>http://testing.gershon.info/201003/testers-know-how-to-program/</link>
		<comments>http://testing.gershon.info/201003/testers-know-how-to-program/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 23:55:16 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Ask the Tester]]></category>
		<category><![CDATA[Test Annotations]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[diversity]]></category>
		<category><![CDATA[knowledge]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[qualification]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[tester]]></category>
		<category><![CDATA[testers]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/?p=139</guid>
		<description><![CDATA[There&#8217;s a very active Brazilian software testing discussion mailing list in Portuguese, called DFTestes. When I say &#8220;very active&#8221;, I mean an average of 215 messages/month in 2009, and January 2010 has got more than 404 messages. Compared with other mailing list I participate, this is the most active one, and a tip of hat [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-278" title="coding" src="http://testing.gershon.info/wp-content/uploads/2010/03/program_code_s-250x250.jpg" alt="" width="250" height="250" />There&#8217;s a very active Brazilian software testing discussion mailing list in Portuguese, called <a href="http://br.groups.yahoo.com/group/DFTestes/">DFTestes</a>.<br />
When I say &#8220;very active&#8221;, I mean an average of 215 messages/month in 2009, and January 2010 has got more than 404 messages. Compared with other mailing list I participate, this is the most active one, and a tip of hat goes to the testers and list-admins that make the discussions interesting and vibrant.</p>
<p>Recently a <a href="http://br.groups.yahoo.com/group/DFTestes/message/6762">big argument was held</a> (<em>link in Portuguese, requires registration</em>) on <strong>whether &#8220;testers need to know programming&#8221; or not</strong>. I made some contributions to the discussion, and I&#8217;ll try to translate my point of view to English here.<br />
Please note that there were a lot of people participating, and the post below does not present the entire debate or even an entire opinion, just the messages I wrote as answers. I hope you enjoy them.</p>
<p>The proposed question was:</p>
<blockquote><p>Do testers need programming skills? Until a few years ago, most people would definitely answer NO&#8230; But I&#8217;ve known both people that seek testing jobs as an alternative to coding, and testers that write code routinely. So, do testers need or not to know programming?</p></blockquote>
<p><span id="more-139"></span><br />
&#8212;</p>
<p><strong><span style="text-decoration: underline;">Do testers need programming skills?</span></strong> My comments:<br />
The question as it is posed takes some assumptions that may be incorrect: Saying that &#8220;until a few years ago, most people would definitely answer NO&#8221; is like deciding the answer nowadays is YES <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .<br />
<strong>First</strong>, from other discussions on this (<em>there was one not long ago in the <a href="http://groups.yahoo.com/group/software-testing">software-testing</a> mailing list too</em>), it sounds more like whoever used to say &#8220;NO&#8221; a few years ago still says &#8220;NO&#8221;, and whoever used to say &#8220;YES&#8221; still says &#8220;YES&#8221; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . There was no significant technology or methodology novelty that caused a change in the approach to this (<a href="http://www.satisfice.com/kaner/?p=11"><em>Cem Kaner says</em></a><em> testing practice has evolved only a little over the years</em>).<br />
What does happen is that some people confuse the software testing we (<em>software testers</em>) do with the unit testing and other techniques that enhance and support development (<em>and are mostly done programmatically</em>). It is true that many testers work on this kind of tasks in their day-to-day, but I believe this is far from the essence of our job &#8212; and the <a href="http://www.developsense.com/blog/category/testing-vs-checking/">distinction of testing and checking</a> by <a href="http://www.developsense.com/">Michael Bolton</a> may help understanding that.<br />
<strong>Second</strong>; if anything, the advance of years made testing <strong>without</strong> programming knowledge even <strong>easier</strong>. <a href="http://en.wikipedia.org/wiki/Gerald_Weinberg">Jerry Weinberg</a> describes the tests he did at the beginning of his career as written in punch cards on assembly and given for the machine to execute. At these times, it was much harder (<em>bordering unfeasible</em>) to test an app without knowing to program in the language, or details about the data types and system limitations. With time the advancements in interfaces made it, if anything, much easier to test without programming knowledge. Moreover, most languages are today capable of more or less the same things, so when testing a web page most tests will be similar if it was written in PHP or ASP.NET, and many tests will be similar for an app written on C# or Delphi. And in order to learn about internal details, you don&#8217;t need to know the code either &#8212; memory, performance and process analyzers can help with detailed views about the resources used.</p>
<p>That&#8217;s not to say a tester should not know how to code <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Programming has many advantages to a tester:</p>
<ul>
<li>Being able to understand the type of problems that afflicts applications (<em>knowing &#8220;what the bug is doing to the program&#8221; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>).
<ul>
<li>Knowing about how software is built helps when building a mental model of the software functioning (<em>where does the program makes decisions? when does it asks for resource? how does it communicates with libraries?</em>).
<ul>
<li>Knowledge about the internal code of the application being tested does not necessarily helps, though. At times, this can be harmful as it limits the tests done more than it expands them. But this is another discussion, on the values of Black-Box testing and Glass-Box testing.</li>
</ul>
</li>
</ul>
</li>
<li>Gives the option to automate tasks or functions when these are needed in a test (<em>automated tests, automated loads, automated performance probes&#8230;</em>).
<ul>
<li>And as important, the creation of little tools that aid the testing process (<em>helping quick configuration of a system or gathering data for reports</em>) can help the whole team, and make a tester an important player in the group.</li>
</ul>
</li>
<li>It helps communication with developers. Programmers are human beings that are easy to talk to when you know their language <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230; Being on the same speaking-context as them really helps. And as it happens in many other geek linguistic elites, some programmers will respect code-speakers more than non-speakers.</li>
</ul>
<p>So, should testers know how to program?<br />
Well, it definitely helps in many facets. My non-authoritative answer is that it helps so much that no tester should ignore this area, given the opportunity.</p>
<p>&#8212;</p>
<p>With so many advantages, <strong><span style="text-decoration: underline;">should we hire only the testers that know how to program</span></strong>?</p>
<p><a href="http://en.wikipedia.org/wiki/Cem_Kaner">Cem Kaner</a> commented once that he &#8220;will not accept M.Sc. or doctoral students if they have weak communication skills. My experience is that these are more important, for success in my lab, than programming skills&#8221;. Kaner&#8217;s vision, on the articles that he writes about recruiting (<a href="http://www.amazon.com/Lessons-Learned-Software-Testing-Kaner/dp/0471081124"><em>this book</em></a><em>, and </em><a href="http://www.kaner.com/pdfs/JobsRev4a.pdf"><em>this article</em></a>), is that the teams should be heterogeneous and not everybody should have coding backgrounds &#8212; the &#8220;domain knowledge&#8221; about the area and business of the application are essential for effective tests.<br />
For example, when building a team for testing an app that does stock market transactions, which kind of player would you recruit? People who know how to program, or that know the stock market trade? The best answer, I believe Cem would say, is &#8220;people from both sides&#8221;. Personally, if I had to choose one of the extremes, I would pick the stock market expert. Hey, but he doesn&#8217;t know how to code!! Well, then end user doesn&#8217;t know either.<br />
In the comments to <a href="http://testing.gershon.info/200806/testers-dont-think-like-developers-think-like-computers/">Testers don&#8217;t think like Developers think like Computers</a> I was asked about recruiting programming testers, and this is the answered there (<em>notice the example reuse <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>):</p>
<blockquote><p>Coding isn’t a required background for testers. Coding skills will help on coding tasks, and sometimes with system understanding.<br />
But a diverse background will make the team thrive and explore the system in fruitful ways.<br />
A domain expert can bring much more value than a B.S. in Computer science.<br />
For example, when building an application for trading stocks, a tester with a buying/selling stocks background will find valuable information.<br />
(<em>See lesson 235 in “Lessons Learned in Software Testing” by Cem Kaner, James Bach and Bret Pettichord – “Staff the testing team with diverse background”</em>).</p></blockquote>
<p>Of course, there is no 1-size-fits-all, and different projects may require a different team profile. Just as different managers and different contexts may.<br />
In essence, I would agree that teams should be encouraged to hire non-coder testers. Or, if not encouraged, the practice should be considered perfectly acceptable.</p>
<p>Another point:<br />
When I instruct testers, one of my first instructions is that operating system, programming language or data base limitations don&#8217;t matter. Be careful of *why* the software does the things it does&#8230; What matters is what the user wants, and knowledge about technology limitations can often come in the way.<br />
In his article &#8220;<a href="http://www.developsense.com/blog/2009/09/letter-to-programmer/">A Letter to the Programmer</a>&#8220;, Michael Bolton comments that the limit of text entry in the chat window of Skype is 32768 chars and a little problem he found with that. In the comments, a programmer quickly jumps to say that 32678 is the standard limit with the text_box element! This programmer did not notice that <strong>this doesn&#8217;t matter</strong>. If there is a problem here, a user doesn&#8217;t want to know about API limitations &#8212; and testers with coding skills risk &#8220;believing the system&#8221; instead of &#8220;defending the user&#8221;.</p>
<p>&#8212;</p>
<p>But <strong><span style="text-decoration: underline;">what about TDD and Unit Tests?</span></strong></p>
<p>It was commented in the thread that job opening notices more often than not require knowledge in coding language and in automation tools. From this, one sees that the focus on automation is very strong when recruiting testers. But, is this due to a sincere attempt to increase value? This tendency can very well be focusing cost reduction instead (<em>which is good too, but can be harmful when done wrong</em>).<br />
This brings us back to the confusion commented above about the difference between &#8220;real tests&#8221; and tests (<em>checks</em>) done during programming that enhance and support development (<em>Unit Tests, TDD suites etc</em>). In this video commented on the thread (<a href="http://www.nomedojogo.com/2009/04/08/so-os-imaturos-nao-testam-o-video/"><em>here</em></a><em>, in Portuguese</em>) a programmer explaining <a href="http://en.wikipedia.org/wiki/Unit_testing">unit testing</a> and <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a> maintains that if you have great automatic tests that support your code, you don&#8217;t need a software testing team.<br />
Ouch, that is a big mix-up!<br />
When TDD tests are mixed up with the tests software testers do, testers are being approached as a programmer&#8217;s baby-sitter, looking over the developer shoulders to tell about coding errors. But our real function isn&#8217;t (<em>solely</em>) checking whether the &#8220;if x &lt; 20&#8243; was coded correctly, but to ask whether &#8220;20&#8243; is enough, and in what extreme business conditions there will be 23 required, or when each of these 20 data-structs will need to be bigger.</p>
<p>Programmers make well to test their code thoroughly before releasing for testing, that way we can skip the dumb tests and focus on the real questions the customer is not asking. As it happens, for these questions, most automatic checks are less valuable than manual tests &#8212; be it because the automation will not find a bug again, because these tests do not evolve together with the system, or because the automation is not thinking beyond its code. If one could automate everything a tester does and think, then it would have been done and we testers would be having an easy time supervising robots <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . But you can&#8217;t, sapient testing is a human&#8217;s thing. See what <a href="http://www.satisfice.com/">James Bach</a> writes in his article &#8220;<a href="http://www.satisfice.com/blog/archives/58">Manual Tests Cannot Be Automated</a>&#8220;.</p>
<p>(<br />
<em>Last, full disclosure:<br />
- I have a computer systems development engineer degree, and worked as programmer for many years. Knowing how to program in many languages helps my testing job every day.<br />
- Unrelated to this post, and not depending on me <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , most new hires in my department at work have background and/or formation in programming, this is a prerequisite.<br />
</em>)</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/201003/testers-know-how-to-program/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finding Nemo &#8211; Solving Pradeep&#8217;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/2010/01/cmdnemo.jpg"><img class="alignnone size-full wp-image-122" title="cmdnemo" src="http://testing.gershon.info/wp-content/uploads/2010/01/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">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/2010/02/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>19</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/2009/11/400card.jpg"><img id="image64" alt="400 card" src="http://testing.gershon.info/wp-content/uploads/2009/11/400card.thumbnail.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>2</slash:comments>
		</item>
		<item>
		<title>&#8220;Create your testing portfolio&#8221; presentation</title>
		<link>http://testing.gershon.info/200909/create-your-testing-portfolio-presentation/</link>
		<comments>http://testing.gershon.info/200909/create-your-testing-portfolio-presentation/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 20:05:09 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Ask the Tester]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20090926/create-your-testing-portfolio-presentation/</guid>
		<description><![CDATA[Some colleagues and I do voluntary work at TechCareer, helping immigrants learn matters related to technology and score a career in the Israeli Hi-Tech industry either as programmers or testers. It is a very good project, with nice leaders. My colleague Issi Hazan was asked to teach the ITCQB syllabus to testing-oriented-students at TechCareer, but [...]]]></description>
			<content:encoded><![CDATA[<p>Some colleagues and I do voluntary work at <a title="TechCareer" href="http://www.tech-career.org/" target="_blank">TechCareer</a>, helping immigrants learn matters related to technology and score a career in the Israeli Hi-Tech industry either as programmers or testers. It is a very good project, with nice leaders.</p>
<p>My colleague <a title="Issi Hazan" href="http://testermindset.blogspot.com/" target="_blank">Issi Hazan</a> was asked to teach the ITCQB syllabus to testing-oriented-students at <a href="http://www.tech-career.org/">TechCareer</a>, but he bravely thought of pushing them to real tests instead, even before they find a job &#8211; this would allow them to build experience and get a job more easily (<em>one way to solve the &#8220;<code>hard to get a job without experience, hard to get experience without a job</code>&#8221; problem</em>).<br />
So we built a lecture on how to &#8220;<code>create a tester portfolio</code>&#8220;. We explain how testing can be done even outside an enterprise environment: Lots of Open Source projects are seeking for good information from software testers, and a good record there is certainly sure to help. Crowdsourcing is also a  possible way to work on testing before getting a real job (<em>see two posts on crowdsourced tests </em><a href="http://testing.gershon.info/20090723/about-youtesting-with-utest/"><em>here</em></a><em> and </em><a href="http://testing.gershon.info/20090829/in-august-a-rewrite-of-julys-utest-post-and-maybe-official-feedback/"><em>here</em></a>).</p>
<p>The presentation is available below in <a href="http://www.slideshare.net/sgershon/create-your-tester-portfolio-2042239">flash format</a>, and can be downloaded here: &#8220;<a href="http://testing.gershon.info/wp-content/uploads/2009/09/create_your_tester_portfolio_1-1.pdf"><code>Create your testing portfolio</code></a>&#8220;.</p>
<p><span style="color: #808080; font-size: xx-small;"><object width="400" height="328"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=createyourtesterportfolio11-090922130820-phpapp01"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=createyourtesterportfolio11-090922130820-phpapp01"  type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="328"></embed></object></span></p>
<div id="__ss_2042239" style="text-align: left; width: 425px;"><object style="margin: 0px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" 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://static.slidesharecdn.com/swf/ssplayer2.swf?doc=createyourtesterportfolio11-090922130820-phpapp01&amp;rel=0&amp;stripped_title=create-your-tester-portfolio-2042239" /><embed style="margin: 0px;" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=createyourtesterportfolio11-090922130820-phpapp01&amp;rel=0&amp;stripped_title=create-your-tester-portfolio-2042239" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>But <strong>&#8220;<code>PowerPoint is Evil™</code>&#8220;</strong>, so I feel compelled to write it in real words <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  too.<br />
It goes like this:<span id="more-59"></span></p>
<p><strong><span style="text-decoration: underline;">Introduction</span></strong></p>
<p>If you are searching for your first job in software testing, one of the big challenges you will face is how to have your résumé stand out. Either if this is your first job ever, or you&#8217;re changing career from a different background, the question remains: How can your résumé compete with seasoned testers&#8217;?</p>
<p>The solution to the 1st challenge constitutes your second one: actually acquiring this experience that differentiates the seasoned testers. And this is hard.<br />
People looking for jobs often complain they &#8220;<code>can't get a first job without experience, and can't get experience without getting a first job</code>&#8220;. The logic sounds leak proof solid&#8230; where it not for the fact that, well, most people do get a first job. <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So how can a newbie gain this differentiation?<br />
Many people seek certifications, hoping that the additional line or two in the CV with the uppercase LETTERS will cover for the lack of skills and practice. Now, here&#8217;s a secret: they won&#8217;t.<br />
Certifications do not give you skills or wisdom; they give you a determined lexicon and specific definition for terms. Some employers may want that, but they know it does not equal practice.<br />
Software testing is an art. Young artists do not collect &#8220;<code>painter certifications</code>&#8221; or &#8220;<code>canvas master certifications</code>&#8220;&#8230; What young artists do is paint a lot, toss all the colored canvases in a big binder, and show them to galleries. Gallery owners can through this portfolio see their practice, evolution, style and commitment.</p>
<p>This is our suggestion to you: start testing, and be prepared to explain your tests to prospective employers.</p>
<p><strong><span style="text-decoration: underline;">Meet your Pseudo-Employer</span></strong></p>
<p>Testing without having a tester job sounds farfetched, but it is actually within reach.<br />
Of course, you can enter a bug-hunting-spree and find defects in any software from your desktop or the web. While you can learn techniques and tools this way, this method misses the most important (<em>and fun</em>) part of testing: The interactions.<br />
The interactions with people involved in the software will give you focus on what is important for them to know. It will also redirect your tests as you go with feedback and comments, making sure you are always providing useful data. Last, being in touch with this human side of the software will give you the opportunity to explain, discuss and participate in fix/no-fix decisions &#8211; transforming your findings from simple bugs to valuable information on quality and risks.</p>
<p>And there are many ways to be involved with testing in the development of software.<br />
Here are a few options:</p>
<p><strong>&#8211;&gt; Academy Projects</strong></p>
<p>There is a lot of interesting software being done as final projects for Computer Science graduations. These students do all the work themselves, and they will be certainly glad to have help in testing the software.<br />
One of the great things here is that the interaction is all 1 to 1 and face to face, allowing it to be a closer and more dynamic relationship. Feedback and bug-fixing times are quick; you can suggest a change and then see it done the day after.<br />
Posting your &#8216;testing offer&#8217; as a note in the wallboard, or asking from one of the project mentors to point you a needy student, are all good ways to get started.<br />
And, for what it&#8217;s worth, you may appear in the credits on the project report! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>&#8211;&gt; Open Source</strong></p>
<p><a href="http://sourceforge.net/">Sourceforge</a> has hundreds of thousands of open source software projects under development. You can pick one that suits your interests and limitations by using their filtered search, and you can also take a look at their &#8220;<a href="http://sourceforge.net/people/"><code>Help Wanted</code></a>&#8221; section, which many times ask for help in testing.<br />
The open source community is thirsty for contributors, and they respect sound advice. If you show your competence and are provide consistent views/comments, the community will pay attention &#8211; and they don&#8217;t care about your degree, background or years of experience.<br />
And, for what it&#8217;s worth, you may be given credits (<em>or &#8216;<code>tip of hats</code>&#8216;</em>) on the release notes! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>&#8211;&gt; Crowdsourcing</strong></p>
<p>There are websites where you can receive money for reporting bugs. The two examples I know of: <a href="http://www.utest.com/">uTest</a> and <a href="http://www.flashmobtesting.com/">Flash Mob Testing</a>.<br />
Testing in this environment may pose problems (<em>see </em><a href="http://testing.gershon.info/20090723/about-youtesting-with-utest/"><em>this post</em></a><em> for a list of concerns</em>) and the interaction you have here is by far less involved and meaningful than the previous two options.<br />
We listed this in the slides because the couple dollars are tempting and people may prefer this option over the others.</p>
<p>Note that here, you won’t get public credit for your work, in case you wanted to showcase it in an interview.</p>
<p><strong>&#8211;&gt; Volunteer for a company</strong></p>
<p>This one wasn&#8217;t at the slides&#8217; first version, because I had forgotten about this history completely.<br />
When I was at the university, I had a friend working for a software company, a small one without a testing team. To exercise my &#8216;criticism&#8217; (<em>I didn&#8217;t know I was &#8216;testing&#8217;, back then</em>) I started to write him comments on their webpage and their application, notes that they triaged in their bug meetings and fixed in the next release (<em>sometimes</em>).<br />
So it was volunteer testing for a real company.<br />
(<em>This entire story slipped my mind until 3 weeks ago I had a course in the same building as this company is located. It all came back to memory suddenly: that was my first testing gig!! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em> ).</p>
<p><strong><span style="text-decoration: underline;">In summary</span></strong></p>
<p>There are many ways to test without a testing job. Find or invent the option that better fits you, and start differentiating yourself as a real tester.<br />
Try it! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
With a little work from your side, you can demonstrate to employers your capabilities, style and passion. And having volunteered to test and provide data isn&#8217;t something a recruiting manager sees every day, so it is likely to attract his attention.</p>
<p><strong><span style="text-decoration: underline;">The next steps</span></strong></p>
<p>After you&#8217;ve decided where to start testing, following a consistent way of work will make your testing much more efficient.<br />
The slides include many suggestion on how to get a good start: Follow the forums discussing the software (<em>and ask questions!</em>), be sure to read the bug submitting guidelines so your information is treated with care, and find a lot of bugs <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><span style="text-decoration: underline;">An Alternative</span></strong></p>
<p>When applying for a job, capitalize on the experience you&#8217;ve already got.<br />
Software projects need domain expertise just as they need testing expertise. If you were a stock-broker, a software house developing stock-market software can have great benefit from your testing. If you speak languages, a lot of specific software can benefit from this trait.<br />
See my comment in <a href="http://testing.gershon.info/20080616/testers-dont-think-like-developers-think-like-computers/">this post</a>: The entire experience you bring to a team is valuable; recruiters aren&#8217;t always only looking for super-testing-wizes.</p>
<p><strong>Good luck! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200909/create-your-testing-portfolio-presentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>About youTesting with uTest</title>
		<link>http://testing.gershon.info/200907/about-youtesting-with-utest/</link>
		<comments>http://testing.gershon.info/200907/about-youtesting-with-utest/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 06:51:53 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Ask the Tester]]></category>
		<category><![CDATA[Test Insight]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[professional]]></category>
		<category><![CDATA[professionalism]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[utest]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20090715/utest-or-maybe-udont/</guid>
		<description><![CDATA[(Note: This post,originally from July, was re-written in August. Only format/wording changes, with additions to make it clearer) This is an interesting topic: I’ve been involved lately in many conversations about uTest, or more specifically about its model. uTest is a website where companies can post their software, along with some guidelines on focus areas, [...]]]></description>
			<content:encoded><![CDATA[<p>(<em>Note: This post,originally from July, was re-written in August. Only format/wording changes, with additions to make it clearer</em>)</p>
<p>This is an interesting topic:<br />
I’ve been involved lately in many conversations about uTest, or more specifically about its model.<br />
<a href="http://www.utest.com/">uTest </a>is a website where companies can post their software, along with some guidelines on focus areas, and users around the world can download the app, find bugs and get paid for bugs reported (<em>as long as the bugs are accepted by the posting company</em>).<br />
There is a lot of confusion/discussion around the good parts and the bad parts of the model, so I will share here some of the points I had taken from these conversations (<em>thanks to all the friends who shared insights with me</em>)… Some attentive readers will notice the article is an almost copy paste from a reply in the software-testing group.</p>
<p>Please note that I am <strong>not</strong> saying &#8220;<code>uTest considered harmful</code>&#8221; or &#8220;<code>don’t use uTest</code>&#8221; or anything like that.<br />
Please note that I am <strong>not</strong> saying &#8220;<code>uTest is great</code>&#8221; or &#8220;<code>use uTest</code>&#8221; or anything like that.<br />
All I want to point here are some of the strengths and some of the weaknesses of <strong>the model</strong>, so every one (<em>both testers and companies</em>) can decide for his own context. I welcome debate over any of these points, and will update my post accordingly.<span id="more-56"></span></p>
<blockquote><p><span style="text-decoration: underline;"><strong>&#8211;&gt; (A) Here we go then. Some strenghts of the model:</strong></span></p>
<ol>
<li><strong>Crowdsourcing provides diversity:<br />
</strong>James Whittaker in his &#8220;<code>Future of Testing</code>&#8221; webinar considered this model of testing (<em>there I heard the &#8216;crowdsourcing tests&#8217; term the first time</em>) the next evolution in software testing, as it allows a huge number of testers to test in very diverse environments and configurations.<br />
Full disclosure: The Webinar was given for uTest and at their website.</li>
<li><strong>The managers are nice guys trying to create a nice community.<br />
</strong>In the case of uTest, they have <a href="http://blog.utest.com/">blogs</a> with guest writers such as James Whittaker and others. They are on <a href="http://twitter.com/utest">twitter</a> and occasionally twit a testing article (<em>more often they do brand promotion, which is fine too</em>), they offer bug battles and discussion forums.<br />
And at these venues they do good. I have heard that Doron Reuveni is a really nice guy, and I believe it from his twits and posts.<br />
Of course, people tell me that all this community building is about money and business, but that&#8217;s completely legitimate. I take money for testing at my job, too. Making money doesn&#8217;t make anything bad.</li>
<li><strong>Simplified development cycle:<br />
</strong>For some companies, it appears that crowdsourcing makes their development lifecycle more efficient. See <a href="http://www.computerweekly.com/Articles/2009/07/30/237121/crowdsourcing-slashes-software-testing-time.htm">this article</a> on how crowdsourcing supposedly slashes development time.<br />
The points commented in the article are a bit dangerous, in light of the concerns raised below, but for companies that have yet to build a testing team, starting to receive bugs before the testing team is complete can be a good thing.</li>
</ol>
<p><span style="text-decoration: underline;"><strong>&#8211;&gt; (B) On the other hand, the uTest model has some weaknesses, like:</strong></span></p>
<ol>
<li><strong>&#8220;Software testing&#8221; misinterpretation:<br />
</strong>The idea of this model is &#8216;pay per bug&#8217;. Companies are outsourcing testing by receiving bug reports from the community.<br />
But submitting bugs is only <strong>one part </strong>of the work that a tester does. Testing (<em>functional too</em>) requires involvement with the development life cycle. Testing requires understanding of the user needs and business needs.<br />
By putting the testers far away from the company and their decisions or business view, the testers have little option to ask good questions. They have little space to provide real information about risk (<em>that&#8217;s what testing is about, right?</em>), and thus they are likely to practice poor testing.<br />
Moreover, testers get their money for reporting bugs, so this will become the ultimate purpose of submitting them. In any other context many would agree that bugs aren’t there just to be reported or even just to be fixed — bugs raise questions about the application, about the value it provides and about the general direction the product is going.<br />
When you take the testers out of the fixing decision, you miss this healthy discussion. In this model, if a bug doesn’t get fixed, the tester isn’t probably alerted about this fact. What’s more, the tester may not even care, as he already cashed the bug’s money and “fixing or not fixing is a business decision where we don’t have a say”, right?     And with that, reporting well detailed and complete written bugs isn’t a goal for pay per bug testers too: If you spend valuable time writing a bug report with detailed information, you are not making money! Plus, another person may log this exact bug with a poor report before you finish your perfect report (<em>you don’t receive money in this case</em>).<br />
Sure, the model does not foster or defend bad practices on purpose. But it has its way to motivate them, in a sense.</li>
<li><strong>Poor metrics (<em>paying for bug reported</em>):<br />
</strong>Companies like uTest didn’t invent the &#8220;<code>bug quantity measurement metric</code>&#8220;, of course. It is an old approach that has failed in many places from what I learnt (<em>might’ve been successful in other places</em>) and is definitely not suitable for all contexts.<br />
Even if applying companies receive great comprehensive dashboards displaying different quality aspects of the software, at the end of the day they are only seeing bug numbers.&#8221;You get what you pay for&#8221; — the company is paying for bug quantity and testers (<em>as anyone else</em>) will give you what you measure them for, a large quantity of bugs. It is easy to confuse this data with information about risk or information about value. uTest writes in the Terms of Use: &#8220;<code>uTest makes no promises or warranties as to any specified quality standards, testing coverage, maturity, quality measurements, the general quality of services or feedback, or results provided on or through its website.</code>&#8221; Now, this is only a standard disclaimer, and some may say these measurements are rubbish anyway, but what uTest is saying, in essence, is &#8220;<code>you get only bug numbers, nothing else</code>&#8220;, which is true. Companies must understand that bug reports don&#8217;t make for a quality or value assessment. See <strong>point (C/5)</strong> for a related comment.</li>
<li><strong>Quick and Dirty is rewarded:<br />
</strong>The rules are: time consuming bugs pay the same as quick bugs. From their Terms of Use: &#8220;<code>uTest shall ONLY pay you for bugs reported and approved by the applicable Company and NOT for the time you incurred by analyzing bugs or time incurred for any other purpose.</code>&#8221;<br />
Which type of testers receive a higher score at this model? Testers that report simple bugs will be at higher ranks than the ones that hunt and investigate and find hard bugs.<br />
Consider this together with <strong>point (C/2)</strong>… and you’ll have testers that log a large number of shallow bugs.<br />
This kind of behavior is acquired by whoever practices it… And by the end of the day, some testers with high scores at uTest may have become accustomed to quick and dirty work.And what about bugs that don&#8217;t easily reproduce?<br />
Bugs that don’t always reproduce need special attention and a lot of time invested. Forget about those in crowdsourcing, as more attention equals less money&#8230; One is risking that<strong> t</strong>he ones to find the tricky bugs will be the end customers.</li>
</ol>
<p><span style="text-decoration: underline;"><strong>&#8211;&gt; (C) Some other points should also be considered:</strong></span></p>
<ol>
<li><strong>Bad disputes fostering:<br />
</strong>Any discussion translates into money. And money, being a terrible motive <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , can make disputes between a company and a tester biased on both sides.<br />
Software companies will want fewer bugs, and software testers will want more. None of the two is a good goal, and both can lead to wrong stands.</li>
<li><strong>Bad attitude from testers causing bad results:<br />
</strong>Testers from a &#8216;real world&#8217; project might wish to receive better built software so they can jump into important matters instead of clinging at innumerous surface bugs.<br />
In the pay-per-bug model, testers will leave a mature software to go test an immature one (<em>more bugs = more money</em>)… so the tester tests worse apps and the software company loses the testers exactly when it more needs them (<em>when the app is stabilizing, testers will migrate to a new, immature one</em>).</li>
<li><strong>Disruptive competition between testers:<br />
</strong>In the company I work for, if I share information with a colleague and he uses it to find a bug before me, everybody is happy (<em>as there was a collaborative effort that generated a useful piece of info</em>). Testers in a pay-per-bug competition will be less inclined to share information, as bugs opened by someone else mean less money and less score points.<br />
In their model, you compete with other testers, and this enters the testing culture of the participants. And testers who compete are les useful in a team than testers who collaborate.</li>
<li><strong>The score feedback isn’t objective:<br />
</strong>An award winning uTest tester commented in one of the online discussion that the score for testers doesn’t represent testing skill.<br />
The skill set required to be a good tester isn’t exercised in such simple view of testing as ‘receive the app, try it, list the bugs’.<br />
And also, don’t forget that there’s money involved and this usually undermines objectivity <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .From uTest Terms of Use: &#8220;<code>Testers shall have no right to either control or influence their fee rate or feedback regarding their reputation or success.</code>&#8220;. Of course, here it is simply a technicality, explaining that the decision over what is a bug is in the hand of the software company hiring the tester.<br />
But this is an approach where one cannot get more reputation by learning more skills. Instead, one has to wait until someone decides how good he is, with few chances to appeal. Different people in different companies think differently, and the tester has no control over this process here.</li>
<li><strong>Companies get the wrong picture:<br />
</strong>A large amount of bugs and activity from uTest-like websites is likely to inebriate the software developing company into thinking they’re getting great value (<em>just as a large amount of activity around automation does in other cases</em>).</li>
<li><strong>‘Unfair’ and harmful competition with your in-house testers:<br />
</strong>For companies that do have testers in-house, sending the application to be tested at crowdsourcing models may pose additional problems:<br />
- How do the ‘inside’ testers feel about that?<br />
- What happens when the outside users find bugs they missed?<br />
- And for the same bug… how come someone from the outside get paid for reporting it? What conflict of interest may appear when a tester realizes he can suddenly make money if he (<em>or his wife, or his brother</em>) reports a bug he found during work?<br />
- Does a bug-finding competition affects how the in-house testers do their work?</li>
<li><strong>Update about different types of test:<br />
</strong>The first version of this article said that &#8220;There are companies that value regression tests, for example. As these usually generate fewer bugs, testers at pay-per-bug will not perform them. The same is true with other types of tests that raise questions and not bugs.&#8221;.<br />
<strong>Update:</strong> I recently discovered that companies that want to run regression or a set of specific tests do use uTest. They post the application with a list of scripted tests for people to follow, and pay for the completion of the scripted tests. So there are ways to do these tests.<br />
(<em>However, in one such example that I looked at, there were no bugs reported in the script executions. What would be the results if instead of paying for the tests passing, the company asked for bugs? But this problem isn’t exclusive of uTest, it happens everywhere, I guess <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>)</li>
</ol>
</blockquote>
<p>&#8230;</p>
<p>There may be more and <strong>other points for and against the model</strong>.<br />
Please write them on the comments or in a private mail, get the conversation going on this. I may change my mind on this matter too, why not? <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/200907/about-youtesting-with-utest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
