<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>David Fries' WebLog : Software Testing</title><link>http://blogs.msdn.com/davfries/archive/tags/Software+Testing/default.aspx</link><description>Tags: Software Testing</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Know the bugs in your area</title><link>http://blogs.msdn.com/davfries/archive/2004/07/23/193407.aspx</link><pubDate>Fri, 23 Jul 2004 20:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:193407</guid><dc:creator>davfries</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/davfries/comments/193407.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davfries/commentrss.aspx?PostID=193407</wfw:commentRss><description>&lt;P&gt;This is a simple one, but easy to overlook. I'm going to make the assumption that you are familiar with bug reporting, and that you have some sort of bug tracking database.&lt;/P&gt;
&lt;P&gt;Bugs (as in the bug reports, not the actual product mis-behavior itself) are just another way of communicating information. There may have been times in your past when you were not included in an email thread which concerned a feature you owned. In this case, you'd probably go to whoever sent the email, and complain about not being brought &amp;#8220;into the loop&amp;#8221;.&lt;/P&gt;
&lt;P&gt;Let's say that someone else testing another feature finds a bug in your area. With bugs, there is only one addressee (the person that the bug is assigned to). As a tester, you don't really want this bug to get assigned to you while it's still active, but you would like to at least know about the bug. The solution? I use a program called Bug Watcher which looks at the bug database every 15 minutes or so, and tells me if there were any changes to any bug matching a given criteria. In my case, I want to know about NGEN bugs, so I look for any bugs that have the word NGEN in the title. This is great because I am able to really get a good feel as to what are the current issues in the area. Sometimes I can also play around in the area where the bug was found, and find another bug or two. This is also a great way to reduce the number of duplicate bugs. &lt;/P&gt;
&lt;P&gt;Monitoring bugs in your area&amp;nbsp;is a great way to stay &amp;#8220;in the loop.&amp;#8221;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=193407" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davfries/archive/tags/Software+Testing/default.aspx">Software Testing</category></item><item><title>Virtual Server 2005 makes software testing more effecient</title><link>http://blogs.msdn.com/davfries/archive/2004/06/23/163930.aspx</link><pubDate>Wed, 23 Jun 2004 18:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:163930</guid><dc:creator>davfries</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/davfries/comments/163930.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davfries/commentrss.aspx?PostID=163930</wfw:commentRss><description>&lt;P&gt;While that sounds like a press release tagline, it's the honest truth.&lt;/P&gt;
&lt;P&gt;For those of you not familiar with Virtual Server 2005, read this &lt;A href="http://www.crn.com/sections/breakingnews/dailyarchives.jhtml?articleId=21800334"&gt;review&lt;/A&gt;&amp;nbsp;or the &lt;A href="http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx"&gt;Microsoft Virtual Server site&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Some of these features are not unique to Virtual Server, but are useful nonetheless. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Simultaneous Virtual Machines:&amp;nbsp;&lt;/STRONG&gt;I can run many Virtual Machines at the same time, all on one Virtual Server, as long as I have the RAM available to support it. This is nice because as I'm doing various tasks throught the day (bug investigations, test development, test runs), I can have more machines than I actually have to do these tasks. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Web Interface: &lt;/STRONG&gt;This is really handy for letting others use my virtual machine, as well as for accessing multiple Virtual Servers from one machine (I barely log into one of my machines. I just access the Virtual Machines it's hosting through the web interface). I had an interesting experience yesterday as I saw 2 different developers debug an issue on my machine. Previously, this meant the developer would be sitting at my machine, preventing me from getting any work done on that machine. Now it simply meant that I could watch them debug using the web interface, while I carried on business as usual on the REAL machine. It's easier to set up than remote debugging, as well.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Better than Imaging: &lt;/STRONG&gt;As one who has tried many different solutions for maintaining multiple OS's on the same machine (dual/triple boot, Power Quest Drive Image), this is by far the most efficient. Not only is fast to switch between machines (since I can run them simultaneously), it's also great for having a wide array of OS's available at my fingertips, even if I don't have the RAM available to have it running all the time. And when I'm done dirtying up the machine with my tests, I simply roll back to the &amp;#8220;pristine&amp;#8220; state. Goodness.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Fully Utilizing Processors: &lt;/STRONG&gt;In my testing, I do test runs that only utilize one processor, even though I have a dual proc machine. I also have several different &amp;#8220;flavors&amp;#8220; of this run, where different configuration options are set. Using Virtual Server, I can fully utilize the second processor by having the runs running on separate Virtual Machines. Virtual Server (and the OS) take care of the load balancing for me (although there are options to tweak this behavior)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Undo Disks: &lt;/STRONG&gt;It's easy as pie to make updates to the Virtual Machine. Simply go back to the &amp;#8220;pristine&amp;#8220; state, add your updates (say, from Windows Update?) and tell Virtual server to commit undo disks. Now your &amp;#8220;pristine&amp;#8220; state has the latest updates. This is much less painful than maintaining a drive image with the latest updates.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Library&lt;/STRONG&gt; &lt;STRONG&gt;of VM's: &lt;/STRONG&gt;One of the test leads on my team has developed a Virtual Machine library, where I can simply copy a zip file to my machine, unzip it, set a few config options, and voila!&amp;nbsp; I've got myself a new Virtual Machine. Multiply this savings by everyone who uses the Virtual Machine library, and it's easy to see how virtual machine technology can help your bottom line.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;There is not much that I dislike about Virtual Server, but there are a couple of issues:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Lost Changes: &lt;/STRONG&gt;Sometimes, when the machine is rebooted, or there's a power outage, all the stuff that I was working on is lost. The next time I start the VM, I will be in&amp;nbsp;a &amp;#8220;pristine&amp;#8220; state again. This can be pretty painful, depending on what you're doing. Maybe this was just a bug that I hit...&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;A Little Too Easy: &lt;/STRONG&gt;I mentioned that it was easy to make updates to the &amp;#8220;pristine&amp;#8220; state. Well, I once accedentally clicked on the wrong item in the menu, and my &amp;#8220;pristine&amp;#8220; state was now not so pristine. I had to destroy the Virtual Machine and start from scratch (which was not so bad, thanks to the the VM Library). Virtual Server warns you every time you're about to delete data, but it doesn't warn you when you're about to update your &amp;#8220;pristine&amp;#8220; state.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Overall, the benefits I see far outweigh the cons. I'm still a beginner when it comes to virtual technology, and I can't wait to learn more about it.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=163930" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davfries/archive/tags/Software+Testing/default.aspx">Software Testing</category></item><item><title>Pairwise Testing for Dummies</title><link>http://blogs.msdn.com/davfries/archive/2004/06/17/158900.aspx</link><pubDate>Fri, 18 Jun 2004 03:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:158900</guid><dc:creator>davfries</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/davfries/comments/158900.aspx</comments><wfw:commentRss>http://blogs.msdn.com/davfries/commentrss.aspx?PostID=158900</wfw:commentRss><description>&lt;P&gt;So, imagine that you're a tester, and your job is to test a pogo stick.&lt;/P&gt;
&lt;P&gt;Yes, a pogo stick.&lt;/P&gt;
&lt;P&gt;So, you sit down, and brainstorm (like I did just now) a list of things that you might try to do to break the pogo stick, while still within bounds of&amp;nbsp; &amp;#8220;normal&amp;#8221; use. (Running over the pogo stick with a cement truck would certainly break it, but this scenario is not covered by the warranty)&lt;/P&gt;
&lt;P&gt;Let's imagine your list of ideas looks something like this:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Pogo in the rain 
&lt;LI&gt;Pogo off a&amp;nbsp;platform (1 or 2 feet) 
&lt;LI&gt;Pogo in sand 
&lt;LI&gt;Pogo under varying weights (50, 100, 150 lbs)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Now that we have our list ready, let's look at our testing approach&lt;/P&gt;
&lt;P&gt;A relatively simple approach would be to simply&amp;nbsp;go down the list, and write a test case for each variation.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Pogo in the rain 
&lt;LI&gt;Pogo in the sun 
&lt;LI&gt;Pogo on level ground 
&lt;LI&gt;Pogo off a 1 foot platform 
&lt;LI&gt;Pogo off a 2 foot platform 
&lt;LI&gt;Pogo on pavement 
&lt;LI&gt;Pogo in the sand 
&lt;LI&gt;Pogo&amp;nbsp;with 50 lbs 
&lt;LI&gt;Pogo with 100 lbs 
&lt;LI&gt;Pogo with 150 lbs&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;This would certainly do a fair job of testing things, but what&amp;nbsp;about testing for&amp;nbsp;certain problems that appear only when certain combinations are used (Say, pogo in the rain off a 1 foot platform, or pogo&amp;nbsp;into sand under 150 lbs of stress)&lt;/P&gt;
&lt;P&gt;In order to exhaustively test every possible combination, you'll need to design a test matrix like so:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH&gt;Weather&lt;/TH&gt;
&lt;TH&gt;Height&lt;/TH&gt;
&lt;TH&gt;Surface&lt;/TH&gt;
&lt;TH&gt;Weight&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;36 possible combinations... OK, but here's the really bad news.&amp;nbsp; In order to make sure these tests are conducted professionally, you need to hire a professional Pogo Jumper (Boss's orders). Unfortunately, the Pogo Jumper's schedule is quite full (as one would expect for a world-renowned Pogo Jumper!), so he can only stop by on Tuesdays, and it takes him all day to go through one scenario from above (with all the stretching, pogo calibration, and self affirmation exercises involved).&lt;/P&gt;
&lt;P&gt;Hmm, this means it will take you 36 weeks to test the pogo stick.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Not good. &lt;/P&gt;
&lt;P&gt;Not good at all. &lt;/P&gt;
&lt;P&gt;Here's where the notion of pair-wise testing comes in... The basic idea is that most problems (bugs) manifest themselves with&amp;nbsp;combinations of&amp;nbsp;2 factors. Once you start trying every combination of 3 or 4 factors, the test matrix quickly explodes (as we can see from the table above), and you don't find as many bugs as when you were testing combinations of 2 factors. Clearly a case of the &lt;A href="http://www.encyclopedia.com/html/d1/diminish.asp"&gt;law of diminishing returns&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;So, let's take certain rows from out of the table, and make certain that each factor is matched with each other factor at least once. (Rainy should be tested with 0 ft, 1 ft, 2 ft, Sand, Pavement, 50 lbs, 100 lbs, 150 lbs at least once, and the same thing goes for Sunny. Then we must verify that each height is matched with each type of surface, etc. etc.)&lt;/P&gt;
&lt;P&gt;Here's an example of a pairwise matrix derived from the exhaustive matrix above:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH&gt;Weather&lt;/TH&gt;
&lt;TH&gt;Height&lt;/TH&gt;
&lt;TH&gt;Surface&lt;/TH&gt;
&lt;TH&gt;Weight&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Sunny&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;0 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;100 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;1 ft.&lt;/TD&gt;
&lt;TD&gt;Sand&lt;/TD&gt;
&lt;TD&gt;150 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Rainy&lt;/TD&gt;
&lt;TD&gt;2 ft.&lt;/TD&gt;
&lt;TD&gt;Pavement&lt;/TD&gt;
&lt;TD&gt;50 lbs&lt;/TD&gt;&lt;/TR&gt;
&lt;P&gt;&lt;/P&gt;&lt;/TBODY&gt;
&lt;P&gt;&lt;/P&gt;&lt;/TABLE&gt;
&lt;P&gt;So, now we only need to rent out the professional Pogo Jumper for 9 weeks. We've just cut our testing matrix to 1/4 of its original size! And we will still catch any problems that happen with any combination of 2 factors. This really is a great way to think about problems when there are just too many combinations to test exhaustively.&lt;/P&gt;
&lt;P&gt;The best way to create a pairwise matrix is to use a tool, although it's possible to do it manually as well.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.satisfice.com/tools.shtml"&gt;AllPairs&lt;/A&gt; is a free tool to do this.&lt;/P&gt;
&lt;P&gt;Want a better explanation? Go Here: &lt;A href="http://www.developsense.com/testing/PairwiseTesting.html"&gt;http://www.developsense.com/testing/PairwiseTesting.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Still curious?&amp;nbsp;&lt;A href="http://blogs.msdn.com/micahel/archive/2004/04/28/122702.aspx"&gt;http://blogs.msdn.com/micahel/archive/2004/04/28/122702.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Want even more?&amp;nbsp;&lt;A href="http://blogs.msdn.com/nihitk/archive/2004/05/09/128821.aspx"&gt;http://blogs.msdn.com/nihitk/archive/2004/05/09/128821.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And for those of you that are here for the Pogo Sticks: &lt;A href="http://www.post-gazette.com/healthscience/20010528bowgohealth2.asp"&gt;http://www.post-gazette.com/healthscience/20010528bowgohealth2.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Dave&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=158900" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/davfries/archive/tags/Software+Testing/default.aspx">Software Testing</category></item></channel></rss>