<?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>thoughts from the test eye &#187; compatibility</title>
	<atom:link href="http://thetesteye.com/blog/tag/compatibility/feed/" rel="self" type="application/rss+xml" />
	<link>http://thetesteye.com/blog</link>
	<description>by rikard edgren, henrik emilsson and martin jansson - with torbjörn ryber and henrik andersson</description>
	<lastBuildDate>Mon, 30 Jan 2012 21:03:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Lightweight Compatibility Testing</title>
		<link>http://thetesteye.com/blog/2011/06/lightweight-compatibility-testing/</link>
		<comments>http://thetesteye.com/blog/2011/06/lightweight-compatibility-testing/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 06:03:49 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[Skills]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[lightweight]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=2090</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/skills.png" width="48" height="48" alt="" title="Skills" /><br/>In testing text books you can read that compatibility testing should be performed after the functionality testing and bug fixing is completed. I guess the reason is that you don’t want to mix these categories, but hey, what a waste of resources. My suggestion is to perform the compatibility testing at the same time as [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/skills.png" width="48" height="48" alt="" title="Skills" /><br/><p>In testing text books you can read that compatibility testing should be performed after the functionality testing and bug fixing is completed. I guess the reason is that you don’t want to mix these categories, but hey, what a waste of resources.<br />
My suggestion is to perform the compatibility testing at the same time as you are doing your other testing; when problems arise, trust that you will deal with them.<br />
In my classification, compatibility testing involves hardware, operating system, application, configuration, backward/forward compatibility, sustainability and standards conformance.<br />
Here follows some lightweight methods to tackle these areas.</p>
<h2>Basic Configuration Matrix</h2>
<p><a href="http://thetesteye.com/blog/2008/05/bcm-basic-configuration-matrix/">Basic Configuration Matrix</a> is a short list of platform configurations that will spot most of the platform bugs that could exist in your currently supported configuration matrix.<br />
The simplest example is to use one configuration with the oldest supported operating system, oldest browser etc; and one configuration with the newest of all related software. A more advanced example could use several configurations that use different languages, Application Servers, authentication methods et.al.<br />
Often it will take quite some time to run most tests on BCM; so alternate between the configurations while testing your product. Do variations on configurations when appropriate.</p>
<h2>Error-prone Machine</h2>
<p>Another trick is to setup machines so they have a high chance of stumbling on compatibility issues. You can vary this on your BCM, your personal machine or whatever is suitable. The idea is to get some compatibility testing almost for free.<br />
<a href="http://thetesteye.com/blog/2008/04/an-error-prone-windows-machine/">Examples on Windows</a> include: run as Restricted User, use Large DPI setting, use German Regional Settings, install support for all of the worlds characters, non-English language in Internet Browsers, move system and user Temp folder, activate IE ‘display a notification about every script error’, move Task Bar to the left side of the screen, Windows Classic Theme &amp; Color Scheme, use User Access Control, use an HTTP proxy, use Data Execution Prevention, install new versions as they come, e.g. latest hotfixes, MDAC etc, never install software on default location, run with 2 screens, on a 64-bit system, use different browsers, turn off virtual memory swapping, , install Google/Yahoo toolbar, run Energy Save Program, pull out the network cord every time you leave the computer; and put it back in when you return, turn on the sound!</p>
<h2>Technology Knowledge</h2>
<p>If you know a lot about the environment the software operates in, you know which things will happen in reality, which settings that usually are altered, and how it is commonly operated.<br />
The lightweight method is to use this knowledge and make sure you test the most important things.</p>
<h2>Letting Others Do the Testing</h2>
<p>Many compatibility problems happen on basic usage, which indicates that you can let others do a big part of the compatibility testing: developers can use different machines and graphics cards, Beta testing can be done in customers’ production-like environment. If the product is free of charge, you might even get away with addressing problems after your users encounter them (but make sure you have an easy and compelling way for them to do this reporting.)<br />
Crowd-testing could be a way, but so far the payment models from the testers’ perspective are not ethically defensible, to me.</p>
<h2>Reference Environments</h2>
<p>To quickly investigate if you are experiencing a compatibility issue, it is handy to have reference environments available. It could be someone else’s, a virtual machine, a quickly cloned image, your own machine etc.<br />
Personally I prefer having a physical machine that is running similar things, but on a different OS, different language and/or earlier version. The last years I have had three machines and three monitors, and by switching, I get a lot of compatibility testing done at the same time as testing new features. When I check things on an older version, I can save documents and use them for next tests.</p>
<h2>Backward/Forward Compatibility</h2>
<p>Backward compatibility is easiest done if you can use real customers most complicated files/data/documents. Use these as you test any functionality (Background Complexity Heuristic).<br />
Occasionally communicate between different versions.<br />
Forward compatibility should be designed in the architecture, as a tester you can point this out.</p>
<h2>Sustainability</h2>
<p>Have conversations around the question: Is the product compatible with the environment? Have we considered energy efficiency, switch-offs, power-saving modes, support work from home and the likes?</p>
<h2>Standards</h2>
<p>A lightweight method for standards conformance is to identify which ones are applicable, and ask the experts if they understand it, and successfully have managed to adapt it to the new context.<br />
Let’s finish with a non-lightweight method: you can become the standards expert.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2011%2F06%2Flightweight-compatibility-testing%2F&amp;title=Lightweight%20Compatibility%20Testing" id="wpa2a_2"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2011/06/lightweight-compatibility-testing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>You might be an expert at non-functional testing</title>
		<link>http://thetesteye.com/blog/2010/01/you-might-be-an-expert-at-non-functional-testing/</link>
		<comments>http://thetesteye.com/blog/2010/01/you-might-be-an-expert-at-non-functional-testing/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 18:03:28 +0000</pubDate>
		<dc:creator>Rikard Edgren</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[Skills]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[manual product testing]]></category>
		<category><![CDATA[non-functional testing]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[quality attributes]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://thetesteye.com/blog/?p=767</guid>
		<description><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/people.png" width="48" height="48" alt="" title="People" /><img src="http://thetesteye.com/blog/wp-content/uploads/skills.png" width="48" height="48" alt="" title="Skills" /><br/>Now and then I read that testers don&#8217;t know enough about Usability, that there is a need for a Performance Testing expert, that a Security consultant should be called in, or that a master of the used technology would make Installation and Compatibility testing possible. This might be true in the general case, but there [...]]]></description>
			<content:encoded><![CDATA[<img src="http://thetesteye.com/blog/wp-content/uploads/people.png" width="48" height="48" alt="" title="People" /><img src="http://thetesteye.com/blog/wp-content/uploads/skills.png" width="48" height="48" alt="" title="Skills" /><br/><p>Now and then I read that testers don&#8217;t know enough about Usability, that there is a need for a Performance Testing expert, that a Security consultant should be called in, or that a master of the used technology would make Installation and Compatibility testing possible.<br />
This might be true in the general case, but there are many testers that are working with the same product suite for years, and over time you become an expert of most aspects of quality <strong>for your specific product</strong>.</p>
<p>Let&#8217;s look at some examples:</p>
<p>One sub-category of Usability is Operability; that an experienced user can perform functions in a fast and efficient way. As a system tester, you have done most operations many times, and you <strong>know</strong> what you can expect from features in the sense of operability. You can point at places where for instance the ability to delete multiple items with a few clicks would make a difference.<br />
Learnability is another sub-category of Usability. You only learn the basics once, but maybe you have heard customer stories of confusing things, or you could let a new member of the test team think in this direction.<br />
Regarding Accessibility it doesn&#8217;t cost too much to use High DPI, speakers turned on, Code Blind or Magnifier sometimes.</p>
<p>Large-scale Performance might require an expensive tool, but I bet you&#8217;re doing some simulations without them; maybe just by telling the whole development team to hit the same server at the same time.<br />
There is also a small-scale, low-level Performance aspect that shouldn&#8217;t be understimated. If a dialog takes more than a second to display, it might be something that put the user&#8217;s confidence in doubt.<br />
If you have tested your product for quite some time, you will immediately notice when something takes just a bit longer than it could take. There of course might be valid reasons for this, but talking to the developer about it might be beneficial to both the producers and consumers of your software.</p>
<p>Security testing seems more difficult, but as a product tester you know at which moments authentication takes place, you know if there are passwords stored, and that they should be encryted; you might not know how to exploit a crash, but you are an expert at provoking the crashes.</p>
<p>For Hardware/OS/Application Compatibility testing you will become more of an expert the longer you work with them, at least if you have the curiousity to learn more things when you get the chance.<br />
You might not know a lot about how the iPhone works, but you know all the details that can be used for interacting with your web site.</p>
<p>Sometimes I also read the extreme that testers shouldn&#8217;t bother with Usability/Security/Performance testing, which to me seems like an incredible waste of knowledge and resources.<br />
When testing functionality manually, you can look at quality attributes <strong>at the same time</strong>, and get a lot of coverage for free.</p>
<p>I&#8217;m not saying true specialists aren&#8217;t needed, but I&#8217;m saying that there are a lot of expertise in your building that at least can be used complementary.<br />
If you are in a situation where you know a lot of these things, but aren&#8217;t allowed/encouraged to test these things, I think you should try to convince your managers of a better and more fun way to test your product.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fthetesteye.com%2Fblog%2F2010%2F01%2Fyou-might-be-an-expert-at-non-functional-testing%2F&amp;title=You%20might%20be%20an%20expert%20at%20non-functional%20testing" id="wpa2a_4"><img src="http://thetesteye.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://thetesteye.com/blog/2010/01/you-might-be-an-expert-at-non-functional-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

