<?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; Bug of this Time</title>
	<atom:link href="http://testing.gershon.info/category/bug-of-this-time/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>BOtT: Smile, your data is gone!</title>
		<link>http://testing.gershon.info/200906/bott-smile-youre-data-is-gone/</link>
		<comments>http://testing.gershon.info/200906/bott-smile-youre-data-is-gone/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 10:48:32 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20090725/bott-smile-youre-data-is-gone/</guid>
		<description><![CDATA[As most words, &#8220;quality&#8221; has a lot of different meanings to different people. I guess &#8220;Customer Satisfaction&#8221; has a lot of different meanings too. A couple of months ago I tried to access a site (now I don&#8217;t even remember which it was) and was greeted by the note below: Let&#8217;s read that again: &#8220;The [...]]]></description>
			<content:encoded><![CDATA[<p>As most words, &#8220;quality&#8221; has a lot of different meanings to different people.<br />
I guess &#8220;Customer Satisfaction&#8221; has a lot of different meanings too.</p>
<p>A couple of months ago I tried to access a site (<em>now I don&#8217;t even remember which it was</em>) and was greeted by the note below:<span id="more-55"></span><br />
<img id="image53" src="http://testing.gershon.info/wp-content/uploads/2009/06/unsuccessful-hack.JPG" alt="Unsuccessful Hack" /></p>
<p>Let&#8217;s read that again: &#8220;<code>The attack was not successful and our safeguards prevented intrusion</code>&#8220;. Ah, nice. But Mr BudgetHostingWeb, can you explain how, if the intrusion was prevented, how the hell did the &#8220;<code>server's hard drives failed during this process</code>&#8220;?</p>
<p>Maybe the hard disk sensed that an attack was being attempted, and then committed suicidal, in some sort of self-aware sense that &#8220;<code><em>it's better to die than have those hackers get the secret data stored in me!</em></code>&#8221;</p>
<p>(<em>Side note: If you ever had to deal with web hosting service&#8217;s backup, you know it is a nightmare. A service I used once had &#8220;<code>hard drives problems</code>&#8221; too and their last backup was a month old &#8212; even if they had claimed to do daily backups. No, I didn&#8217;t sue, and I think I wasn&#8217;t even surprised (</em><a href="http://www.satisfice.com/blog/archives/224" target="_blank">Quality is Dead</a>, right?<em>), but I did change to a different host later.</em>)</p>
<p>So now we have customers who lost all the data of his website.<br />
If they had good backups, they&#8217;ll be able to upload it with the FTP Upgrade package &#8212; and if they hadn&#8217;t, well, will have to start from scratch.<br />
And this is being communicated to him in such a lousy way… Note that the alert in the page is <strong><span style="text-decoration: underline;">not</span></strong> targeting the site visitors (<em>which do not upload files by FTP</em>), it is targeting the web page owners. Why would an alert to the page owner be glued to the home page of a customer? Maybe because they didn&#8217;t send the communication in any other way?<br />
(<em>Maybe the hard drive with the customer information failed too, who knows?</em>)</p>
<p>And the alert says &#8220;<code>the attack was not successful</code>&#8220;, which is what makes one (<em>me</em>) angry.<br />
Mr BudgetHostingWeb, your customers are unhappy, they had a major data loss, and have to fix it themselves instead of doing business. Please re-write the message to something like &#8220;<code>The attackers succeed to cause failures in some of our hard drives, and unfortunately we don't kept backups of your data. As far as we can discern, no information was stolen, but we are deeply sorry for this inconvenience.</code>&#8221;</p>
<p>Because shaking yourself free of responsibility isn&#8217;t exactly the best experience you can provide your users.</p>
<p>Let&#8217;s sympathize with one of their customer, which is a great practice for software testers:</p>
<p>I did a search on Google to try to find sites that were part of the problem. Even thought a lot of time passed since the incident, Google found three (<em>two of them do not have the text in their sites anymore, Google is outdated too, so it leaves us with only one customer specimen, Free Range Whippets</em>):<br />
<img id="image54" src="http://testing.gershon.info/wp-content/uploads/2009/06/unsuccessful-hack-2.gif" alt="Googled unsuccessful hack" /></p>
<p>Whippets are lovely pretty dogs, and the first link on the screenshot above sports the following notice:<br />
 &#8221;<code><br />
 We regret that our host server was recently the victim of a serious hacking attack.<br />
 The attack was not successful and the safeguards prevented intrusion however the server's hard drives failed during this process.<br />
 All services have now been restored.  Unfortunately, our site was one of those affected, and we need to upload ALL the files again.<br />
 Some links and photos will not work or appear until we re-upload.<br />
 We hope to be fully back online soon but finding <strong>after six years of loading photos, they don't go back up overnight.</strong><br />
 Please visit us again and click all the links! <br />
 Thank you, Lori &amp; The Whippets<br />
 </code>&#8221;</p>
<p>6 years of work, gone! Is that what the safeguards were supposed to do?<br />
The hacker attack wasn&#8217;t successful, but Lori still has got broken links in the whippets&#8217; images <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200906/bott-smile-youre-data-is-gone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BotT: Linus&#8217; bug, youtube no workee!</title>
		<link>http://testing.gershon.info/200810/bott-linus-bug-youtube-no-workee/</link>
		<comments>http://testing.gershon.info/200810/bott-linus-bug-youtube-no-workee/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 15:22:43 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20081009/bott-linus-bug-youtube-no-workee/</guid>
		<description><![CDATA[Hi everybody! The last BotT (Bug of this time) was long ago, when we talked about testing and the Excel bug. So now we&#8217;ve got a cool one, on which the most notable point is not the bug, is the submitter . Bug 439858 on Fedora (a Linux distribution) was (supposedly) submitted by Linus Torvalds himself. [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everybody!</p>
<p>The last BotT (<em>Bug of this time</em>) was long ago, when we talked about <a title="testing and the Excel" href="http://testing.gershon.info/20080504/33/">testing and the Excel</a> bug.<br />
So now we&#8217;ve got a cool one, on which the most notable point is not the bug, is the submitter <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><a title="Bugzilla link" href="https://bugzilla.redhat.com/show_bug.cgi?id=439858" target="_blank">Bug 439858 on Fedora</a> (<em>a Linux distribution</em>) was (<em>supposedly</em>) submitted by Linus Torvalds himself. He <a href="http://groups.google.co.uk/group/comp.os.minix/browse_thread/thread/d939bf395eb8256a/d072fd3a7d407591" target="_blank">started the Linux wave</a> on August 91, and is still posting bugs on March 08 &#8211; you gotta admire him.<br />
I am aware that the submitter signing &#8220;<strong>Linus Torvalds</strong>&#8221; may not be Linus. It actually doesn&#8217;t matter, let&#8217;s just pretend it is for sensationalism&#8217;s sake (<em>regarding the admiration, you still gotta admire him even if the bug&#8217;s not his <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em>).</p>
<p>Let&#8217;s try to analyze the bug report, and the bug itself, to see what we can learn:</p>
<p><span id="more-31"></span>Linus uses a lot of witty comments. The bug starts as &#8220;<strong>youtube no workee</strong>&#8220;, which is a nice way of writing things in a forum or a youtube post, but we should not use such mocking language in our bugs &#8211; jokes or irony in bug descriptions can offend developers, who already have a hard timing accepting their code has got errors. <strong>Cem Kaner alerts: &#8220;it is easy to read a joke or a remark as a flame&#8221;.<br />
</strong>You should not do this especially if you are a leader, influent people or the inventor of the OS &#8212; you are an example, why foment bad practices?</p>
<p>Then there is &#8220;<strong>fedora 9 not usable for wife</strong>&#8220;. That&#8217;s actually a good point. It is easy for programmers to remember that the average user is not tech-savvy and won&#8217;t tolerate complex workarounds. If this is true for common commercial (<em>and Windows</em>) application (<em>where the programmer is interested in the sales to a large audience that expects intuitive software</em>), this can be even more true in the Linux community (<em>where they&#8217;ve got an incredible good will and skills, but sometimes prefer to add features over simplicity</em>).<br />
So explaining the <strong>Customer Impact </strong>in clear language at the beginning of your bug is a very good idea.<br />
Moreover, I don&#8217;t think anyone would want to frustrate Mrs. Linus Torvalds. First because she doesn&#8217;t deserve it, being a nice person with a child-care background, and second because <a href="http://en.wikipedia.org/wiki/Linus_Torvalds#Later_years" target="_blank">she&#8217;s a black-belt</a> Karate champion <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>&#8220;<strong>Steps to Reproduce:<br />
1. Install current Fedora 9<br />
2. Rick-roll!<br />
3. No profit!</strong>&#8221;<br />
Now, these steps to reproduce aren&#8217;t very useful. Even the title of the bug is more descriptive: &#8220;<span class="bz_default_hidden" id="summary_alias_container" style="display: inline"><span id="short_desc_nonedit_display"><strong>swf mozilla plugin &#8211; no youtube</strong></span></span>&#8220;. Everyone laughed at the mention of rick-rolling, but it only added confusion: is this bug related only to the <a title="Rick Rolled!" href="http://www.youtube.com/watch?v=Yu_moia-oVI" target="_blank">Rick-Roll</a> video? Any other video?<br />
Linus added specific info to clarify: &#8220;<strong>I didn&#8217;t try a lot of videos, but I couldn&#8217;t find a single one that actually worked</strong>&#8220;. This point is actually a very good one, which teaches an important principle on bug reporting: There are points that are &#8220;conditions&#8221; to the bug (<em>the bug only reproduces with the conditions fulfilled</em>), and there are points that are &#8221;incidental&#8221; to the bug (<em>a setup or configuration that was true at the time of the bug but we cannot be sure it is part of a condition</em>). It is very important to note the distinction between these when submitting a bug. And, of course, any setting which is neither incidental nor conditional should in most cases be omitted.</p>
<p>&#8220;<strong>Some videos just show a light gray background, some give the play buttons etc,<br />
but in the latter case show only a black screen even when the red ball at the<br />
bottom seems to moves along..</strong>&#8220;. Good! Information that is really related to the bug! Adding the link of videos that show the gray background and videos that show the buttons would be of help here. You (<em>the tester</em>) already visited all of them, why should the programmer search for specific reproductions again?</p>
<p>There&#8217;s some more information in there. The information is a sum of statements that help debugging (<em>&#8220;<strong>youtube videos are supposed to work with swfdec</strong>&#8220;, &#8220;<strong>the adobe player won&#8217;t install on current rawhide</strong>&#8220;</em>), statements that define the impact (<em>&#8220;<strong>wife will kill me if she doesn&#8217;t have her videos</strong>&#8220;</em>) and humorous comments. When you report your next bug, remember to separate these into clear sections: a section to discuss the user impact, and a section for additional debugging info that can be helpful. The humorous section you can leave out <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Le Grande Finale:<br />
&#8220;<strong>&#8220;Obi-wan Kenobi, you&#8217;re our only hope&#8221;</strong>&#8220;. He actually finalized with a Star Wars quote. Which is very cool if you&#8217;re the founder of an open source OS.<br />
They should print this bug as a book. It mixes hackers, nerds, memes, Star Wars and jokes &#8211; receipt for a best seller! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8212;&#8211;</p>
<p>Before you post hate comments on how I dare to criticize Linus: I don&#8217;t. He&#8217;s a hero of mine and accomplished incredible things. I just used his bug for didactic purposes.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200810/bott-linus-bug-youtube-no-workee/feed/</wfw:commentRss>
		<slash:comments>2</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>1</slash:comments>
		</item>
		<item>
		<title>He Who Can Not Be Tested</title>
		<link>http://testing.gershon.info/200708/he-who-can-not-be-tested/</link>
		<comments>http://testing.gershon.info/200708/he-who-can-not-be-tested/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 22:08:42 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>
		<category><![CDATA[Test Insight]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20070818/he-who-can-not-be-tested/</guid>
		<description><![CDATA[Well&#8230; No, you won&#8217;t get this prize either. Read the previous BotT (about a bug in the lottery software) in order to be in the mood for this one. This BotT tells a story. A story about a car dealership that had the great idea of mailing thousands of scratch-off games to promote their business. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Well&#8230; No, you won&#8217;t get this prize either.<br />
</strong>Read the <a title="Lottery bug of that time" href="http://testing.gershon.info/20070509/bott-no-multi-million-dollar-prize-for-you-again/">previous BotT (<em>about a bug in the lottery software</em>)</a> in order to be in the mood for this one.</p>
<p>This BotT tells a story. A story about a car dealership that had the great idea of mailing thousands of scratch-off games to promote their business. What they did not know is that, by mistake, <strong>all of the 50000 cards had a winning notice behind the scratch-off layer.</strong> Instead of having to pay a US$1.000 prize, they soon discovered that they had to pay US$50.000.000!!<br />
Go to this link to read the story, or at least to see the videos of the angry customers that came to demand their US$1.000: <a title="Koat News link" href="http://www.koat.com/news/13716052/detail.html?rss=alb&#038;psp=news">Koat News link</a>.</p>
<p>I am not pointing a finger at any culprit, it is clear that it was a big confusion. And although it is an interesting story, the point that I want to emphasize is: <strong>How do you test a system that can not be executed?</strong></p>
<p><span id="more-22"></span><img id="image24" height="75" alt="Open Matchbox" src="http://testing.gershon.info/wp-content/uploads/2007/08/matchbox1.thumbnail.jpg" />You can not scratch the Scratch-Off cards in order to ensure they are ok. It would render them useless.<br />
Think of it as a matchbox &#8211; once upon a time, there was a blackout on some neighborhood. The head of the family went to the kitchen to bring the matches, so they would have a little light. After failing to light even one single match, the man exclaims: &#8220;I can&#8217;t believe it! I tested each one of these matches just after I bought them!&#8221; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . You get the point: <strong>How do you test a system that can not be executed?</strong></p>
<p>Oh boy, let&#8217;s open a new trend: Process testing.<br />
By process testing I mean testing any deliverable, even if it is not software.</p>
<p>So, how would you test the Scratch-Off cards, without scratching the 50.000 cards? Here are some examples I can jot down quickly:</p>
<ol>
<li><strong>Requirements Review:</strong> Ask if it is clear that 1/50000 should be prized. Ask again, and show it in the contract &#8211; if you show concerned enough, there is a high probability that the concern will spread to the publisher, and he will make sure to see the process is as expected.</li>
<li><strong>Black Box Statistics:</strong> Open 5 random tickets. If you found 5 winning cards, return all the boxes (there should be only one prize!). If you found one winning prize &#8211; try some more, statistically you&#8217;ll never be that lucky.</li>
<li><strong>White Box:</strong> Scrutinize the printing batch script, or whatever controls the machine. If you work together with someone from the publishing house that knows the language, you&#8217;ll be able to grasp exactly what percentage of winning cards is being printed.</li>
<li><strong>Interface testing:</strong> See a draft printout of the prized and a not prized card artwork. They can send it even, by email, and you will ensure that the publisher is using a unique artwork as model.</li>
<li><strong>Sample:</strong> Ask for a blank sample and for a prized sample. The rationale is similar to the previous one.</li>
<li><strong>Process Analysis:</strong> When the printed card boxes come, ask to be shown which box has the prized card. If all is well, there will be only ONE marked box. Legal disclaimer: It may be illegal to know where the winning prize is &#8211; as it would spoil the surprise and competition of the &#8216;game&#8217;, making it unfair.</li>
<li><strong>Legal Protection:</strong> Maybe you can also add protections clause to the card, like &#8220;my company is not responsible, rather the publisher company is&#8221; or &#8220;prize is dependant on XXX, where XXX is some other condition&#8221;.</li>
<li><strong>Marketing Protection:</strong> Another option will be tying the prize to a discount when buying a car (the scratch cards intention was to grab the attention of those 49.999 people who did not won the prize. With this discount-tie, the attention-grabbing would be the same or bigger, and the risk taken would be 1000 for car sold.).<br />
 <br />
Not all of these techniques really protect you, but if done, these would give you enough confidence on the correctness of the data.</li>
</ol>
<p>I could finish here, without talking about software, just to make the point of abstraction.<br />
But as I want to keep my readers, and <a title="Does the world need another blog?" href="http://monkatwork.com/2007/08/15/does-the-world-need-your-blog/">make my blog good for the world</a>, let&#8217;s see some software points to ponder:</p>
<p><strong>Is there software which can not be tested?<br />
</strong>Well, I believe that although any software is testable up to some extent, yes there is software which can not be thoroughly tested.</p>
<p>The most common examples are from Critical/Safety systems.<br />
<a title="Dr. Parnas article in Wikipedia" href="http://en.wikipedia.org/wiki/David_Parnas">Dr. Parnas</a> refused to build a defense system software against nuclear missiles, stating that &#8220;<span style="font-family: courier">The inability to test a strategic defense system under field conditions before we actually need it will mean that no knowledgeable person would have much faith in the system.</span>&#8220;. He was right, the developers/testers would be able to test and simulate some parts of the system, but the final system as a whole would be impossible to test until a real war was in course and you had nuclear ogives being shot at you.<br />
(<em>You can not even test in at a desert location with test-intended-nuclear-bombs, because the </em><a title="Nuclear Test-Ban Treaty Summary" href="http://www.ctbto.org/treaty/summary.html"><em>Nuclear Test-Ban Treaty</em></a><em> prohibits.</em>)</p>
<p><strong>==> So how would you test software like this? Or would you, as Dr. Parnas&#8217;s approach, just refuse to write and test it?</strong></p>
<p>Another kind of untestable program I found in the <a title="Software Development Wikiwikiweb" href="http://c2.com/cgi/wiki?SoftwareDevelopment">Wikiwikiweb of Software Development</a>:</p>
<p>Imagine its a few years ago, and the application under tests is a program that has a feature to disprove Fermat&#8217;s Last Theorem. Within the code, the function for it is:</p>
<blockquote><p>bool fermatIsWrong(x, y, n) {<br />
  // return true if n > 2 and nth root of (x^n + y^n) is an integer<br />
  // else return false<br />
}</p></blockquote>
<p><a class="imagelink" title="Little Fermat" href="http://testing.gershon.info/wp-content/uploads/2007/08/fermat1.gif"><img id="image27" height="30" alt="Little Fermat" src="http://testing.gershon.info/wp-content/uploads/2007/08/fermat_lil.gif" /></a>At the time you are testing this function, you do not know whether there exists a set of numbers {x, y, n} which lead to a true result. And if the set exists, neither you nor anybody else knows which the values are.<br />
So, this is a program to which you will never be able to cover 100% of the code paths in your tests. You&#8217;ll be able to test extensively the &#8216;false&#8217; return value, though&#8230; <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>==> Again, how would you test a software like this?</strong></p>
<p>Feel free to use the comments below to reply. Let the world know your Testing Thoughts!</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200708/he-who-can-not-be-tested/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>BotT: No multi-million dollar prize for you. Again.</title>
		<link>http://testing.gershon.info/200705/bott-no-multi-million-dollar-prize-for-you-again/</link>
		<comments>http://testing.gershon.info/200705/bott-no-multi-million-dollar-prize-for-you-again/#comments</comments>
		<pubDate>Wed, 09 May 2007 23:57:48 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20070509/bott-no-multi-million-dollar-prize-for-you-again/</guid>
		<description><![CDATA[On our BooT of this time, a silly and expensive bug. Do you play lottery? Did you ever win? No?? Well, maybe the reason of you not being yet a millionaire may be a nasty bug in your favorite lottery system&#8230; In the B.C. Lottery Corp news page, the company explains and excuse the problem: [...]]]></description>
			<content:encoded><![CDATA[<p>On our BooT of this time, a silly and expensive bug.</p>
<p>Do you play lottery? Did you ever win?<br />
No?? Well, maybe the reason of you not being yet a millionaire may be a nasty bug in your favorite lottery system&#8230;</p>
<p><span id="more-8"></span></p>
<p>In the <a href="http://www.bclc.com/app/AboutBCLC/newsReleases.asp?NewsID=465" target="_blank">B.C. Lottery Corp news page</a>, the company explains and excuse the problem:</p>
<blockquote><p>The BC Lottery Corporation wishes to notify Lottery players who use BCLC&#8217;s Internet Number Checker to check lottery results that <strong>a technical issue has occurred</strong>. On February 8, <strong>a software upgrade inadvertently prevented draw results from being presented correctly </strong>by secondary BCLC web addresses.</p>
<p>Those who checked tickets on sites other than <a href="http://www.bclc.com/">www.bclc.com</a> were informed that the Internet Number Checker had not detected a match to the official winning numbers. <strong>BCLC is concerned that some of these players may have, in fact, held a winning ticket</strong>.</p></blockquote>
<p>Oh&#8230; <strong>YOU</strong> are concerned? <strong><u>I</u></strong> am concerned! Now let me find that old ticket&#8230;! ;)</p>
<p>More information in these news:</p>
<ul>
<li><a href="http://www.cbc.ca/canada/british-columbia/story/2007/04/06/bc-lotto-glitch.html">http://www.cbc.ca/canada/british-columbia/story/2007/04/06/bc-lotto-glitch.html</a></li>
<li><a href="http://www.canada.com/vancouversun/news/story.html?id=1bc10553-328d-436a-961d-ffe1e3d264d1&#038;k=41924">http://www.canada.com/vancouversun/news/story.html?id=1bc10553-328d-436a-961d-ffe1e3d264d1&#038;k=41924</a></li>
</ul>
<p>So, innocent people bought lottery tickets to fulfill their dream, but when checking in the automatic services whether they won or not, they may have received a &#8216;Looser&#8217; message when they were entitled for a helluva lot of cash.</p>
<p>What does that says about <a href="http://www.bclc.com/cm/didyouwin/home.htm" target="_blank">B.C. Lottery Corp.</a>? What does this says about their development staff &#8211; - and their testers?</p>
<p>A bug like this have uncountable bad effects, which range from lost of customer trust (!), to possible loose of Lottery Business Permit. Read, understand and beware: <strong>Don&#8217;t let your company be the next to frustrate customers </strong>and make the front page of newspapers with bad news!</p>
<p> </p>
<p><em>This bug was also featured on </em><a href="http://www.stickyminds.com/betweenthelines/" target="_blank"><em>StickyMind&#8217;s Between-the-Lines</em></a><em> as Bug of the Month. And on their news site, here you have: </em><a href="http://www.stickyminds.com/newscenter.asp"><em>http://www.stickyminds.com/newscenter.asp</em></a><em> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200705/bott-no-multi-million-dollar-prize-for-you-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BotT: Ctrl+Enter on Firefox</title>
		<link>http://testing.gershon.info/200702/bott-ctrlenter-on-firefox/</link>
		<comments>http://testing.gershon.info/200702/bott-ctrlenter-on-firefox/#comments</comments>
		<pubDate>Sun, 11 Feb 2007 00:38:16 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/20070210/bott-ctrlenter-on-firefox/</guid>
		<description><![CDATA[The Bug of this Time! For simplicity&#8217;s sake, let&#8217;s abbreviate, and wherever you see BotT, you know that&#8217;s Shmuel&#8217;s &#8220;Bug of this Time&#8220;. I picked a bug from the FireFox BugZilla database (BugZilla is a (free) (opensource) (reliable) tool for tracking bugs). The bug is Bug 233853 – cnn.com, Ctrl+Enter goes to http://www.cnn.com.com/. This bug [...]]]></description>
			<content:encoded><![CDATA[<p>The Bug of this Time!<br />
For simplicity&#8217;s sake, let&#8217;s abbreviate, and wherever you see <strong>BotT</strong>, you know that&#8217;s Shmuel&#8217;s &#8220;<strong>Bug of this Time</strong>&#8220;.</p>
<p>I picked a bug from the FireFox BugZilla database (<em>BugZilla is a (free) (opensource) (reliable) tool for tracking bugs</em>).<br />
The bug is <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=233853" target="_blank">Bug 233853 – cnn.com, Ctrl+Enter goes to http://www.cnn.com.com/</a>.</p>
<p>This bug is very particular. Let&#8217;s first analyze the Bug Description:</p>
<blockquote><p>User-Agent:<br />
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040207 Firefox/0.8</p></blockquote>
<p>I believe that&#8217;s good enough for a Build Identifier. It is the common practice on the DataBase to provide this info (<em><a title="check for yourself" href="http://bugzilla.mozilla.org/" target="_blank">check for yourself</a></em>). And, from what I&#8217;ve seen, no much information on the system OS is given until asked by the programmers.<br />
My belief on where this comes from: From one side, basic information on the environment can be very healthy for bug debugging. But on systems such as this, where the parameteres can change <strong>_so_</strong> much from user to user, and people all over the world are running this application with different settings in different operating systems on different computers to do different things&#8230; Well, with so much differences, you better leave for the programmer to chose which information he wants <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<blockquote><p>* Enter &#8216;cnn.com&#8217; in the URL field.<br />
* Press CTRL-Enter<br />
* Firefox changes the URL to &#8216;www.cnn.com.com&#8217;.  Firefox prepends &#8216;www&#8217; and<br />
appends &#8216;com&#8217; to whatever URL I type.<br />
This does not happen if I provide a protocol or start the URL with &#8216;www.&#8217;</p></blockquote>
<p>That is a very simple bug, with very simple reproduction steps.<br />
It happens all the time to a lot of people, but Rick was the first to decide and report it.<br />
Anyone can reproduce it from these instructions.</p>
<blockquote><p>I pressed CTRL-Enter as I&#8217;m used to opening links in a background tab in<br />
Mozilla.  I guess Firefox does not yet support opening background tabs.</p>
<p>Reproducible: Always<br />
Steps to Reproduce:<br />
1. Type a URL (sans protocol &#038; &#8216;www&#8217;) in the URL field. (e.g. cnn.com)<br />
2. Press CTRL-Enter<br />
3. Notice Firefox prepends &#8216;www.&#8217; and appends &#8216;.com&#8217; to whatever URL you entered<br />
without first attempting to connect to the URL provided.</p>
<p>Actual Results: <br />
Firefox prepends &#8216;www.&#8217; and appends &#8216;.com&#8217; to whatever URL you entered.</p>
<p>Expected Results: <br />
Firefox should just attempt to connect to the URL as typed.</p></blockquote>
<p>This is an extension of the first-and-quick reproduction process.<br />
It has additional information (<em>like the background tab statement</em>), a reproduction page that is not specific (<em>in order not to have the discussion limited to cnn.com</em>) and the expected results.</p>
<p>Pretty good!</p>
<p>Wait, if it is pretty good, and simple, and quick, why it is featured as the BotT?<br />
Answer: Take a look at the <strong>bug thread &#8212; it has 46 posts, since 11/02/2004 until 16/10/2006!</strong> In almost three years, the bug was rolling back and forth between sides, until they get to some conclusion.</p>
<p><span id="more-7"></span></p>
<p>The culprit is that <strong>there is no definition on what the exact behavior should be</strong>.<br />
Let&#8217;s quote some comments from the bug:</p>
<ul>
<li>&#8220;<font face="Courier New">Why the change from Ctrl+Enter that&#8217;s currently implemented in Mozilla?  ..and what is Ctrl+Enter supposed to do?</font>&#8220;</li>
<li>&#8220;<font face="Courier New">It&#8217;s supposed to pretend to be IE and prepend http://www/. and append .com</font>&#8220;</li>
<li>&#8220;<font face="Courier New">Just because it&#8217;s in IE doesn&#8217;t mean we should copy it</font>&#8220;</li>
<li>&#8220;<font face="Courier New">You Ctrl+Click to open a link in a tab?  What about Ctrl+Enter on a link that has focus in the page?</font>&#8220;</li>
<li>&#8220;<font face="Courier New">So now we have two choices of behaviour&#8230;</font>&#8220;</li>
<li>&#8220;<font face="Courier New">Maybe add ftp: and https: ?</font>&#8220;</li>
<li>&#8220;<font face="Courier New">What happens if a site name exists in two or more TLDs?</font>&#8220;</li>
<li><font face="Courier New">&#8230;</font></li>
<li><font face="Courier New">&#8230;</font></li>
</ul>
<p>The moral of this story:<br />
<strong>You can not develop what you don&#8217;t have defined. More than that, <u>you can not test what was not defined before being programmed</u>.</strong></p>
<p>This is a common disease in Open Source projects, because usually all they have is a good idea, and good programmers. There is no one that writes down exactly what the programmers need to develop and how.<br />
These are one of the most important reasons to have a <a href="http://en.wikipedia.org/wiki/Benevolent_dictator" target="_blank">Benevolent Dictator</a> in the development team of Open Source projects.</p>
<p>Not only Open Source suffers from lack of requirements.<br />
Most software, commercial or not, lacks good requirements in different extents, and usually one is lucky if there is a specific document that defines them.</p>
<p>This feature we are dealing in the bug is a very confusing one, that can be origin to many discussion and polemics.</p>
<hr />That was my point. If you already believe me, you can go to the next post.<br />
From now on I will just bring argument and examples.  </p>
<p>For instance, I did a quick search and <a href="http://www.howtogeek.com/howto/ubuntu/save-15-keystrokes-use-ctrlenter-to-complete-url/" target="_blank">found this page</a> about auto-completion on IE7. They talk about pressing <strong>Ctrl+Enter</strong>, <strong>Shift+Enter</strong>, <strong>Shift+Ctrl+Enter</strong>, or any of these combinations <strong>with Alt</strong>.<br />
The shortcuts using Shift or Ctrl+Shift presented in that site do not work on my standard installation of IE7. But Ctrl and Alt do work, so unless there&#8217;s a separated checkbox in the IE options for each autocomplete-shortcut, something weird is going on (<em>probably they have a different plugin</em>). One way or another, this is another prove that this feature is vague, and both developing or testing it is painful for its vagueness.</p>
<p>If you use Internet Explorer (<em>I did the switch back from Firefox a while ago</em>), you may want to know that you can change the way Ctrl-Enter behaves in your machine! See <a href="http://windowsxp.mvps.org/ie/quickcomplete.htm" target="_blank">this link in the MVPS network</a> for more details.<br />
For FireFox, you can use the &#8216;browser.fixup.alternate.suffix&#8217; in about:config.</p>
<p>This type of customization is one of the answers found to have a well-defined behavior on the shortcuts. &#8220;If the shortcut is not clear, then let each user decide what the command do.&#8221;, &#8220;If no one is sure what is the best result, let every user decide his own behavior!&#8221;. Seems ridiculous, but it is true.</p>
<p>You can see long-lasting threads on requests like this <a title="for Mozilla" href="https://bugzilla.mozilla.org/show_bug.cgi?id=175238" target="_blank">for Mozilla</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=221161" target="_blank">for FireFox</a>. Threads on this last years and end without resolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200702/bott-ctrlenter-on-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug of This Time!</title>
		<link>http://testing.gershon.info/200701/bug-of-this-time/</link>
		<comments>http://testing.gershon.info/200701/bug-of-this-time/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 21:38:15 +0000</pubDate>
		<dc:creator>Shmuel Gershon</dc:creator>
				<category><![CDATA[Bug of this Time]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://testing.gershon.info/archives/5</guid>
		<description><![CDATA[One of the sections I want to have in this blog, is a list of cool bugs and a review on the bug report. I&#8217;ll take a bug report out of some bugzilla list, like the Mozilla or the OpenOffice, explain the bug and review the bug description. My aim is to learn cool techniques [...]]]></description>
			<content:encoded><![CDATA[<p>One of the sections I want to have in this blog, is a <strong>list of cool bugs and a review on the bug report</strong>.<br />
I&#8217;ll take a bug report out of some bugzilla list, like the Mozilla or the OpenOffice, explain the bug and review the bug description.<br />
My aim is to <strong>learn cool techniques and ideas on bug reporting</strong>, and also to try to <strong>spot bad patterns and poor descriptions</strong>.</p>
<p>Wait! Should not this section be called &#8220;<em>Bug of the Month</em>&#8220;, or &#8220;<em>of the Week</em>&#8220;? No, no. I do not want to limit myself to just one bug per period. Neither I want to commit to bring a bug every week&#8230; So it&#8217;s the &#8220;<strong>Bug of this Time</strong>&#8220;! <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /> </p>
<p>At &#8220;This Time&#8221;, instead of listing a bug found elsewhere, I&#8217;ll describe a &#8216;Privacy Bug&#8217; I once found in the printer of a company I worked for.They had some Xerox printers that performed as Fax as well.</p>
<p>In some (most) of the machines, when you wanted to print a Transmission Report on a delivered fax, you had to drill-down on the printers&#8217; menu, and press the &#8220;Transmission Report&#8221; option. Send your fax, and after success, a neat report, with a reduced image of the first page of the fax sent is printed out. Cool.</p>
<p><span id="more-5"></span></p>
<p>Other of the machines, had a very similar work flow, but to get the report you had to press the &#8220;Transmission Report&#8221; entry <strong>after </strong>you sent the fax.<br />
A nice day, I was preparing to send my fax on this machine, and did all the &#8220;Report Flow&#8221; <u>before</u> sending the fax (just as I would do in the normal machines). <strong>Surprise!</strong><br />
The machine printed immediately the Acknowledgement Report of the last fax sent, some day ago. As the report comes with a nice reduced picture of the fax, I was <strong>presented with personal information</strong> of one of my co-workers <img src='http://testing.gershon.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  .</p>
<p>Of course, I shredded the info right away, and warned my colleague of what happened.</p>
<p>My tester soul pushed me to send my fax and press the option a number of times, and every time the same report was printed. The printer machine did not deleted the info from its memory after being used. So if someone wanted, he could simply come once in a while and print out al the faxes sent by anybody.</p>
<p>This is a very high privacy concern in my opinion, as these info can as well be <strong>Credit Card numbers </strong>or <strong>delicate health matters</strong>.</p>
<p>Expected Behavior from a Fax machine like this one (<em>one built to be used on a SoHo shared space</em>):</p>
<ol>
<li>The machine should save the report information (front-page picture) _<strong>only</strong>_ if the choice was made through the menu _<strong>before</strong>_ sending the Fax.</li>
<li>After printed once, the picture should be <strong>deleted</strong>.</li>
</ol>
<p>That&#8217;s my Bug of this Time.<br />
If anybody sends me his, I&#8217;ll feature it as well. It is not hard at all, there are bugs everywhere! <strong>Let me know your Testing Thoughts! </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://testing.gershon.info/200701/bug-of-this-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
