<?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>ASI &#187; Software Testing</title>
	<atom:link href="http://www.asi-test.com/ASI/category/qa/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.asi-test.com/ASI</link>
	<description>Automated Solutions, Inc. - Leadership in Software Development, Testing &#38; Test Automation</description>
	<lastBuildDate>Thu, 02 Feb 2012 17:38:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>QTP &#8211; Saving your test run data</title>
		<link>http://www.asi-test.com/ASI/qtp-saving-your-test-run-data/</link>
		<comments>http://www.asi-test.com/ASI/qtp-saving-your-test-run-data/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 16:58:02 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTest Pro]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[data table]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[exportsheet]]></category>
		<category><![CDATA[report]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[test results]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=845</guid>
		<description><![CDATA[You can&#8217;t actually modify the data permanently in the datatable associated with the test script during a test run but there are two approaches you can take in order to save the data into an external file that you can use later.  During &#8220;run-time&#8221; a copy of the datatable is created as the &#8220;run-time datatable&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>You can&#8217;t actually modify the data permanently in the datatable associated with the test script during a test run but there are two approaches you can take in order to save the data into an external file that you can use later. <span id="more-845"></span> During &#8220;run-time&#8221; a copy of the datatable is created as the &#8220;run-time datatable&#8221; and anything you write to the datatable is actually stored in this &#8220;run-time table&#8221; which is actually another instance of the datatable saved with the Test Run.  This has its Pros and Cons depending on how you look at it.  Regardless of your view if you want to permanently save your test data then you basically have two choices:</p>
<ol>
<li>You can use the &#8220;DataTable.Export&#8221; method or &#8220;DataTable.ExportSheet&#8221; method to literally create a new .xls file of the workbook or specified worksheet, and have this new file saved in your file system (locally or on the network).  With this approach you can then use that datatable/spreadsheet however you want including importing it into the permanent datatable attached to the test script if you want.<br />
<img class="aligncenter size-full wp-image-846" title="QTP Export Method for use with the DataTable" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/ExportMethod.png" alt="QTP Export Method for use with the DataTable" width="560" height="445" /><br />
<img class="aligncenter size-full wp-image-847" title="QTP ExportSheet Method for use with the DataTable" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/ExportSheet.png" alt="QTP ExportSheet Method for use with the DataTable" width="560" height="593" /></li>
<li>Also keep in mind that your Test Results Report will show you the data used and created during the test run.  You can view this in the &#8220;Data Table&#8221; in the test report itself.<br />
<img class="aligncenter size-full wp-image-849" title="QTP Test Report showing the Run-Time Data Table" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/TestReport1.png" alt="QTP Test Report showing the Run-Time Data Table" width="587" height="646" /><br />
You can then export that data into an external file too, from the report.  The steps are slightly different depending on the version of QTP you are using, but from QTP v11 you would simply select &#8220;File &gt; Export to File&#8230;&#8221; and then select &#8220;Data Table&#8221; from the &#8220;Report type&#8221; drop-down list.  When you click the &#8220;Export&#8221; button you can then specify a new name and location for the data file (.xls).  This will export ALL the data in the datatable (all the worksheets will be exported this way).  Like the previous approach, you now have an external .xls file that you can now do whatever you want with it, including importing it back into the permanent datatable attached to the test script.</li>
</ol>
<p><img class="aligncenter size-full wp-image-848" title="QTP Test Report Export option to save off the run-time data table" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/TestReport_Export.png" alt="QTP Test Report Export option to save off the run-time data table" width="408" height="298" /></p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/qtp-saving-your-test-run-data/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/qtp-saving-your-test-run-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QTP &#8220;AddWastedTime&#8221; function</title>
		<link>http://www.asi-test.com/ASI/qtp-addwastedtime-function/</link>
		<comments>http://www.asi-test.com/ASI/qtp-addwastedtime-function/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 17:25:30 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTest Pro]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[addwastedtime]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[duration]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[vbscript]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=825</guid>
		<description><![CDATA[QuickTest Pro Tips &#38; Tricks: This article compliments the post &#8220;QTP Performance Testing for a Single User&#8221; found on my website.  During the process of logging how long a process takes, you may know that you have some processing time that you do not want to take into account.  You may have some &#8220;wait&#8221; statements [...]]]></description>
			<content:encoded><![CDATA[<p>QuickTest Pro Tips &amp; Tricks: This article compliments the post &#8220;<a title="&quot;QTP Performance Testing for a Single User&quot;" href="http://www.asi-test.com/ASI/qtp-performance-testing/">QTP Performance Testing for a Single User</a>&#8221; found on my website.  During the process of logging how long a process takes, you may know that you have some processing time that you do not want to take into account.  You may have some &#8220;wait&#8221; statements in your test script to create some delays for the automation script or potentially a side process that you don&#8217;t want to include in the overall timing.  In this case you would want to use the function &#8220;AddWastedTime&#8221; to your test script. <span id="more-825"></span> This will enable you to either specify a specific amount of time that you want logged as &#8220;Wasted Time&#8221; or you can use the &#8220;MercuryTimers&#8221; to record how long a section of code takes and that is the time you wanted recorded as the &#8220;Wasted Time&#8221;.  Here&#8217;s a simple example of using the &#8220;AddWastedTime&#8221; with the &#8220;Start/End Transaction&#8221; functions and the &#8220;MercuryTimers&#8221;.</p>
<p><img class="aligncenter size-full wp-image-826" title="Example Code1" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/Example-Code1.png" alt="QuickTest Pro AddWastedTime function" width="590" height="611" /></p>
<p>Let&#8217;s breakdown this simple script, I have three transaction times being recorded &#8211; &#8220;trans1&#8243;, &#8220;trans2&#8243; and &#8220;trans3&#8243;.  &#8220;trans1&#8243; encapulates &#8220;trans2&#8243;, and &#8220;trans3&#8243; logs its own time at the end of the script.</p>
<p><img class="aligncenter size-full wp-image-827" title="Example Code2" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/Example-Code2.png" alt="QuickTest Pro AddWastedTime function" width="590" height="611" /></p>
<p>The timers and duration times breakdown as follows:</p>
<p>&#8220;trans2&#8243; &#8211; this transaction actually completes before the &#8220;trans1&#8243; because it is contained within the &#8220;trans1&#8243; wrapper (nested within the &#8220;trans1&#8243; code), so if we look at the results for &#8220;trans2&#8243; you will see that it contains a &#8220;wait 3&#8243; statement and an &#8220;AddWastedTime&#8221; of 1000 milliseconds (which is 1 second).  In looking at the test results report you can see that the &#8220;Total Duration&#8221; time is 3.0300 seconds (the 3 seconds from the &#8220;wait&#8221; statement and a slight delay for the execution of the statements themselves) and it also logs the &#8220;Wasted Time&#8221; of 1 second.</p>
<p><img class="aligncenter size-full wp-image-829" title="trans2results" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/trans2results.png" alt="QuickTest Pro AddWastedTime function Test Results" width="593" height="524" /></p>
<p>&#8220;trans1&#8243; &#8211; this has a total duration time of approximately 12 seconds.  Simply add up the &#8220;wait&#8221; statements contained within the &#8220;trans1&#8243; transaction wrapper and add a slight delay for the execution of the statements themselves.  As you can see in this image the &#8220;Total Duration&#8221; time is 12.1080 seconds.  Now the &#8220;Wasted Time&#8221; is all the &#8220;AddWastedTime&#8221; statements contained within the &#8220;trans1&#8243; wrapper, so this includes the &#8220;Services.AddWastedTime MercuryTimers(&#8220;timer1&#8243;).Stop&#8221; statement (which is a dynamic statement based on the &#8220;MercuryTimers(timer1)&#8221; wrapper around a subset of code (the &#8220;wait 4&#8243; statement in this case &#8211; however this would normally be a real chunk of code)) and the &#8220;Services.AddWastedTime 1000&#8243; which is a hardcoded value where we are saying that &#8220;we want to reduce the time by 1 second&#8221;.  Added together this is 5 seconds with a slight delay for the execution of the statements themselves &#8211; which as you can see in the test results report is 5.0190 seconds of &#8220;Wasted Time&#8221;.</p>
<p><img class="aligncenter size-full wp-image-828" title="trans1results" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/trans1results.png" alt="QuickTest Pro AddWastedTime function Test Results" width="593" height="524" /></p>
<p>&#8220;trans3&#8243; &#8211; Finally we have the last transaction time being recorded and notice it is outside of the &#8220;trans1&#8243; wrapper.  So this is self-contained code at the end of the script and logs its own time which in this case is a hardcoded 1 second using the &#8220;Services.AddWastedTime 1000&#8243; statement.  Notice the timers from above do not affect this timer.</p>
<p><img class="aligncenter size-full wp-image-830" title="trans3results" src="http://www.asi-test.com/ASI/wp-content/uploads/2012/01/trans3results.png" alt="QuickTest Pro AddWastedTime function Test Results" width="593" height="524" /></p>
<p>As you can see the &#8220;Wasted Time&#8221; is logged in the Test Results for a normal QTP test process, and realize it is also integrated with LoadRunner and the Business Process Monitor.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/qtp-addwastedtime-function/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/qtp-addwastedtime-function/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QTP Performance Testing for a Single User</title>
		<link>http://www.asi-test.com/ASI/qtp-performance-testing/</link>
		<comments>http://www.asi-test.com/ASI/qtp-performance-testing/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 18:01:02 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTest Pro]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[timers]]></category>
		<category><![CDATA[transaction]]></category>
		<category><![CDATA[variable]]></category>
		<category><![CDATA[vbscript]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=802</guid>
		<description><![CDATA[Performance testing can be done with QTP, but in a limited scope &#8211; only from a single user standpoint, for functional testing.  Years ago when the &#8220;QTP VUser&#8221; for LoadRunner was introduced they incorporated the &#8220;start_transaction&#8221; &#38; &#8220;end_transaction&#8221; functions.  These are used by LoadRunner for tracking performance timings for load testing, but you can also [...]]]></description>
			<content:encoded><![CDATA[<p>Performance testing can be done with QTP, but in a limited scope &#8211; only from a single user standpoint, for functional testing.  Years ago when the &#8220;QTP VUser&#8221; for LoadRunner was introduced they incorporated the &#8220;start_transaction&#8221; &amp; &#8220;end_transaction&#8221; functions.  These are used by LoadRunner for tracking performance timings for load testing, but you can also use them in a regular QTP test script for functional testing. <span id="more-802"></span>  These statements have been updated to &#8220;Services.StartTransaction &#8220;&lt;transaction name&gt;&#8221; &#8221; and &#8220;Services.EndTransaction &#8220;&lt;same transaction name&gt;&#8221; &#8220;.</p>
<p style="text-align: center;"><img class="size-full wp-image-809 aligncenter" title="StepGenerator" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/StepGenerator1.png" alt="QTP Step Generator for StartTransaction" width="356" height="491" /></p>
<p>These statements will log the duration time to the Test Results Report, which will tell you how long the &#8220;process&#8221; that resides between the two statements took to execute.  Typically what you would do is wrap a submission or transaction process to see how long it is taking; like submitting an order or new user profile.  In using the QTP training application we will time the submission of the order, so find the &#8220;Insert Order&#8221; button statement and your synchronization statement to know when the insert process has completed. </p>
<p><img class="aligncenter size-full wp-image-805" title="Test Script" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/Script1.png" alt="QTP Test Script" width="592" height="535" /></p>
<p>So just before the &#8220;Insert Order&#8221; button you would put a Services.StartTransaction &#8220;InsertOrder&#8221; statement and once you are synchronized on the success of the submission of the order you will have an Services.EndTransaction &#8220;InsertOrder&#8221; statement (placed right after the sychronization statement).</p>
<p><img class="aligncenter size-full wp-image-806" title="Script with Transaction statements" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/Script2.png" alt="QTP Test Script with Transaction statements" width="592" height="501" /></p>
<p>This will tell you how long it took to insert a new order and you can pass or fail this test step based on your functional requirements as to how long is an acceptable timeframe.  These statements will log the results to the Test Results Report directly and appear like this:</p>
<p><img class="aligncenter size-full wp-image-803" title="QTP Test Results" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/Results1.png" alt="QTP Test Results for Transaction statements" width="631" height="615" /></p>
<p>The disadvantage of this statement is that it only logs the results to the Test Results Report, so you don&#8217;t have the actual time within the test script in order to code your own logic on passing or failing the statement.  People complained about this for many years and finally they came out with a new function prior to the sale of &#8220;Mercury Interactive&#8221; to &#8220;HP&#8221;, so the function name actually has the old company name contained in it.  The functions are &#8220;MercuryTimers(&#8220;&lt;timer name&gt;&#8221;).Start&#8221; and &#8220;MercuryTimers(&#8220;&lt;timer name&gt;&#8221;).Stop&#8221;.  The Stop function returns the duration time as a return code so you can use it within your test script.  You would use this function the same as the StartTransaction statements; identify were in the test script you want the statements and then type these statements in (note that using the Step Generator will produce the wrong syntax so it is best to just manually type the statement in your test script in the Expert View.</p>
<p><img class="aligncenter size-full wp-image-807" title="ScriptTimers" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/ScriptTimers.png" alt="QTP Test Script showing the use of the Timers functions" width="592" height="541" /></p>
<p>Notice that I added a &#8220;msgbox&#8221; statement to display the duration time so that you can see how it is returned as a return value into a variable and can be used in the test script.  Notice that the time is returned in milliseconds.</p>
<p><img class="aligncenter size-full wp-image-811" title="Timing Run" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/TimingRun1.png" alt="QTP Test Script using Timers and displaying the returned time value" width="603" height="721" /></p>
<p>The odd thing is that when Mercury added this function to QTP in order to provide you with the duration time as a return code within the script, they didn&#8217;t keep the feature of also logging it to the Test Results Report.  Notice in this image that there is no reference to the fact that the &#8220;MercuryTimers&#8221; function was executed. </p>
<p><img class="aligncenter size-full wp-image-810" title="Timing Report" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/TimingReport.png" alt="QTP Test Results Report showing no log of the Timers function" width="631" height="615" /></p>
<p>So if you want to log the time to the Test Results Report (which I highly recommend so that you have a log of the duration time) then you will want to add your own &#8220;Reporter.ReportEvent&#8221; statement.</p>
<p><img class="aligncenter size-full wp-image-808" title="Script Timers" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/ScriptTimers2.png" alt="QTP Test Script using Timers in a conditional statement" width="595" height="541" /></p>
<p>And then the report will have entries for each timing and because I used a conditional statement to verify the duration time against the functional requirement of taking less than 6 seconds, I can then pass and fail the statement automatically.</p>
<p><img class="aligncenter size-full wp-image-804" title="Results Timer" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/12/Results2Timer.png" alt="QTP Test Results showing the log of the timers value using the Reporter.ReportEvent statements" width="631" height="486" /></p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/qtp-performance-testing/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/qtp-performance-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What is A/B testing?</title>
		<link>http://www.asi-test.com/ASI/what-is-ab-testing/</link>
		<comments>http://www.asi-test.com/ASI/what-is-ab-testing/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 19:25:48 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[ASI General]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[A/B]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=792</guid>
		<description><![CDATA[Normally this is where you are testing out two different consumer experiences to see which one yields better results.  It might be for traffic, path progression, cosmetic appeal, click-throughs, etc.  This is normally conducted by the business, in Production and performed by driving a specific volume of traffic evenly across the two platforms for a [...]]]></description>
			<content:encoded><![CDATA[<p>Normally this is where you are testing out two different consumer experiences to see which one yields better results.  It might be for traffic, path progression, cosmetic appeal, click-throughs, etc.  This is normally conducted by the business, in Production and performed by driving a specific volume of traffic evenly across the two platforms for a limited time while measuring the results to determine which presentation is more appealing to the consumer and ultimately generating more revenue.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/what-is-ab-testing/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/what-is-ab-testing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quality Center Backup Strategy</title>
		<link>http://www.asi-test.com/ASI/quality-center-backup-strategy/</link>
		<comments>http://www.asi-test.com/ASI/quality-center-backup-strategy/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 02:21:15 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Quality Center]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Test Management]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[qc]]></category>
		<category><![CDATA[quality center]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=738</guid>
		<description><![CDATA[If implemented properly, the Quality Center will become an incredible resource for all your testing information in your test team and become the core for your test strategy &#38; methodology.  Because of this it is extremely important for you to protect this information with not only proper security but to backup this information in order [...]]]></description>
			<content:encoded><![CDATA[<p>If implemented properly, the Quality Center will become an incredible resource for all your testing information in your test team and become the core for your test strategy &amp; methodology.  Because of this it is extremely important for you to protect this information with not only proper security but to backup this information in order to protect you in the case of an emergency like hardware failure, data loss or environmental catastrophe.  It is important to understand at a high-level the basic data storage of the Quality Center.   <span id="more-738"></span></p>
<p>The Quality Center is a software application accessed through the Internet Explorer browser with a database on the backend.  Most of the data you enter into the Quality Center like test cases, requirements, defects, etc. become &#8220;data records&#8221; stored in the database.  In my case I&#8217;m currently using SQL Server, so all this data is stored in this SQL Server database on the backend that the Quality Center interacts with.  So the first thing after installing the Quality Center is that you should setup a regular schedule of doing backups of your database.  But what a lot of people fail to realize or forget is that a lot of information is NOT stored in the database but instead stored in the File System where the Quality Center is installed.  Things stored here are QuickTest Pro scripts, and file attachments like images, files, snapshots, etc.  So you should also schedule backups of the file system.  You should try to get these backup software applications to backup these two entities (database and file system) as close in time as possible in order to keep them in sync as close as possible.</p>
<p>But realize that most likely your database backup software is not the same as your file system backup application.  Therefore they will not be in sync exactly if you needed to perform a complete restore.  In the case of a catastrophe these backups will be fine.  But what about basic everyday mistakes?  I have run into this several times where a tester accidently deletes an entire folder in the Test Plan module instead of the individual test case they were trying to delete.  Guess what, the Quality Center does not have an &#8220;undo&#8221; button for this nor does it have a recycle bin that you can grab the test cases from.  When this first happened to me, the folder the tester deleted contained 20 test cases in it.  All 20 test cases were lost instantly.  When we considered the backups we realized that the database and file system backups were performed once a day at 1am in the morning when no one was using the software and the system load was low.  Then we realized that to get those older 20 test cases back we would be restoring back to the previous day which meant that we gained those 20 test cases back, but lost everything else that was done today like all the other new test cases created, defects created, test sets executed and all the history.  At this point we realized it wasn&#8217;t worth the loss.  Our only choice was to recreate the test cases manually.  However I quickly came up with a new strategy &#8211; I now regularly create a backup QC project that is a copy of the current project we are working on, in addition to the database &amp; file system backups.  In the Quality Center Site Administration tool, I create a new Domain called &#8220;BACKUP&#8221; and then I make a new QC Project in this domain.  The new QC project is named the same as the project I&#8217;m going to copy with the name &#8220;_Backup&#8221; and the date like &#8220;102511&#8243; on the end, and then I specify to make a copy of my current project so it basically creates a duplicate project at this point in time.  So if my project name is &#8220;ABCorporate&#8221; then my backup I&#8217;m creating in this example would be called &#8220;ABCorporate_Backup102511&#8243;.  The big benefit to this approach is that you have a working QC Project that you can actually log into and access your information like normal.  So in my scenario where a folder was deleted and we lost 20 test cases, I could now log into this backup QC Project and use the reporting features of QC to generate a report file that contains the 20 test cases and then use one of the QC Add-in macros (Word or Excel) to import the test cases using this new report file, back into my existing QC project.  This saves a lot of time and effort.  I keep the projects deactivated as a safety mechanism so that no one gets confused and logs in and changes something.  This way it is preserved and I activate the project only if I need to login to find some data to export.</p>
<p><img class="aligncenter size-full wp-image-739" title="Quality Center Site Administration" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/10/QCSiteAdmin.png" alt="Quality Center Site Administration" width="419" height="291" /></p>
<p>Since hard drive space is very affordable these days, I can easily keep 7 to 10 copies of the QC Project as working backup copies.  Then after that when I create a new copy I&#8217;ll delete the oldest version. This has been a great approach as I don&#8217;t have to deal with the tech support team responsible for the backups and try to coordinate a restore that ends up wiping out more data than I actually lost. Now I can just log directly into a backup copy and export the data. </p>
<p>The only catch to this is that you will most likely not create a project copy daily, so you still run the risk of not having recent data available in this approach but it does cover you on the larger quantity of older data that will occupy about 75% of your QC Project.</p>
<p>So as a review, my backups consist of creating the following:</p>
<ol>
<li>Database backup</li>
<li>File System backup</li>
<li>New QC Project that is a copy of the existing project as a backup</li>
</ol>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/quality-center-backup-strategy/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/quality-center-backup-strategy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Web Browser Versions, Stats and Testing</title>
		<link>http://www.asi-test.com/ASI/browser-version-stats-testing/</link>
		<comments>http://www.asi-test.com/ASI/browser-version-stats-testing/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 20:52:23 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Test Management]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[tester]]></category>
		<category><![CDATA[version]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[Windows7]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=712</guid>
		<description><![CDATA[If your business is on the internet, then you need to be concerned with how your website looks on the various browsers that are currently available to users.  You never know what browser a user is going to use to view your website, and if it doesn&#8217;t look good then they will leave and you [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">If your business is on the internet, then you need to be concerned with how your website looks on the various browsers that are currently available to users.  You never know what browser a user is going to use to view your website, and if it doesn&#8217;t look good then they will leave and you most likely lost a potential customer.  When you start to look at this you quickly realize there are a lot of combinations to worry about.  Besides browsers, there are also various versions to worry about.  Like any software application, fixes and improvements are regularly made and so new versions are released.  This holds true for web browsers.  Today&#8217;s most dominate browsers on the market are: <span id="more-712"></span></p>
<ol>
<ol>
<li>Internet Explorer</li>
<li>Firefox</li>
<li>Chrome</li>
<li>Safari</li>
<li>Opera</li>
</ol>
</ol>
<p>But then within each of these browsers there are different versions available to the general public.  Just because the company comes out with a new version of the browser doesn&#8217;t mean that people upgrade to it.  So lots of people will be visiting your website using different versions of these browsers.  So what do I test and support?  Two things you should monitor: #1 What are the Global Internet Statistics and #2 What are your actual customers using.</p>
<p><strong>#1 What are the Global Internet Statistics</strong></p>
<p>It is always advisable to monitor what is going on with technology and where its headed.  So you should monitor what the global traffic is like so that you can gage the direction of technology usage.  In doing so you should use multiple sources in order to get a non-biased result.  I use 5 different sites, take their stats and identify an average.  The sites I use are:</p>
<p><strong>StatCounter GlobalStats</strong><br />
Stats are based on aggregate data collected by StatCounter on a sample exceeding 15 billion pageviews per month collected from across the StatCounter network of more than 3 million websites. Stats are updated and made available every 4 hours, however are subject to quality assurance testing and revision for 7 days from publication.</p>
<p><strong>NetMarketShare</strong><br />
We collect data from the browsers of site visitors to our exclusive on-demand network of live stats customers. The data is compiled from approximately 160 million visitors per month. The information published is an aggregate of the data from this network of hosted website statistics.</p>
<p><strong>W3Counter</strong><br />
This report was generated … based on the last 15,000 page views to each website tracked by W3Counter. W3Counter’s sample currently includes 47,262 websites. The browser market share graph includes data from all versions of the named browser families, not only the top 10 as listed below.</p>
<p><strong>StatOwl</strong><br />
Our data is made up of an average of 28 million unique visitors per month to the network of web sites that we collect data from. We do our best to collect data only from web sites that have a broad appeal taking things like target market, audience, geographic location and type of web site into consideration. We attempt to cover a good mix of all of these indicators to provide as accurate a look as possible into Internet browsing trends.</p>
<p><strong>Clicky</strong><br />
Marketshare is calculated from over 300 million daily page views across the 300,000+ web sites that use Clicky Web Analytics.</p>
<p>w3schools.com is another site however their monitoring is based on their traffic usage and since they are a technical site they admit their stats are skewed towards a technical audience which is willing to experient with different browsers and use tools that the average user will not use.  This holds true as you will see their stats are very different than they other 5 sites, therefore I don&#8217;t use their stats in my analysis at my fulltime job since my customer base is non-technical.</p>
<p>As of September 2011, the global stats from each of the 5 sites are:</p>
<p><img class="size-full wp-image-713 alignnone" title="Browser Stats 5 Sites" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/10/1_BrowserStats5Sites.png" alt="Browser Stats 5 Sites" width="662" height="399" /></p>
<p>Averaging them together presents this view of the Global Average Percentage on Browser Usage:</p>
<p><img class="size-full wp-image-714 alignnone" title="Browser Global Average" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/10/2_GlobalAverage.png" alt="Browser Global Average" width="483" height="291" /></p>
<p>Now it is important that you track your customer usage and add that to your monitoring.  This stat can be gathered from tools like AWStats, Google Analytics and your own logging in your database if you process user records.  When you add this information to the graphing grid you will get a good idea what your customers are using and whether they are trending like the general internet traffic or if they are slightly different.  It is very important to remember that what your customers are using is the most important stat.</p>
<p><strong>Browser Versions:</strong> Now the next bit of analysis is to drilldown into the browser versions.  In looking at the global averages, Internet Explorer and Firefox make up about 70% of all the usage.  Since you can come up with all sorts of older version combinations out there, I only deal with older versions for Internet Explorer and Firefox.  The other browsers (Chrome, Safari and Opera) I just test the latest version available on the market.</p>
<p>If we look at Internet Explorer you will notice that once you hit IE6 the usage really drops, therefore we only support back to IE7.</p>
<p><img class="size-full wp-image-715 alignnone" title="IE Version Stats" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/10/3_IEVersionStats.png" alt="IE Version Stats" width="471" height="327" /></p>
<p>In looking at Firefox the two most used versions are Firefox 6 and Firefox 3.6.  The odd thing is that Firefox 3.6 has so much traffic but that can be attributed to the fact that Firefox is available on both Windows OS and Linux.  I&#8217;m not positive on this but the opinion floating around is that until recently, the latest &#8220;common&#8221; version on Linux was 3.6, but with the release of Firefox 7 in October, Firefox upgraded Linux too so this stat should shift once we get in the monthly stats for October.</p>
<p><img class="size-full wp-image-716 alignnone" title="Firefox Version Stats" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/10/4_FirefoxVersionStats.png" alt="Firefox Version Stats" width="468" height="326" /></p>
<p><strong>Testing:</strong> now how do I handle supporting these various browsers.  Here is my strategy &#8211; our development team is Linux based therefore they only use Firefox.  So during their coding and unit testing they will see how the site looks in Firefox so this takes care of testing on the latest version of Firefox.  Since the QA team is primarily testing the UI through browsers (backend testing is different) and not tied to an OS, the entire QA Team is on Windows and uses Internet Explorer (we also do this because we use the Quality Center and it only runs on IE).  So we have Firefox and IE taken care of.  Now for the other browsers and older versions I have a PC test lab consisting of many PCs with different configurations and containing various browser versions on each.  On the test lab wall is a grid listing what is installed on each PC so if someone wants to test IE7 they can look on the grid and see which PC has that version and they can then log into that machine to test the site on that older version.  Likewise I have each PC&#8217;s configuration also taped to its monitor for easy reference.   Depending on the OS, I have several of the systems setup so that the test team can perform a Remote Desktop into the machines remotely from their cubes.  This way they don&#8217;t have to physically go over to the Test Lab.  I&#8217;m using physical machines because I was able to utilize hardware that was rotated out of regular inventory but fine for our use since they are primarily used just for internet access.  If you don&#8217;t have physical hardware to use, another great option is to something like VMWare on a server that can be setup with numerous virtual instances to simulate numerous machines.  This is a very effective way of &#8220;creating&#8221; the effect of having many different configurations, remote access and easy maintenance for the IT team.</p>
<p>If you need older browser versions, a great site that contains tons of versions to pick from for FREE is <a href="http://www.oldapps.com/category/browsers">OldApps.com</a> (note: I have not had a problem with that site but you download apps at your own risk.  Always scan them for viruses and adware prior to running the install program).</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/browser-version-stats-testing/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/browser-version-stats-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Defect Tracking</title>
		<link>http://www.asi-test.com/ASI/open-source-defect-tracking/</link>
		<comments>http://www.asi-test.com/ASI/open-source-defect-tracking/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 12:28:41 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Test Management]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[defect]]></category>
		<category><![CDATA[defect tracking]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=685</guid>
		<description><![CDATA[I have always used the Quality Center which is not open source and rather expensive but the best test management tool out there offering many features other than just defect tracking.  But if you can&#8217;t afford it then the two open source defect tracking tools I know of and have used that are good and will [...]]]></description>
			<content:encoded><![CDATA[<p>I have always used the Quality Center which is not open source and rather expensive but the best test management tool out there offering many features other than just defect tracking.  But if you can&#8217;t afford it then the two open source defect tracking tools I know of and have used that are good and will work fine are Bugzilla and Mantis. <span id="more-685"></span></p>
<div align="left"><img class="alignleft size-full wp-image-686" title="BugzillaLogo" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/09/BugzillaLogo.png" alt="Bugzilla" width="151" height="49" /></div>
<p>Bugzilla: <a href="http://www.bugzilla.org/download/"  target="_blank">http://www.bugzilla.org/download/</a><br />
Bugzilla is probably the most popular, well known and used open source defect tracking tool.  It works fine and is found in many companies.  My only comment is that it is and was designed as a &#8220;defect tracking tool&#8221;.  I&#8217;ve been in many shops where they started using it for other things that it wasn&#8217;t designed for and it got messy.  Your best success will be to use it for what it was designed for.</p>
<div align="left"><img class="alignleft size-full wp-image-687" title="MantisLogo" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/09/MantisLogo.png" alt="Mantis" width="139" height="61" /></div>
<p>Mantis: <a href="http://www.mantisbt.org/download.php" target="_blank">http://www.mantisbt.org/download.php</a><br />
Mantis I&#8217;ve used once and it was fine.  It is similar to Bugzilla and free.  Honestly there is not much needed to make a tool a decent defect tracking tool.</p>
<p>Both of these tools provide the basics of:</p>
<ol>
<li>Defect logging</li>
<li>Defect reporting</li>
<li>Multiple user capability</li>
<li>Easy to maintain</li>
<li>Easy to use</li>
<li>Customization</li>
</ol>
<p>The majority of them will store defects as records in a database sharing common fields (columns) for information.  For presentation in the tool, most will present the defects in a table grid, like a spreadsheet.  So besides the elements I just listed above, the most important factors in a tool are:</p>
<ol>
<li>Ability to create custom fields &#8211; needed to customize the tool to your needs in your environment.  Ability to customize existing fields and create new ones.  This should include data types and also the ability to create list values to select from.</li>
<li>Reporting &#8211; needed to present the defects found, ones being worked on, ones that are closed and also to be able to see trending.  Filtering and sorting are needed for robust reporting.</li>
<li>Exporting defects &#8211; the ability to export your defects based on a certain criteria is very useful and needed in most environments.</li>
<li>Email notification &#8211; this is very useful and enables developers and testers to know about the state of a defect.</li>
</ol>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/open-source-defect-tracking/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/open-source-defect-tracking/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learn QuickTest Pro v10 Online</title>
		<link>http://www.asi-test.com/ASI/learn-quicktest-pro-v10-online/</link>
		<comments>http://www.asi-test.com/ASI/learn-quicktest-pro-v10-online/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 13:00:46 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[ASI General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTest Pro]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[checkpoint]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[learn]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[vbscript]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=425</guid>
		<description><![CDATA[QuickTest Pro version 10 Online Training - On Sale for $50!  Includes 12 lessons consisting of 179 online pages of training material!  Begin your learning experience online now; work at your own pace, at home, on the road or where it is convenient for you, and on your own time schedule.  The QuickTest Pro v10 Basics course [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>Q<span style="text-decoration: underline;">uickTest Pro version 10 Online Training - On Sale for $50!</span></em></strong>  Includes 12 lessons consisting of 179 online pages of training material!  Begin your learning experience online now; work at your own pace, at home, on the road or where it is convenient for you, and on your own time schedule.  The QuickTest Pro v10 Basics course is developed with eLearning presentations containing robust feature explanations, images and some videos showing you exactly how to perform the features without guessing. <span id="more-425"></span>  Online training is great because of the flexibility it provides you!  As a consultant this gives you skills that are in demand and you will make back the cost of the class on your first day of a new consulting engagement.  If you are unemployed this is a worthwhile investment that can give you the edge in an interview and provide you a skillset that is extremely marketable and desirable by companies looking for highly skilled testers.  This can be a small investment for a great new opportunity!</p>
<p>  Online training is great because you can work at your own pace, whenever it is convenient for you.  You can do this work during down-time at work, over your lunch break, at home, or even at your kids sports practice if a wireless connection is available (we&#8217;ve had parents tell us how their kids hockey rink has wireless and so they would bring their laptop to the practice and go over some of the lessons during the practice). </p>
<p>  We have customers from around the world to include the entire United States, Canada, Europe, New Zealand and Australia.  What makes my training so popular is that I have 17 years of experience implementing the product line in real-world scenarios.  So I&#8217;m not some tech writer or an instructor who has never actually used the tool.  I have implemented solutions for some of the biggest corporations with incredible success. Click here for <a href="http://www.asi-test.com/Docs/Company_Reference_List.pdf" target="_blank">PDF file of Company Reference List</a></p>
<p><strong><span style="text-decoration: underline;">Course Details:</span></strong> This lesson includes over 12 lessons consisting of 179 online training pages of material for only $50.  The Lessons covered in this class are:</p>
<ol>
<ol>
<li>Introduction</li>
<li>Record &amp; Playback</li>
<li>Object Repository</li>
<li>Standard Checkpoints</li>
<li>Regular Expressions</li>
<li>Bitmap Checkpoints</li>
<li>Text Checkpoints</li>
<li>Database Checkpoints</li>
<li>Parameterization</li>
<li>Data Driven Testing</li>
<li>Output Values</li>
<li>Actions</li>
</ol>
</ol>
<p><a href="http://www.asi-test.com/ASI/products/">Read more about this class on our &#8220;Products&#8221; page.</a></p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/learn-quicktest-pro-v10-online/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/learn-quicktest-pro-v10-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Severity and Priority &#8211; Do we really need them?</title>
		<link>http://www.asi-test.com/ASI/severity-and-priority/</link>
		<comments>http://www.asi-test.com/ASI/severity-and-priority/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 17:06:43 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[ASI General]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Test Management]]></category>
		<category><![CDATA[defect]]></category>
		<category><![CDATA[priority]]></category>
		<category><![CDATA[severity]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=574</guid>
		<description><![CDATA[In an ideal environment all the defects found in a release would get fixed before the project went live in Production.  However with today&#8217;s fast paced businesses, projects are typically defined for a specifc delivery date with very little to no room for date extensions.  This is largely due to having to meet a business [...]]]></description>
			<content:encoded><![CDATA[<p>In an ideal environment all the defects found in a release would get fixed before the project went live in Production.  However with today&#8217;s fast paced businesses, projects are typically defined for a specifc delivery date with very little to no room for date extensions.  This is largely due to having to meet a business commitment to a customer or to beat the competition to the market on new functionality.  Therefore some defects might have to be deferred to a second phase/release.  If this was the case, what defects should we work on now and which ones get deferred if we can&#8217;t get them all done in the time-frame we have to work in? <span id="more-574"></span></p>
<p>Severity helps to define this.  By identifying the impact to the project functionality, we can determine which defects are more important and need to be worked on now and which ones could be ignored in the short-term.  In addition, severity also helps provide a metric on what kind of quality of work the development team is delivering to the QA Team.  An example of the severities we work with are as follows:</p>
<p>1-Showstopper:  This is critical functionality that does not work and must exist for the application to go into production, and there is <span style="text-decoration: underline;"><strong>no</strong> “work around”</span>.</p>
<p>2-Major:  This is critical functionality that does not work and must exist for the application to go into production, however there <span style="text-decoration: underline;"><strong>is</strong> a “work around”</span>.</p>
<p>3-Average:  This bug is serious in nature but less severe than major problems.  A simple work around for this bug exists.  There is an insufficient or unclear error message that has a minor impact on product use.</p>
<p>4-Minor:  This bug is mostly cosmetic, user friendly or considered an enhancement for future release.</p>
<p>Now lets say we have 15 defects to work on and the break down is as follows:</p>
<p>Showstopper: 3<br />
Major: 8<br />
Average: 2<br />
Minor: 2</p>
<p>If you are working on a tight timeline and there is a chance that not all the defects will get addressed, then you need to define the order of importance otherwise the developers will have a tendency to work on the easy ones first to reduce their queue.  However if you can&#8217;t get them all done before the release date, what good is it to have all the Minor, Average and most of the Majors done, but you go live in Production with Showstoppers that directly impact major functionality.  So as managers and Project Managers we would want to provide some guidance to the development team as to what is most important to work on first.  Where there are only 3 Showstoppers, that is pretty easy to assign to indviduals but what about the Majors?  There are 8 Majors so which ones do we work on first?  This is where Priority comes in to play.</p>
<p>Priority defines the order of the defects to be worked on within the same Severity category.  So we will simply rank the importance from 1 through 8 within the Major defects in order to make sure the most important ones are worked on first. </p>
<p>Severity and Priority don&#8217;t have to be complex; it is simply intended to be a communication mechanism to help let the developers know which issues to work on and in what order.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/severity-and-priority/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/severity-and-priority/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuickTest Pro Data Table Limitations</title>
		<link>http://www.asi-test.com/ASI/quicktest-pro-data-table-limitations/</link>
		<comments>http://www.asi-test.com/ASI/quicktest-pro-data-table-limitations/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 17:06:40 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[QuickTest Pro]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[data table]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[max column]]></category>
		<category><![CDATA[max row]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.asi-test.com/ASI/?p=473</guid>
		<description><![CDATA[This article is written based on QuickTest Professional version 10, however it applies to most of the past versions. What is the Maximum Rows and Columns in QuickTest Pro? The data table built into QuickTest Professional is actually a 3rd party product that was integrated into the product back when Mercury Interactive first created AstraQuickTest.  [...]]]></description>
			<content:encoded><![CDATA[<p>This article is written based on QuickTest Professional version 10, however it applies to most of the past versions.</p>
<p style="text-align: center;"><strong>What is the Maximum Rows and Columns in QuickTest Pro?</strong></p>
<p>The data table built into QuickTest Professional is actually a 3rd party product that was integrated into the product back when Mercury Interactive first created AstraQuickTest.  This tool looks and acts like Excel for the most part, and likewise includes some of the Excel limitations.  One of the issues is that Excel has a limitation on the amount of rows and columns that exist in a spreadsheet.  This limitation carries over to the QTP Data Table. <span id="more-473"></span> Microsoft Excel has increased the limitations with certain versions of Excel and is basically in three groupings of size (see the image below). </p>
<p><img class="size-full wp-image-474 alignnone" title="Excel Maximum Row and Column" src="http://www.asi-test.com/ASI/wp-content/uploads/2011/04/ExcelMaxRowColumn.jpg" alt="Excel Maximum Row and Column" width="523" height="214" /></p>
<p style="text-align: left;">Unfortunately the 3rd party product QTP is using is not updated beyond the mid-tier in the table displayed (highlighted in yellow).  The QTP Data Table is in the format of an &#8220;Excel 97-2003 Workbook&#8221; so the worksheet (Global or Action) will have a limitation of 65,536 rows and a limit of 256 columns.  The rows are not normally an issue, but I have run into the limitation of 256 columns due to the number of fields that needed to be parameterized in an application when making a data-driven test. </p>
<p>An approach to handling the column limitation is to break the script up into major areas and then use the local &#8220;Action&#8221; worksheet instead of putting everything in the Global worksheet.  For example if you have a web application that displays numerous fields over a series of web pages, then make each web page a separate QTP &#8220;Action&#8221; so that the fields can be stored in the &#8220;Action&#8221; data table (worksheet).  The side-effect from this is that you loose the built-in feature of being able to say &#8220;run my script on all the 30,000 rows of data I have&#8221;.  This is normally defined in the &#8220;Test &gt; Settings&#8221; Run tab which uses the &#8220;Global&#8221; data table to drive the test iterations for a QTP script.  By having the data now split across numerous Action data tables you will need to control the row being executed using a counter and specifying the row to use with the DataTable.SetCurrentRow method within each Action.  Try the following approach:</p>
<ol>
<li>Create a &#8220;main driver&#8221; Action that will call each of the &#8220;Actions&#8221; from it.</li>
<li>Define an input parameter for each Action.</li>
<li>In the &#8220;main driver&#8221; use a For Loop to specify how many rows of test data to execute and then within the loop call each Action passing in the loop counter.</li>
<li>Within each Action, use the DataTable.SetCurrentRow method referencing the input parameter to know which row you are on.</li>
</ol>
<p>This should help you overcome the column limitation.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=282419851791791&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://www.asi-test.com/ASI/quicktest-pro-data-table-limitations/" send="true" layout="button_count" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.asi-test.com/ASI/quicktest-pro-data-table-limitations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

