<?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>QA Hates You &#187; Dirty Tricks</title>
	<atom:link href="http://qahatesyou.com/wordpress/category/dirty-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://qahatesyou.com/wordpress</link>
	<description>You suspected it.  Now you know it.</description>
	<lastBuildDate>Fri, 03 Feb 2012 17:56:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>News You Can Use</title>
		<link>http://qahatesyou.com/wordpress/2012/01/news-you-can-use/</link>
		<comments>http://qahatesyou.com/wordpress/2012/01/news-you-can-use/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 09:45:56 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=2375</guid>
		<description><![CDATA[There is a Unicode character and an HTML character for the skull and crossbones. Please work it into your testing accordingly.]]></description>
			<content:encoded><![CDATA[<p>There is a Unicode character and an HTML character for <a href="http://en.wikipedia.org/wiki/Skull_and_crossbones_%28poison%29" target="_blank">the skull and crossbones</a>.</p>
<p>Please work it into your testing accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2012/01/news-you-can-use/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Just When You Think You&#8217;ve Tried All The Date/Time Test Cases</title>
		<link>http://qahatesyou.com/wordpress/2011/12/just-when-you-think-youve-tried-all-the-datetime-test-cases/</link>
		<comments>http://qahatesyou.com/wordpress/2011/12/just-when-you-think-youve-tried-all-the-datetime-test-cases/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 22:48:03 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=2337</guid>
		<description><![CDATA[The real world intercedes with something that would never happen in the real world: THERE is no today in Samoa. The tiny nation will jump forward in time as it crossed westward over the international dateline to align itself with its main trading partners throughout the region. At the stroke of midnight on December 29, [...]]]></description>
			<content:encoded><![CDATA[<p>The real world intercedes with <a href="http://www.smh.com.au/world/entire-day-disappears-in-samoa-20111229-1pe5t.html" target="_blank">something that would never happen in the real world</a>:</p>
<blockquote><p>THERE is no today in Samoa.</p>
<p>The tiny nation will jump forward in time as it crossed westward over the international dateline to align itself with its main trading partners throughout the region.</p>
<p>At the stroke of midnight on December 29, the time in Samoa will leap forward to December 31 &#8211; New Year&#8217;s Eve. For Samoa&#8217;s 186,000 citizens, Friday, December 30, 2011, will simply cease to exist.</p></blockquote>
<p>I wonder how many automated processes melted down.  Or are still going to melt down.</p>
<p>Remember to test all of your future applications that allow you to select a birthdate and country or a start/end date and country that this particular rule should exist.</p>
<p>Oh, man oh man, I can&#8217;t wait to log my first defect and start my first fight over it.</p>
<p>(Courtesy <a href="http://twitter.com/#!/hogfish/status/152516134871105537" target="_blank">Trisherino</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2011/12/just-when-you-think-youve-tried-all-the-datetime-test-cases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Double-click That Link</title>
		<link>http://qahatesyou.com/wordpress/2011/10/doubleclick-that-link/</link>
		<comments>http://qahatesyou.com/wordpress/2011/10/doubleclick-that-link/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 14:30:01 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>
		<category><![CDATA[Failed Web sites]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=2156</guid>
		<description><![CDATA[A pretty stock naughty thing to do when testing a Web application is to double-click a link instead of single-clicking it. But, Director, what sort of madman would do such a thing? Someone used to the desktop paradigm might do it just because he or she does not know not to (someone like Roberta). Someone [...]]]></description>
			<content:encoded><![CDATA[<p>A pretty stock naughty thing to do when testing a Web application is to double-click a link instead of single-clicking it.</p>
<p>But, Director, what sort of madman would do such a thing?</p>
<ul>
<li>Someone used to the desktop paradigm might do it just because he or she does not know not to (someone like <a href="http://qahatesyou.com/wordpress/2008/08/the-roberta-scenario/" target="_blank">Roberta</a>).</li>
<li>Someone like me who doesn&#8217;t see any action immediately and wonders if he clicked the link or if he clicked while the cursor was not on the link.</li>
</ul>
<p>Case in point: In WordPress, you can move an item to the trash by clicking the link labeled, appropriately, <strong>Trash</strong>:</p>
<p align="center">
<img src="http://qahatesyou.com/images/doubleclick.jpg" alt="The mouseover indicates the link is selected....When you click...." width="425"></p>
<p>If you click the link, the page comes back with the item missing from the list and your trash incremented by 1.  </p>
<p>If you double-click the link, though:</p>
<p align="center">
<img src="http://qahatesyou.com/images/doubleclick2.jpg" alt="When you double-click, hilerrorty ensues." width="425"></p>
<p>Hilerrority ensues!  The application deletes it <em>and then tries to delete it again!</em>  This results in an unspecific error condition, but what would happen in your application?</p>
<p>Come on, guys, the user <em>might</em> double-click a link, and your Web application needs to take that into account and to handle it elegantly.  More elegantly than a non-specific error message with no further navigation, certainly.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2011/10/doubleclick-that-link/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>There&#8217;s Plenty Of Time To Procrastinate</title>
		<link>http://qahatesyou.com/wordpress/2011/01/theres-plenty-of-time-to-procrastinate/</link>
		<comments>http://qahatesyou.com/wordpress/2011/01/theres-plenty-of-time-to-procrastinate/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 18:25:31 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1671</guid>
		<description><![CDATA[Add the following date to your calendars and to your test cases: January 20, 2038: The year 2038 problem (also known as Unix Millennium Bug, Y2K38, Y2.038K or S2G by analogy to the Y2K problem) may cause some computer software to fail before, in the year 2038 or after. The problem affects all software and [...]]]></description>
			<content:encoded><![CDATA[<p>Add the following date to your calendars and to your test cases: <a href="http://en.wikipedia.org/wiki/Year_2038_problem" target="_blank">January 20, 2038</a>:</p>
<blockquote><p>
The year 2038 problem (also known as Unix Millennium Bug, Y2K38, Y2.038K or S2G by analogy to the Y2K problem) may cause some computer software to fail before, in the year 2038 or after. The problem affects all software and systems that both store system time as a signed 32-bit integer, and interpret this number as the number of seconds since 00:00:00 UTC on Thursday, 1 January 1970. The furthest time that can be represented this way is 03:14:07 UTC on Tuesday, 19 January 2038. Times beyond this moment will &#8220;wrap around&#8221; and be stored internally as a negative number, which these systems will interpret as a date in 1901 rather than 2038. This is caused by Integer overflow. </p></blockquote>
<p>In the end, all software shortcuts will out and will crash a moonplane.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2011/01/theres-plenty-of-time-to-procrastinate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Nihilist&#8217;s Enumeration</title>
		<link>http://qahatesyou.com/wordpress/2010/10/a-nihilists-enumeration/</link>
		<comments>http://qahatesyou.com/wordpress/2010/10/a-nihilists-enumeration/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 11:12:06 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>
		<category><![CDATA[Failed applications]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1457</guid>
		<description><![CDATA[An old Blockbuster envelope teaches us a valuable lesson about alternative methods of output: Click for full size So what portions of your application come out of the printer? Does it work right? Does it look right? Is it correct? It&#8217;s not enough that you make sure the print dialog comes up correctly. You need [...]]]></description>
			<content:encoded><![CDATA[<p>An old Blockbuster envelope teaches us a valuable lesson about alternative methods of output:</p>
<p align="center">
<a href="http://qahatesyou.com/images/blockbusterenvelope.jpg" target="_blank"><br />
<img src="http://qahatesyou.com/images/blockbusterenvelope.jpg" width="425" alt="I am one of nothing, too, but I'm not proud of it."><br />
<font size="1"><i>Click for full size</i></font></a></p>
<p>So what portions of your application come out of the printer?  Does it work right?  Does it look right?  Is it correct?</p>
<p>It&#8217;s not enough that you make sure the print dialog comes up correctly.  You need to make sure that the extras that are often added to the printed page display correctly.  For example, some maps add details such as the location, some Web sites put their names on it, and some applications use formula.  To ill effect in this case.</p>
<p>If you want to be a real rapscallion, see what happens if you print to a file or to a PDF driver of some sort.  Because someone out there in the real world just might.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/10/a-nihilists-enumeration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>That&#8217;s Something You Can Hang Your App On</title>
		<link>http://qahatesyou.com/wordpress/2010/09/thats-something-you-can-hang-your-app-on/</link>
		<comments>http://qahatesyou.com/wordpress/2010/09/thats-something-you-can-hang-your-app-on/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 17:41:58 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1325</guid>
		<description><![CDATA[Friends, we&#8217;ve already covered file upload test cases, haven&#8217;t we? Well, if you&#8217;re new here, let&#8217;s recap: Large files: make sure the application can handle 1Gb or more or stops user from uploading them. Empty files: make sure application can handle 0 kb files. Invalid files: make sure application can handle files that are corrupted. [...]]]></description>
			<content:encoded><![CDATA[<p>Friends, we&#8217;ve already covered file upload test cases, haven&#8217;t we?</p>
<p>Well, if you&#8217;re new here, let&#8217;s recap:</p>
<ul>
<li>Large files: make sure the application can handle 1Gb or more or stops user from uploading them.</li>
<li>Empty files: make sure application can handle 0 kb files.</li>
<li>Invalid files: make sure application can handle files that are corrupted.</li>
<li>Wrong file types: make sure application can handle when you try to upload the wrong type of file</li>
<li>Long file names: make sure application can handle long file/path names.</li>
<li>Invalid file/path: make sure application can handle invalid locations if you&#8217;re allowed to type in file names and paths.</li>
</ul>
<p>The little Space Your Face Flash ditty created by NASA hangs on the 2nd and 3rd of the bullets above:</p>
<p align="center">
<a href="http://qahatesyou.com/images/spaceyourface.jpg" target="_blank"><br />
<img src="http://qahatesyou.com/images/spaceyourface.jpg" width="425" alt="Spacing your infinite reaches of space"><br />
<i><font size="1">Click for full size</font></i></a></p>
<p>Worse, it hangs with some cheaply produced space groove playing.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/09/thats-something-you-can-hang-your-app-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When One Becomes Two</title>
		<link>http://qahatesyou.com/wordpress/2010/08/when-one-becomes-two/</link>
		<comments>http://qahatesyou.com/wordpress/2010/08/when-one-becomes-two/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 18:19:02 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1276</guid>
		<description><![CDATA[So your designers have constrained the input length on your application so you cannot enter more characters than the database can handle. If the developers force the string into all caps, have I got a nasty little trick for you. Ladies and gentlemen, the German eszett: Also, the eszett or scharfes S (ß) is used. [...]]]></description>
			<content:encoded><![CDATA[<p>So your designers have constrained the input length on your application so you cannot enter more characters than the database can handle.  If the developers force the string into all caps, have I got a nasty little trick for you.  Ladies and gentlemen, the <a href="http://en.wikipedia.org/wiki/German_alphabet#Sharp_s" target="_blank">German eszett</a>:</p>
<blockquote><p>
Also, the eszett or scharfes S (ß) is used. It exists only in a lowercase version since it can never occur at the beginning of a word (there are a few loan words starting with an s  followed by a z (e.g. Szegediner Krautfleisch but that is not the same as the eszett which counts as one letter).</p>
<p>In all caps it is converted to SS&#8230;.</p></blockquote>
<p>There&#8217;s a new unicode symbol for the capital version, but a lot of old applications will still force that into an SS.  So a word like <code>confuße</code> might get uppercased to <code>CONFUSSE</code>, and if you set the string to the maxlength, uppercasing it will blow that up.</p>
<p>To be honest, I did discover this when I was working on an application for a German customer and I (and only I of a team of far more seasoned QA people than I at the time) sought out the German alphabet to learn its vagaries.</p>
<p>I just ruined a little of my mystique, didn&#8217;t I?</p>
<p>However, if your application might possibly be localized to German, you have my permission to use this.  Use this new power only for good.  Strangely, though, QA good means <em>evil</em> to everyone else, but that&#8217;s not our fault.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/08/when-one-becomes-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Injection Cheat Sheet</title>
		<link>http://qahatesyou.com/wordpress/2010/08/sql-injection-cheat-sheet/</link>
		<comments>http://qahatesyou.com/wordpress/2010/08/sql-injection-cheat-sheet/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 18:25:53 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1243</guid>
		<description><![CDATA[Here&#8217;s a SQL Injection Cheat Sheet for you. Remember to check your form fields for these bad dogs when you can. (Link courtesy the Twitterverse.)]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a <a href="http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/#ByPassingLoginScreens?utm_source=twitterfeed&#038;utm_medium=twitter" target="_blank">SQL Injection Cheat Sheet</a> for you.  </p>
<p>Remember to check your form fields for these bad dogs when you can.</p>
<p>(Link courtesy the Twitterverse.)</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/08/sql-injection-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sample QA Test Plan The QAHY Format</title>
		<link>http://qahatesyou.com/wordpress/2010/07/sample-qa-test-plan-the-qahy-format/</link>
		<comments>http://qahatesyou.com/wordpress/2010/07/sample-qa-test-plan-the-qahy-format/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 17:57:27 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1180</guid>
		<description><![CDATA[Based on a tweet this morning lamenting the dearth of proper test plan sample documents on the Internet, I put together a sample document in PDF format that you can use when putting together your own test plans. You can view that sample here. I hope that my regular readers and especially those of you [...]]]></description>
			<content:encoded><![CDATA[<p>Based on a <a href="http://twitter.com/QAHatesYou/status/19732950312" target="_blank">tweet</a> this morning lamenting the dearth of proper test plan sample documents on the Internet, I put together a sample document in PDF format that you can use when putting together your own test plans.</p>
<p>You can view that sample <a href="http://qahatesyou.com/images/SampleTestPlan.pdf" target="_blank">here</a>.  </p>
<p>I hope that my regular readers and especially those of you who got here by a Google search find it useful for your testing documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/07/sample-qa-test-plan-the-qahy-format/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How Do You Secure A Kiosk?  Not Like This.</title>
		<link>http://qahatesyou.com/wordpress/2010/07/how-do-you-secure-a-kiosk-not-like-this/</link>
		<comments>http://qahatesyou.com/wordpress/2010/07/how-do-you-secure-a-kiosk-not-like-this/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 13:02:03 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Dirty Tricks]]></category>
		<category><![CDATA[Failed applications]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1154</guid>
		<description><![CDATA[So I stopped by the Branson (Missouri) Regional Airport recently, and I spotted this kiosk: Click for full size It offers the user the opportunity to enter some sort of contest to go to Nashville. It&#8217;s obviously a Web browser in kiosk mode, but this one has a full keyboard with a trackball and two [...]]]></description>
			<content:encoded><![CDATA[<p>So I stopped by the <a href="http://www.flybranson.com/" target="_blank">Branson (Missouri) Regional Airport</a> recently, and I spotted this kiosk:</p>
<p align="center">
<a href="http://qahatesyou.com/images/kiosk1.jpg" target="_blank"><br />
<img src="http://qahatesyou.com/images/kiosk1.jpg" width="425" alt="A one-browsered bandit"><br />
<em><font size="1">Click for full size</font></em></a></p>
<p>It offers the user the opportunity to enter some sort of contest to go to Nashville.  It&#8217;s obviously a Web browser in kiosk mode, but this one has a full keyboard with a trackball and two mouse buttons.  Uh oh.</p>
<p>So I click the Contest Rules link at the bottom and get the contest rules, which has a naked link at the top that takes you back to the form.  But hover over the link and right click and&#8230;.  Uh oh.</p>
<p align="center">
<a href="http://qahatesyou.com/images/kiosk2.jpg" target="_blank"><br />
<img src="http://qahatesyou.com/images/kiosk2.jpg" width="425" alt="Right click is wrong"><br />
<em><font size="1">Click for full size</font></em></a></p>
<p>What happens if I open that in a new window?  Hello, Internet!</p>
<p align="center">
<a href="http://qahatesyou.com/images/kiosk4.jpg" target="_blank"><br />
<img src="http://qahatesyou.com/images/kiosk4.jpg" width="425" alt="Hello, Internet!"><br />
<em><font size="1">Click for full size</font></em></a></p>
<p>So a user has complete access to the Internet.  Go where you want.  Get all the malware you want.  I didn&#8217;t try to see if a regular download and install worked, but I would not doubt it.  What happen if I ALT+TAB?</p>
<p align="center">
<a href="http://qahatesyou.com/images/kiosk3.jpg" target="_blank"><br />
<img src="http://qahatesyou.com/images/kiosk3.jpg" width="425" alt="Right click is wrong"><br />
<em><font size="1">Click for full size</font></em></a></p>
<p>Lookie there!  Lookie there!  It&#8217;s the command line.  A little CTRL+C action and I have access to issue commands to the machine and maybe even the network.</p>
<p>So is that Cat-5 cable running out of the back of the box connected to the airport network itself or a dedicated safe portal to the Internet?  Given what we&#8217;ve seen here, what do you think?</p>
<p>If you&#8217;re ever called to check out a kiosk application, not only should you run through the form the kiosk will host, but you should get a kiosk itself and run it through its paces and look outside the confines of the application to look for security pitfalls.</p>
<p>You need to check out the user interface action.  This kiosk gives the user all the normal tools that users need for full input opportunity to the Internet.  Some kiosks only have touchpads or touchscreens.  Here are a couple of things to think about:</p>
<ul>
<li>Know your <a href="http://www.autohotkey.com/wiki/index.php?title=Standard_Windows_Hotkeys" target="_blank">keyboard shortcuts</a>.  Most people don&#8217;t know these keyboard shortcuts, but they do things to your active window (even your kiosked browser).  What can you do with that?</li>
<li>Know your internal browser behavior.  I remember seeing a kiosk with only a touchscreen that offered the Web sites of a building&#8217;s residents.  Within a touchscreen environment, you would think you&#8217;re limited to navigating through links in the browser window.  You would be <em>wrong</em>.  mailto: links trigger the helper application associated with e-mail.  What can you do when you try that?</li>
<li>What happens when you unplug the machine and plug it back in?  It reboots, probably, affording you the ability to go into alternate bootup scenarios and whatnot.  Should your user have access to that?  Probably not.</li>
</ul>
<p>To begin vetting kiosks, you need to think outside the terms of your application and think in terms of the technologies that encapsulate it.  The better you understand those and can identify the ways users could interact with the whole kiosk, the better you can prevent them from doing so inappropriately.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/07/how-do-you-secure-a-kiosk-not-like-this/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

