<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Automation Beyond &#187; Documents</title>
	<atom:link href="http://automation-beyond.com/category/automation/theory-and-practice/documents/feed/" rel="self" type="application/rss+xml" />
	<link>http://automation-beyond.com</link>
	<description>An engineering approach to Software Testing and Test Automation</description>
	<lastBuildDate>Fri, 20 Apr 2012 13:30:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license>		<item>
		<title>Not a Load Test Plan template</title>
		<link>http://automation-beyond.com/2010/03/23/not-a-load-test-plan-template/</link>
		<comments>http://automation-beyond.com/2010/03/23/not-a-load-test-plan-template/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 12:49:18 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Load/Performance]]></category>
		<category><![CDATA[2. Testing]]></category>
		<category><![CDATA[analyse]]></category>
		<category><![CDATA[consider]]></category>
		<category><![CDATA[context]]></category>
		<category><![CDATA[endurance]]></category>
		<category><![CDATA[Goal Plan]]></category>
		<category><![CDATA[Load]]></category>
		<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[NeoLoad]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[situational feedback]]></category>
		<category><![CDATA[stress]]></category>
		<category><![CDATA[Test Plan]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[types]]></category>

		<guid isPermaLink="false">http://automation-beyond.com/?p=1943</guid>
		<description><![CDATA[Do you know enough about your test environment when designing a Load Test plan? What can you do and what would you do to provide stakeholders with the most valuable information in the context and at the moment? How do you use their feedback in your testing work?]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2010%252F03%252F23%252Fnot-a-load-test-plan-template%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FrgEQd8%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Not%20a%20Load%20Test%20Plan%20template%22%20%7D);"></div>
<h2 style="text-align: left;"><em>Not</em> a Load Test Plan template</h2>
<h3 style="text-align: left;">(An example of a situational feedback approach)</h3>
<p style="text-align: left;"> The <em><a href="http://en.wikipedia.org/wiki/Law_of_large_numbers" target="_blank">Law of Large Numbers</a></em> theorem states that the average of results obtained from a large number of trials should be close to the expected value, and will tend to become closer as more trials are performed. Unfortunately, application&#8217;s behavior under a load abides much more casual <a href="http://en.wikipedia.org/wiki/Murphy's_law" target="_blank">Murphy&#8217;s Law</a>. To make it completely bad, in testing we have to consider worst happened case. That is, if 99 users (of 100) were successfully able to pay their bills online and only one got transaction lost once, the payment application is nowhere near 99% usable, and we have to catch somehow this error that didn&#8217;t occur during functional testing. </p>
<p style="text-align: left;">Load Testing - simulation of concurrent user activities and investigation of application&#8217;s behavior under such circumstances.</p>
<h4 style="text-align: center;">So, what would you want to test?</h4>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Load-Testing.jpg"><img class="size-full wp-image-1946   aligncenter" title="Load Testing" src="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Load-Testing.jpg" alt="" width="535" height="461" /></a></p>
<h4 style="text-align: center;">Do you want to <em>verify</em> everything?</h4>
<p>- This might take twice as long time as your time before the release. Or maybe 10 times longer.</p>
<h4 style="text-align: center;">So, how could you plan load testing?</h4>
<p>In my testing experience I had both projects when I was asked for specific answers (E.g. page response time) and where I was solely responsible for testing strategy and approach; when the all activities were planned and scheduled and where testing was performed ad hock and upon request. Based on those experiences, I suggest to assess questions &#8221;<em>What can you do?&#8221;</em> and &#8220;<em>What results will be of [immediate] value?&#8221; </em>before designing a Load Test Plan. Answers to first question heavily depend on availability of Test Environment and testing tools (and, of course, skills of a tester). Answers to second question are context-specific: they depend on the project type and project phase.</p>
<h4 style="text-align: center;">If your Test Infrastructure is not as powerful as Production Infrastructure? </h4>
<p style="text-align: left;">Importance of having Test Environment equally powerful (and with identical infrastructure) as Production Environment is critical. However, sometimes Test Environment is not always available, is not yet available, or just not available due to a variety of reasons.</p>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Infrastructure.jpg"><img class="size-medium wp-image-1954   aligncenter" title="Infrastructure" src="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Infrastructure-300x151.jpg" alt="" width="300" height="151" /></a></p>
<p style="text-align: center;"><strong>What is worthless to do?</strong></p>
<p>Any thresholds and bottlenecks found will not match with those on Production Infrastructure. Any back-end performance stats will not match with those on Production Infrastructure. If performance of some infrastructure components of the same type (for instance, database) is comparable then high volume tests or stress tests could give some relevant information but still very limited.</p>
<p style="text-align: center;"><strong>What can you do?</strong></p>
<p style="text-align: left;">Front-End application performance is performance of a client-side part of it. If a web page is rendered slowly in a browser then it won&#8217;t matter how fast infrastructure is. So you can investigate front-end performance even with poor infrastructure and without generating a load.</p>
<p style="text-align: left;">Most of web-based applications are supposed to be accessible 24/7. On a back-end that requires endurance and robustness from application servers and databases. Endurance for a server means careful management of available resources and robustness means ability to recover after errors. If an application server side has problems with RAM management then memory leakage will eventually slowdown or crash it. More powerful hardware can only prolong up-time.</p>
<p style="text-align: left;"><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<h4 style="text-align: center;">If you are a part of application development team? </h4>
<p style="text-align: left;">Earlier detection of errors gives more time for fixing them. What kind of feedback on application&#8217;s performance is the most appreciated during development phase?</p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Development.jpg"><img class="size-medium wp-image-1955 aligncenter" title="Development" src="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Development-300x190.jpg" alt="" width="300" height="190" /></a></p>
<p style="text-align: center;"><strong>Front-End Performance</strong></p>
<p style="text-align: left;">Same implementation approach is usually shared across the application. Any page performance issues, discovered early in development, might have an application design level positive impact.</p>
<p style="text-align: center;"><strong>Back-End Performance</strong></p>
<p>Load/Performance testing of back-end components and entire infrastructure is often used with the main reference to a database performance testing. While many &#8220;bottlenecks&#8221; are truly often found within database, the following investigations should be conducted as well.</p>
<ul>
<li>An application server performance and behavior during different types of load (stress, spikes, etc.)</li>
<li>How load balancing module affects performance?</li>
<li>How anti DDOS module (or any Firewall) affects performance?</li>
<li>How encryption affects performance?</li>
<li>What level of tolerance has an application to latency, packet loss, link faults and other dynamic routing effects common for dial-up, ADSL, WAN types of connection?</li>
</ul>
<p style="text-align: center;"><strong> </strong></p>
<p style="text-align: center;"><strong>Endurance and Robustness</strong></p>
<p>Most of modern programming platforms have memory management functionalities hidden deep inside and not directly controlled by developers. Monitoring performance of application servers helps gathering information on efficiency of so called &#8220;Garbage Collectors&#8221;, &#8220;Thread Classes&#8221;, and other components of an application that do not carry business functionality but may have a direct impact on it. Any other resource allocation and management problems if discovered earlier will help saving time and increasing the potential performance of an application.</p>
<p style="text-align: center;"><strong>Scalability Tests</strong></p>
<p>Once components of an application are linked and functional (usually, that is System Integration Testing phase) scalability tests will help to identify performance thresholds of an application. Test results will be meaningful if the Infrastructure -Under-Test (or, at least, its tested components) is similar to Production Environment, and load levels are equivalent to or exceed expected load in Production.</p>
<h4 style="text-align: center;">If the project goal is deployment of a vendor provided application? </h4>
<p>You may still complain about defects found in off-the-shelf software, and they will eventually get fixed (most likely, in the next release) but implementation project can&#8217;t wait that long. It is critical to find out as much as possible about all instability thresholds, possible vulnerabilities &#8211; and test how well they could be covered by external measures, such as load balancing or filtering tools, expansion of hardware or network resources.</p>
<p>So, what tests should you target first?</p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Deployment.jpg"><img class="size-medium wp-image-1956 aligncenter" title="Deployment" src="http://automation-beyond.com/wp/wp-content/uploads/2010/02/Deployment-300x162.jpg" alt="" width="300" height="162" /></a></p>
<p style="text-align: center;"><strong>Scalability and Performance Tests</strong></p>
<p>If the infrastructure is already designed and implemented it&#8217;s really critical to find out whether its capable of carrying the expected load and what capacities it has. If any performance requirements are defined (or provided) by stakeholders you may conduct performance compliance tests. Otherwise you may capture performance characteristics at the highest level of load where application is still stable and provide stakeholders with that information. Those performance characteristics might also be used in regression/comparison testing whenever application or infrastructure change in the future.</p>
<p style="text-align: center;"><strong>Stress and Endurance Tests</strong></p>
<p>Finding out how infrastructure behaves under extensive load or during peak periods is a next priority task. Issues found might not be fixed programmatically but still could be workarounded and definitely need to be identified. It also could be not a one time job if you&#8217;re helping in configuring of load balancing tools or firewall software.</p>
<h3 style="text-align: center;">Conclusion</h3>
<p>I am a firm believer that the role of documentation is critical in testing. However, I value beforehand created documentation much less than structured records of how it actually was happening. I also often prefer digging extra time around issue(s) found rather then proceeding along with a plan. I always plan but my plans are essentially goals and milestones to reach rather than steps to walk. I prioritize them on the flow, based on real-time information received and events that have already occurred. This is a situational feedback approach.</p>
<p>Do you prefer Procedure Plans or Goal Planning?</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2007/07/10/gui-map-loading-winrunner-tsl/" rel="bookmark" class="crp_title">GUI Map loading (WinRunner, TSL)</a></li><li><a href="http://automation-beyond.com/2009/07/08/test-automation-problems-2/" rel="bookmark" class="crp_title">Test Automation Problems (2) – Technical Setup</a></li><li><a href="http://automation-beyond.com/2009/09/28/ping-your-blog/" rel="bookmark" class="crp_title">Ping your blog and see the stats</a></li><li><a href="http://automation-beyond.com/2011/09/26/functional-load-testing/" rel="bookmark" class="crp_title">Functional Load Testing &#8211; MindMap</a></li><li><a href="http://automation-beyond.com/2011/03/14/xsl-using-sub-templates/" rel="bookmark" class="crp_title">XML/XSL Transformation: Using Sub-Templates</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2010/03/23/not-a-load-test-plan-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>QA Test Automation Requirements (5) &#8211; Maintainability</title>
		<link>http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/</link>
		<comments>http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 15:50:49 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[2. Testing]]></category>
		<category><![CDATA[3. Automation]]></category>
		<category><![CDATA[Automation Approach]]></category>
		<category><![CDATA[cost]]></category>
		<category><![CDATA[Coverage]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Robustness]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[thorough]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=126</guid>
		<description><![CDATA[Original date: 12 May 2009, 5:00pm Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: Usability, Maintainability, Scalability, and Robustness. Maintainability Requirements Matrix Setup - What level of convenience you want to have setting-up the scripts? If Test Data file and path are hard-coded in the script then pointing to another data file requires code change. [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F06%252F10%252Fqa-test-automation-requirements-5-maintainability%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22QA%20Test%20Automation%20Requirements%20%285%29%20-%20Maintainability%22%20%7D);"></div>
<p>Original date: 12 May 2009, 5:00pm</p>
<p>Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: <a href="http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/" target="_blank">Usability</a>, <strong>Maintainability</strong>, <a href="http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/" target="_blank">Scalability</a>, and <a href="http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/" target="_blank">Robustness</a>.</p>
<p><strong>Maintainability Requirements Matrix</strong></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><a href="http://automationbeyond.files.wordpress.com/2009/05/maintainability.jpg"></a></p>
<p style="text-align: center;"><strong><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/maintainability.jpg" target="_blank"><img class="size-medium wp-image-127 aligncenter" title="Test Automation Maintainability" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/maintainability-300x247.jpg" alt="" width="300" height="247" /></a></strong></p>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p><strong>Setup</strong><br />
- What level of convenience you want to have setting-up the scripts?</p>
<p>If Test Data file and path are hard-coded in the script then pointing to another data file requires code change. If the login procedure has username and password hard-coded then every change of login credentials requires code change, and concurrent use of different login credentials is not possible.</p>
<p>The alternate way is to use configuration file in Excel, XML, or plane text format. If Testing Solution includes multiple scripts (&gt;50) implementing standard template (file structure, format, locations, etc) will quickly payback on maintenance efforts and learning curve for non-technical users.</p>
<p><strong>GUI Change</strong><br />
- What level of efforts and what level of impact are acceptable when considering GUI Mapping approach?</p>
<p>Testing Tools recognize GUI objects (Button, Input Box, etc.) referring to visible (E.g. Button Text) and invisible (E.g. Internal ID) technical (physical) properties. So addressing a specific GUI object requires providing Testing Tool with a unique set of properties. Direct specification of the properties is usually named as “Description” of the GUI Object, and programming with the Object’s properties directly specified is named Descriptive Programming (Refer to QTP Manual for more details). In the same time enlisting of physical properties (E.g.”window id:=1203”) has no or little business value and requires specifying all of them. To increase readability of the code and reduce code maintenance cost most of Testing Tools now offer storing physical descriptions separately and referring them through logical (business) name. While still being the same for the Testing Tool, “Input text to “Username” makes more sense then “Input text to “window id:=1203” when read by a person. Same GUI control used through different scripts by the same logical name still refers to a single entry in descriptions file (named “Object Repository” file in QTP) so the GUI change requires single point adjustment of the file storing descriptions and not “find-and-change” operations in all the scripts.</p>
<p><strong>Business Logic Change</strong><br />
- What level of efforts and what level of impact are acceptable when Business Functionality is changed and scripts are to be fixed/updated in order to bring them working back?</p>
<p><em>Individual Code changes</em></p>
<p>Since business/test logic is contained within the code, code change is always required for the all scripts impacted. The higher code duplication is in the scripts the higher is the impact.</p>
<p><em>Modular code change</em></p>
<p>Since Test Cases are built from reusable modules covering business/test logic, only code change within impacted module is required. Modular approach allows avoiding duplications of the code and reduces code maintenance effort.</p>
<p><em>Visual Prototyping</em></p>
<p>Using Drag-n-Drop and NO PROGRAMMING non-technical users can create/modify Test Components contained in XML file.<br />
Most of Hybrid Keyword/Data Driven Frameworks have a user-friendly Front-End. As the most simple implementation it’s an Excel table, the more advanced utilize XML-based visual tree.<br />
Business/Test Logic change within a window requires update of testing instructions with the effort similar to data maintenance cost and possible impact much less than a direct code change.</p>
<p><strong>Code Maintenance</strong><br />
- Whether it is update corresponding to the Business/Test Logic change or debugging/fixing of the code what level of efforts and what volume of code are acceptable?</p>
<p><em>Test Code is significantly bigger than Application Code</em></p>
<p>This volume of code is typical for Record/Playback or Individual Test Case automation.<br />
Extremely high maintenance cost and possible impact on the testing schedule.<br />
If 10 manual Test Cases for the same screen were covered by 10 individual Test Cases, the code duplication rate was probably over 90%.</p>
<p><em>Code is bigger than application code</em></p>
<p>This volume of code is typical for Modular / Parameterized Test Case automation.<br />
The bigger number of screens the higher code maintenance cost.<br />
While the code is somewhat structured and test scripts reuse coverage of the same functionalities, the general steps like GUI interactions and verifications are repeated in the code over and over again.</p>
<p><em>Business Logic Framework</em></p>
<p>Only the Framework is coded. Business/Test Logic is not part of the code and can be of any size. File versioning tools could be used easily. Duplication does not create an impact.<br />
All the GUI interactions and verifications are coded only once. Covering a wide range of possible operations means bigger amount of service code for a single Test Case. With 20-30 Test Cases the advantage becomes highly visible. With a high volume (100+) of Automated Test Cases the difference is dramatic.</p>
<p><strong>Test Input and Verification Data Maintenance</strong></p>
<p><em>Verification Data. Hard-coded GUI checkpoints</em></p>
<p>For the GUI Regression type verifications checkpoints are to be captured for every single GUI screen and every single data row. Extremely high creation and maintenance cost.<br />
Additionally checkpoint fail still requires manual investigation to find out what functionality has a problem.</p>
<p><em>Verification Data. Individual GUI checkpoints</em></p>
<p>Checkpoints are captured individually only for the GUI controls required. Change in other GUI doesn&#8217;t impact the checkpoint. Verification type is for equality only but the expected result could be parameterized what adds flexibility. High creation and maintenance cost.<br />
GUI control specific checkpoint is better correlated with the functionality testing.</p>
<p><em>Business Verification Rules</em></p>
<p>Applied individually to the GUI control OR on-screen functionality. Wide range of verification rules gives great flexibility. Possibility of reusing input data as expected result lowers maintenance cost comparing to the individual GUI checkpoint.<br />
This type of verifications is similar to the manual functional testing and with the proper validation implemented produces test results that do not require manual investigation to find out what functionality has a problem.</p>
<p><em>Test Input. Data is a part of the script package</em></p>
<p>Each script has data table coming along with and referred by hard-coded name and path. Code change required in order to change data source. Very inconvenient for testers (can’t change directly, access to the testing tool is required, training is required).<br />
High maintenance cost due to a lot of manual efforts.</p>
<p><em>Test Input/Output. Independent Data Model</em></p>
<p>Test Plans/Test Cases refer to data files through mapped logical names. Features full flexibility (keep multiple copies, store on different drives, copy/exchange files) and convenient maintenance. No code changes required in order to change data source.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2009/05/29/qa-automation-skill-matrices-2/" rel="bookmark" class="crp_title">QA Automation Skill Matrices (mature professionals)</a></li><li><a href="http://automation-beyond.com/2007/09/27/test-log-requirements/" rel="bookmark" class="crp_title">Test Log &#8211; Requirements</a></li><li><a href="http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/" rel="bookmark" class="crp_title">QA Test Automation Requirements (4) &#8211; Scalability</a></li><li><a href="http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/" rel="bookmark" class="crp_title">QA Automation &#8211; GUI Function Wrapping</a></li><li><a href="http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/" rel="bookmark" class="crp_title">QA Test Automation Requirements (2) &#8211; Usability</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA Test Automation Requirements (4) &#8211; Scalability</title>
		<link>http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/</link>
		<comments>http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 15:38:21 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[2. Testing]]></category>
		<category><![CDATA[3. Automation]]></category>
		<category><![CDATA[Automation Approach]]></category>
		<category><![CDATA[cost]]></category>
		<category><![CDATA[Coverage]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Robustness]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[scalable]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=122</guid>
		<description><![CDATA[Original date: 6 May 2009, 12:30pm Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: Usability, Maintainability, Scalability, and Robustness. Scalability Requirements Matrix Platform - What applications should be able to handle the Framework? The business need for automation of QA/testing activities appears when testing volume, turnover and coverage requirements make it beneficial enough. Volume means a [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F06%252F09%252Fqa-test-automation-requirements-scalability%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22QA%20Test%20Automation%20Requirements%20%284%29%20-%20Scalability%22%20%7D);"></div>
<p>Original date: 6 May 2009, 12:30pm</p>
<p>Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: <a href="http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/" target="_blank">Usability</a>, <a href="http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/" target="_blank">Maintainability</a>, <strong>Scalability</strong>, and <a href="http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/" target="_blank">Robustness</a>.</p>
<p><strong>Scalability Requirements Matrix</strong></p>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/scalability.jpg" target="_blank"><img class="size-medium wp-image-123 aligncenter" title="Test Automation Scalability" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/scalability-300x162.jpg" alt="" width="300" height="162" /></a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><a href="http://automationbeyond.files.wordpress.com/2009/05/scalability.jpg"></a></p>
<p style="text-align: center;"><strong><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/scalability.jpg" target="_blank"></a></strong></p>
<p><strong>Platform</strong><br />
- What applications should be able to handle the Framework?</p>
<p>The business need for automation of QA/testing activities appears when testing volume, turnover and coverage requirements make it beneficial enough. Volume means a big number of test cases which means a big set of functionalities. (High) turnover and (wide) coverage requirements mean a demand for test results within a tight timeframe and with the specified (high) level of extent.<br />
With the mentioned above it comes to Enterprise level software products, tested from the front-end and back-end, and often having different front-ends: Windows Desktop, Standard Web-based, Rich Web App (Web 2.0 and higher), and UNIX-based accessible from Terminal Emulator (Text-based Screen Interface).</p>
<p><strong>Upgrade</strong><br />
- When requirements are extended or revisited what efforts required and which way the upgrade of testing scripts supposed to be performed?</p>
<p><em>Rebuild</em><br />
Upgrade requires rebuild from scratch. Testing is not available until it&#8217;s done.<br />
Individually developed (or recorded) test cases could be upgraded only through rebuild.</p>
<p><em>Replacement</em><br />
Upgrade requires replacement of a module. Testing is not available during replacement only.<br />
Structured (modular) development allows keeping common functionalities in reusable function libraries. Change in the login procedure, for example, requires change of a common function implementing the procedure without impacting all the scripts where it’s used. For the new functionalities, like additional verification requirements specific for the screen, new reusable function is needed to be implemented and called from the scripts covering the screen.</p>
<p><em>Plug-in / Plug-out</em><br />
Upgrade/Replacement/Adding new Test Component DOES NOT bring testing down. No code change is performed at all.<br />
Further evolution of Automation Frameworks allows automating the automation itself. Hybrid (Keyword/Data Driven) and Business Model based frameworks bring Test Case automation to the level of abstraction where no scripting is required (record/playback is not required either!). Operating by high-level instructions (or keywords) Business SME can design/modify a Test Case (See Visual Prototyping/Swiftness/Usability requirements matrix).</p>
<p><strong>Migration</strong><br />
- When time comes to migrate to a new platform (new Testing Tool) do you want to keep your assets or you have to rebuild everything from scratch?</p>
<p><em>Rebuild</em></p>
<p>If all the logic was contained in the code, migration to a new Testing Tool will require rebuild from scratch.<br />
Having proper documentation support of the automation implemented (Test Flows, Coverage documents, Maintenance guides) allows reducing risks and expenses of the rebuild-from-scratch project.</p>
<p><em>Framework</em></p>
<p>External Business/Test Logic could be supported by any Testing Tool. Only Framework implementation is required.<br />
Frameworks having support for externally customizable Business/Test Logic (Keyword-driven and higher on evolution curve) allow keeping Business Test Assets gained. It’s not only saving time for the automation development expenses but also saves a lot of analysis and design time, that has been invested creating automation.</p>
<p><strong>Volume</strong><br />
- When the volume of dataset could change significantly will it require rebuilding the scripts or only some external customization is required?</p>
<p><em>Hard-coded volume</em></p>
<p>Test scripts are built to use only certain volume of data.<br />
Most typical examples here would be a script verifying only 1 row in the report or a script submitting only 1 record through a multiple request form.</p>
<p><em>Unlimited volume</em></p>
<p>External customization allows using of scripts with any volume of data required. User can specify desired number of data records as a comma-separated list or as a certain rule (e.g. “Find and verify all report rows matching the account number”).</p>
<p><strong>Functionality</strong><br />
- Does the Framework support functionalities below, matching, or above current needs?</p>
<p>Very often automation project is started as a pilot. After the certain phase, “Proof of Concept” gives management an exposure to decide whether they see it worth to continue or automation doesn’t worth funds invested.<br />
Or the initial scope of automation (“just 10 Test Cases“) does not presume capabilities to extend for the framework.<br />
As a result quickly baked framework is not capable to support extending business and automation requirements. This causes either downsizing the requirements or unstable, unreliable work of test scripts. In both cases automation is considered a “barely useful”.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2009/05/29/qa-automation-skill-matrices-2/" rel="bookmark" class="crp_title">QA Automation Skill Matrices (mature professionals)</a></li><li><a href="http://automation-beyond.com/2007/09/27/test-log-requirements/" rel="bookmark" class="crp_title">Test Log &#8211; Requirements</a></li><li><a href="http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/" rel="bookmark" class="crp_title">QA Automation &#8211; GUI Function Wrapping</a></li><li><a href="http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/" rel="bookmark" class="crp_title">QA Test Automation Requirements (2) &#8211; Usability</a></li><li><a href="http://automation-beyond.com/2009/11/17/best-tool-for-click-based-automated-testing-for-websites-discussed/" rel="bookmark" class="crp_title">Best tool for UI/Click based automated testing for Websites (discussed)</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA Test Automation Requirements (3) &#8211; Robustness</title>
		<link>http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/</link>
		<comments>http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 15:30:57 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Automation Approach]]></category>
		<category><![CDATA[cost]]></category>
		<category><![CDATA[Coverage]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Robustness]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[synchronization]]></category>
		<category><![CDATA[thorough]]></category>
		<category><![CDATA[unattended]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=116</guid>
		<description><![CDATA[Original date: 28 Apr 2009, 1:00pm Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: Usability, Maintainability, Scalability, and Robustness. Robustness Requirements Matrix Manned / Unmanned Test Execution - What level of manual efforts in automated testing would be acceptable for you? Baby-sitting Test script may stop or break execution at any moment. Manual action [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F06%252F08%252Fqa-test-automation-requirements-robustness%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22QA%20Test%20Automation%20Requirements%20%283%29%20-%20Robustness%22%20%7D);"></div>
<p>Original date: 28 Apr 2009, 1:00pm</p>
<p>Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: <a href="http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/" target="_blank">Usability</a>, <a href="http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/" target="_blank">Maintainability</a>, <a href="http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/" target="_blank">Scalability</a>, and <strong>Robustness.</strong></p>
<p><strong>Robustness Requirements Matrix</strong></p>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/robustness.jpg" target="_blank"><img class="size-medium wp-image-119 aligncenter" title="Test Automation Robustness" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/robustness-300x232.jpg" alt="" width="300" height="232" /></a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>Manned / Unmanned Test Execution</strong><br />
- What level of manual efforts in automated testing would be acceptable for you?</p>
<p><em>Baby-sitting</em></p>
<p>Test script may stop or break execution at any moment. Manual action required to continue the execution. Often full restart is required.<br />
This is typical for all the scripts created using any variation of Record/Playback method. Furthermore, using of standard GUI functions without prior GUI verification and synchronization gives similar problems.</p>
<p><em>Skip errors</em></p>
<p>Test script doesn&#8217;t break the execution on error. However skipping to the next step (or Test Case) leaves unreported gaps in coverage. Manual investigation of the cause is required.<br />
Test Plan wise execution is a quite robust because one failed Test Case doesn’t stop the whole sequence. However, at Test Case level such an implementation seriously reduces coverage. For long flow test cases visiting 5 and more screens exit on the first error occurred at the first screen means leaving over 50% of Test Case uncovered.<br />
While testing manually, minor fail requires documentation but doesn’t require stopping of testing activity on the screen.</p>
<p><em>Handle errors</em></p>
<p>Test script doesn&#8217;t break the execution and handles the errors along with automatic investigation and reporting.<br />
Implementation should include catching internal errors and Test Flow exceptions (pop-up dialogs and other unexpected events interrupting the normal flow), recognition of the problem, investigation and recovery steps along with the detailed reporting.<br />
Manual testing example.<br />
1) Select payment currency USD (dropdown listbox).<br />
2) Select payment type WIRE (dropdown listbox).<br />
3) Press “Make Payment” (button).<br />
4) Verify payment details on the Confirmation screen.<br />
Possible fails at step (1)<br />
1A. Failed to find dropdown. Severity – High. Can continue testing? Yes. Report absence of the object.<br />
1B. Failed to use dropdown because it’s disabled. Severity – Medium. Can continue testing? Yes. Report state of the object.<br />
1C. Failed to select item USD in the list. Severity – Medium. Check other items available (CAD, AUD). Report absence of required item and other items available. Can continue testing? Yes.</p>
<p>Possible fails at step (2)<br />
2A. Failed to find dropdown. Severity – High. Can continue testing? Yes. Report absence of the object.<br />
2B. Failed to use dropdown because it’s disabled. Severity – Medium. Can continue testing? Yes. Report state of the object.<br />
2C. Failed to select item WIRE in the list. Severity – Medium. Check other items available (CASH, CHEQUE). Report absence of required item and other items available. Can continue testing? Yes.</p>
<p>Possible fails at step (3)<br />
3A. Failed to find button. Severity – ShowStopper. Can continue testing? No. Report absence of the object.<br />
3B. Failed to press button. Severity – ShowStopper. Can continue testing? No. Report state of the object.</p>
<p>At step 4 (as well as before going into step 1), absence of screen (Window, Dialog, or Web-page) is a ShowStopper fail for the script.</p>
<p>Now what if script exits at the first fail encountered? Even with 4 simple steps, we have coverage reduced to 20% of a possible one when same testing is done manually!</p>
<p><strong>Automated Decision-making</strong><br />
- Does the script only GUI input, or verification, logical judgment, test status evaluation, and overall validation of the Test Case?</p>
<p><em>GUI steps only</em></p>
<p>With no verification implemented, GUI data entry has low relevance to testing.</p>
<p><em>GUI steps + Window checkpoint</em></p>
<p>Verification is based on hard-coded Window checkpoint. No logic (only equality). No validation (how bad is the mismatch?).<br />
It used to be very popular and seemed to be good workaround reaching detailed level of verification without implementing verification logic. However, huge data maintenance effort popped-up very quickly as every single data change causes checkpoint to fail. And the validation of test results still had to be performed manually which for complicated checkpoints is comparable to the manual testing time of the application itself. Another problem has been revealed through a static nature of this verification type. Functionalities, based on the on-screen application response or dynamically changing data could not be verified as a hard-coded checkpoint.</p>
<p><em>GUI steps + verification</em></p>
<p>Each GUI control is verified with an individual parameterized checkpoint. No logic (only equality). No validation (how bad is the mismatch?).<br />
Splitting one consolidated window checkpoint into individual GUI control checkpoints allowed reducing maintenance efforts. Some tools (like QTP) allow parameterization of expected result which improves maintainability even more. However, verification is still based on “equal or not” rule only, while business requirements may say “equal with rounding”. “greater/less than”, or even “includes / included”. And validation of comparison is still performed manually.</p>
<p><em>Business Verification Rules</em></p>
<p>Externally customizable verification/validation rules applicable to every GUI or Logical step in the Test Flow.<br />
To reach this level of convenience, Hybrid or Model based Framework should be in place. In addition, the Framework should have a user-friendly “front-end” allowing design and customization of verifications in the Test Flow without programming.</p>
<p><strong>Synchronization</strong><br />
- Do you want an automated Test Flow to be successfully running on different computers, different networks and environments?</p>
<p><em>No sync.</em></p>
<p>Test script does not wait for the application / network to catch up. Missed / failed steps as a result. Modern testing tools are trying to minimize fails by setting an overall timeout applied to the all GUI steps by default. When synchronization time fits the default timeout (usually 30-60 seconds) the problem is resolved. However, the major steps (login, submitting report, creating new record) may require significantly longer waiting time affected by the network speed and server performance.</p>
<p><em>Hard-coded sync.</em></p>
<p>Wait time is defined as a hard-coded value during script development phase. Unstable work on different computers / networks as a result.<br />
Example.<br />
During script development phase, it was taking about 3 seconds for the report window to appear. “Wait (5)” instruction was put giving 5 seconds for the window to appear. However, during test execution phase certain reports required much longer time to be generated and all that test cases were failed by the script.</p>
<p><em>Time-out based</em></p>
<p>Wait time is customizable individually per GUI step; global time-out parameter allows adjusting all sync&#8217;s for the network speed.<br />
Most of Testing Tools allow using various synchronization statements. However, that code is not generated automatically during recording. It must be set programmatically before GUI instruction or as a part of wrapping custom GUI function.<br />
The difference between “Wait(30)” and “Sync(30)” is in an exit condition. In the first case, the script will just wait doing nothing for 30 seconds.<br />
In the second case, the script will be checking the GUI to become available for the period of up to 30 seconds.</p>
<p><strong>Data Model</strong><br />
- How flexible Test Automation Framework is to support test data of a various, customizable volume, and to be quickly adjustable for the new test requirements?<br />
The general difference is in the automation approach. In “manual automation” every manual test case is automated individually, which gives convenience for “automation developer” but creates numerous duplications in code and data, which produces a great inconvenience using and maintaining such scripts. In Test Flow Automation multiple test cases using same screens and having same major PASS/FAIL conditions are covered with single script with test data controlling the flow (data-driven).</p>
<p><em>Variables / Single source</em></p>
<p>Test script uses values from variables initialized from the single data sources. Any change in logic, data structure, etc. produces heavy impact and requires redesign of the code.</p>
<p><em>Datatable / Single source</em></p>
<p>Test script uses values referring by logical name in the data table imported from a defined source (external data spreadsheet). Changes in logic and data structure could be reflected with low/medium effort. Changes in data source still require redesign/modification of the code.</p>
<p><em>Independent Data Model</em></p>
<p>Test script uses values referring by logical name in the internal data space. Changes in logic and data structure could be reflected with low effort. Changes in data source do not require script redesign &#8211; only substitution of another initialization module is needed.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2009/05/29/qa-automation-skill-matrices-2/" rel="bookmark" class="crp_title">QA Automation Skill Matrices (mature professionals)</a></li><li><a href="http://automation-beyond.com/2012/02/15/automation-robustness-mindmap/" rel="bookmark" class="crp_title">Automation Robustness Factors (mindmap)</a></li><li><a href="http://automation-beyond.com/2007/09/27/test-log-requirements/" rel="bookmark" class="crp_title">Test Log &#8211; Requirements</a></li><li><a href="http://automation-beyond.com/2007/12/10/test-script-robustness/" rel="bookmark" class="crp_title">Test Script Robustness</a></li><li><a href="http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/" rel="bookmark" class="crp_title">QA Automation &#8211; GUI Function Wrapping</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA Test Automation Requirements (2) &#8211; Usability</title>
		<link>http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/</link>
		<comments>http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 15:23:55 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Automation Approach]]></category>
		<category><![CDATA[cost]]></category>
		<category><![CDATA[Coverage]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Robustness]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[thorough]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=106</guid>
		<description><![CDATA[Original date: 21 Apr 2009, 12:30pm Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: Usability, Maintainability, Scalability, and Robustness. Usability Requirements Matrix 2 Transparency - Do you want Automated Test execution to be another “black box”, or you want to have a fully reproduced picture with documented test results? Execution Log Built-in execution log [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F06%252F07%252Fqa-test-automation-requirements-usability-2%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22QA%20Test%20Automation%20Requirements%20%282%29%20-%20Usability%22%20%7D);"></div>
<p>Original date: 21 Apr 2009, 12:30pm</p>
<p>Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: <a href="http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/" target="_blank">Usability</a>, <a href="http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/" target="_blank">Maintainability</a>, <a href="http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/" target="_blank">Scalability</a>, and <a href="http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/" target="_blank">Robustness</a>.</p>
<p><strong>Usability Requirements Matrix 2</strong></p>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/usability-2.jpg" target="_blank"><img class="size-medium wp-image-107 aligncenter" title="Test Automation - Usability" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/usability-2-300x193.jpg" alt="" width="300" height="193" /></a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>Transparency<br />
</strong>- Do you want Automated Test execution to be another “black box”, or you want to have a fully reproduced picture with documented test results?</p>
<p><em>Execution Log</em></p>
<p>Built-in execution log provided by the Testing Tool and not accessible outside. Contains no Business Logic details. Test Case irrelevant.<br />
Some tools, like QTP, log pretty much everything. Some other log only a high-level component calls. And most of them do not provide a convenient execution report embedded from the Testing Tool itself. A few that do still don’t have it Test Case oriented.</p>
<p><em>Execution Report</em></p>
<p>Embedded from Test Tool. Contains information of GUI steps performed along with the data used. (Possibly) contains verification details. Does not have validation details. May not be Test Case relevant.<br />
Some good Testing Tools allow exporting of Execution Log into Web-page, PDF-, or Word-document format. At least, it allows sharing test results with other team members who don’t have Testing Tool installed.<br />
However, due to lack of logging Logical steps (validations, judgments) Test Flow is still not detailed enough to get a full picture without reproducing Test Case manually. Another reason could be a lack of implementation. Since logical judgments and validations are not implemented they’re not reported. And automation developer still must take care of making Execution Report Test Case oriented.</p>
<p><em>Test Report</em></p>
<p>Embedded from Test Tool. Contains detailed information on GUI and Logical (Verification/Validation) steps performed providing end-user with the fully reproducible Test Flow. Optionally may contain Fail reports and other reconciliation details.<br />
This is something looking like as it’s done manually but better (because manual tester will get really bored accurately documenting hundreds of Test Cases executed).</p>
<p> <strong>Operation<br />
</strong>- Do you want to have special stuff executing Automated Test Cases or you need a “click-and-start” procedure?</p>
<p><em>Developer Only</em></p>
<p>Only automation developers can setup and start scripts.<br />
When there is no convenient “front-end”, and all the configurations are part of the code, only the person very familiar with the script can successfully launch it.</p>
<p><em>User Friendly</em></p>
<p>Only basic computer skills required to start Automated Test Plan. Short training required for the unified setup procedure.<br />
HP/Mercury Quality Center is one of the perfect examples.<br />
However, QC doesn’t provide much customization features automatically applicable to the batch you’re starting. So if it’s something more complicated than a set of independent Test Cases executing on a single environment, advanced design and implementation of an Automated Test Plan document is required. But custom development must still strictly follow easy-and-simple-to-use requirements.</p>
<p><strong>Design<br />
</strong>- When it comes to using and re-using automated test assets, is it possible for automation developers only, or it’s built convenient enough to be successfully used by non-technical testers without big exposure to automation?</p>
<p> <em>Developer Only</em></p>
<p>Only developers can create Test Plans or do modification of existing ones; due to hard-codings everything requires code change.</p>
<p><em>Specialist Only</em></p>
<p>Specially trained QA with technical knowledge can do minor modification. Due to all the test logic stored as code development the risk is still high.<br />
Half-way to reach a convenient customization is passed but there is a lot of things still done manually.</p>
<p><em>User Friendly</em></p>
<p>Non-technical user (QA, BA) can create new and modify existing test flow using Keyword-Driven front-end.<br />
It could be as simple as editing Excel spreadsheet, or drag-n-drop operations on a visual call tree.<br />
HP Business Process Testing Framework is a nice example of that.</p>
<p><strong>Swiftness</strong><br />
- How quickly the existing Test Suite allows adding (development) new test assets, like Test Cases and reusable testing functionalities?</p>
<p><em>Individual Creation</em></p>
<p>Each manual Test Case requires development (or recording) of Test Script. No framework.</p>
<p><em>Modular Programming</em></p>
<p>Test Cases developed individually; common functions are maintained in library files. Sub-framework level.</p>
<p><em>Visual Prototyping</em></p>
<p>Test Case automation DOES NOT require programming. Framework fully supports Business/Test Logic execution from the back-end.<br />
Hybrid Keyword/Data Driven Framework implementation is required as an initial investment.<br />
Or you can try some of the commercial ones:<br />
HP Business Process Testing (VBScript is a programming language)<br />
Worksoft Certify (doesn’t have programming language support).</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2007/01/10/links-usability-requirements/" rel="bookmark" class="crp_title">Link-a-log: Usability Requirements</a></li><li><a href="http://automation-beyond.com/2009/05/29/qa-automation-skill-matrices-2/" rel="bookmark" class="crp_title">QA Automation Skill Matrices (mature professionals)</a></li><li><a href="http://automation-beyond.com/2007/09/27/test-log-requirements/" rel="bookmark" class="crp_title">Test Log &#8211; Requirements</a></li><li><a href="http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/" rel="bookmark" class="crp_title">QA Automation &#8211; GUI Function Wrapping</a></li><li><a href="http://automation-beyond.com/2011/02/14/generating-test-reports-mindmap/" rel="bookmark" class="crp_title">Generating Test Reports (MindMap)</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QA Test Automation Requirements (1) &#8211; Usability</title>
		<link>http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/</link>
		<comments>http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 12:15:02 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Automation Approach]]></category>
		<category><![CDATA[cost]]></category>
		<category><![CDATA[Coverage]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[Robustness]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=99</guid>
		<description><![CDATA[Original date: 14 Apr 2009, 1:30pm Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: Usability, Maintainability, Scalability, and Robustness  Usability Requirements Matrix 1 Applicability - How would you want to use Automated Testing solution? Basic Regression Testing Implemented as a sequence of data entry steps going through the screens. No or simplified verification based on hard-coded [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F06%252F06%252Fqa-test-automation-requirements-usability%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22QA%20Test%20Automation%20Requirements%20%281%29%20-%20Usability%22%20%7D);"></div>
<p>Original date: 14 Apr 2009, 1:30pm</p>
<p>Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: <a href="http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/" target="_blank">Usability</a>, <a href="http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/" target="_blank">Maintainability</a>, <a href="http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/" target="_blank">Scalability</a>, and <a href="http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/" target="_blank">Robustness</a> </p>
<p><strong>Usability Requirements Matrix 1</strong></p>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/usability-1.jpg" target="_blank"><img class="size-medium wp-image-100 aligncenter" title="Automation - Usability 1" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/usability-1-300x247.jpg" alt="" width="300" height="247" /></a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p><strong>Applicability<br />
</strong>- How would you want to use Automated Testing solution?<br />
<em>Basic Regression Testing</em></p>
<p>Implemented as a sequence of data entry steps going through the screens.<br />
No or simplified verification based on hard-coded checkpoints.</p>
<p><em>Comprehensive Functional/Regression Testing</em></p>
<p>Thorough and robust automated testing. Test script is going through the screens, verifying functionalities, validating test results.<br />
End-user can see high-level picture on the Test Report and make final judgment quickly. In case of need, though, Test Report provides all the details down to basic testing steps performed so that end-user can get the test flow reproduced easily.</p>
<p><em>All-phase execution (DEV, QA, UAT)</em></p>
<p>Suitable for Smoke, Integration, Functional/Regression, Sanity, Functional/UAT testing.<br />
Test results delivery to developers, QA, BA, and Client-side.<br />
While being comprehensive Functional/Regression Testing solution (with the same requirements as above), it needs to be implemented in a user-friendly and generic way, so that getting used to requires small learning curve; easy for non-technical user; specific for technical user.<br />
Test Report must be transferable and embedded from the Testing Tool.<br />
Dataset is flexible, easily maintainable and customizable.<br />
<strong> </strong></p>
<p><strong> </strong><strong>Utilization<br />
</strong>- Do you want to utilize the scripts for setup and configuration procedures, in addition to testing needs?<br />
<em>Automated Preload</em></p>
<p>Data entry procedures providing environment with data to perform testing. Could be also used for database testing, volume testing, and release comparison testing.<br />
I also had experience successfully using automated data entry flow in Production for data migration type projects. However, this requires perfectly robust scripts, extremely careful planning through, and cooperation with other tech teams (to do a back-up, provide special access, disable certain production features, etc.).</p>
<p><em>Automated Configuration</em></p>
<p>All the setup and preparation procedures, like setting required configuration, creating/modifying options, etc.<br />
Being properly built saves a lot of manual time, and gives a turnover advantage.<br />
<strong> </strong></p>
<p><strong> </strong><strong>Coverage<br />
</strong>- How thorough you want your automated testing to be? What kinds of testing you want to automate?<br />
<em>Basic Data Entry Flow</em></p>
<p>Automated data entry Test Case. Populating mandatory fields only. PASS condition: reach the last screen.<br />
Similar to Sanity Testing performed manually.</p>
<p><em>Full Data Entry Flow</em></p>
<p>Automated data entry Test Case. Populating all fields (based on input data provided). PASS condition: reach the last screen.<br />
Similar to simplified positive functional testing performed manually.</p>
<p><em>Smoke Test Flow</em></p>
<p>Same as Full Data Entry Flow + all errors handled and reported so that gives an unbreakable execution with high coverage advantage.</p>
<p>One of the very beneficial ways to use would be:<br />
• prepare automated smoke/regression test plans;<br />
• let developers launch them after the build / overnight deployment;<br />
• have test results available for PM, QA, and Dev next morning.</p>
<p>Developers can catch and fix most obvious defects on-the-fly, without getting QA involved.<br />
QA have more time to focus on failure analysis, and more time to spend on a manual complicated / ad-hock testing.</p>
<p><em>Test Flow Validation</em></p>
<p>Same as Smoke Test Flow + automated validation, PASS/FAIL judgment along with Severity/Consistency report.<br />
More smart type of automated testing with validation (judgments) of fails implemented. Helps to quickly identify known defects, or create defect reports for the newly discovered ones.<br />
Gives better time-saving advantage since manual validation operations are not necessary.</p>
<p><em>Regression Test Flow</em></p>
<p>Same as Test Flow Validation + on-screen validations (application response, contents of dropdowns, presence or absence of dynamic GUI, etc.).<br />
While keeping robustness and validations features, provides additional testing functionalities (not directly related to the business logic flow) for Functional/Regression testing needs.<br />
However, building additional verification &amp;amp; validation requires stronger business logic support by Subject Matter Expert, and extra data build-up / maintenance efforts.</p>
<p><em>Report Validation</em></p>
<p>Query system by submitting user requests through the front-end and validate reports.<br />
“Gray Box” testing of stored procedures implementing SQL queries could be very effectively covered with automated testing scripts. In addition, queries may cover boundary and overflow conditions.</p>
<p><em>Positive/Negative Boundary Testing and Data Acceptance</em></p>
<p>Test application&#8217;s ability to handle value at borders of the allowed range, and outside of it. Check for overflows and crashes.<br />
As Negative Testing, validate application’s response on intentionally invalid data input, or wrong combinations of data, or user actions.<br />
Complexity and coverage of this automated testing type is nearly as thorough as a manual ad-hock testing. However, reasonable limit of test flows to automate should be set (risk assessment based on impact), to avoid code maintenance issues.<br />
<strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Reliability<br />
</strong>- How reliable test results must be? Can testers trust test results even without manually reproducing the case or failure only means that “something went wrong” and needs to be investigated manually?<br />
<em>Full manual investigation</em></p>
<p>Test results require manual processing in order to find out if occurred FAILs were the actual defects in the application. Manual processing means manual re-testing of Test Case failed in order to find a reason of failure.</p>
<p><em>Final human judgment</em></p>
<p>The each fail occurred is reported in detail, showing up the application state and level of impact. No need to reproduce Test Case manually.<br />
Known fails are analyzed and reported by the script.<br />
Root cause analysis is performed by human.<br />
<strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Volume<br />
</strong>- How many automated Test Cases you want to use and how would you want it to be organized?<br />
<em>Execute single TC</em></p>
<p>Each Test Case script started manually.<br />
This is still more manual rather than automated testing.</p>
<p><em>Execute hard-coded Test Scenario</em></p>
<p>According to Test Plan, developer creates batch of Test Case scripts. Batch file performs execution calls in a defined sequence, Test Case scripts used “as is”. That means, individual configuration/customization of Test Case scripts mist be performed prior to the batch execution.<br />
In case of multi-environment or multi-dataset test requirements batch execution is less convenient due to manual maintenance efforts required.</p>
<p><em>Execute customizable Test Plan</em></p>
<p>List/sequence of Test Cases with customizable Test Data Input, Application Release, Benchmarks, Reporting, etc.<br />
End-user (BA, QA) can build / modify Test Plans using previously automated Test Cases available; no programming is required.<br />
Test Driver script performs automatic analysis and invocation of Test Cases scheduled, passing user-defined high-level input, like Application / URL to use, and Test Data set. Using customizable keys Tester can set Test Plan benchmarks and control automated test flow at the Test Plan level.<br />
Built and baselined Test Plans can be successfully used by Dev, BA, and non-technical Jr.QA staff.</p>
<p>Overview of Usability requirements will be continued with Transparency, Operation, Design, and Swiftness.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2007/01/10/links-usability-requirements/" rel="bookmark" class="crp_title">Link-a-log: Usability Requirements</a></li><li><a href="http://automation-beyond.com/2009/05/29/qa-automation-skill-matrices-2/" rel="bookmark" class="crp_title">QA Automation Skill Matrices (mature professionals)</a></li><li><a href="http://automation-beyond.com/2007/09/27/test-log-requirements/" rel="bookmark" class="crp_title">Test Log &#8211; Requirements</a></li><li><a href="http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/" rel="bookmark" class="crp_title">QA Test Automation Requirements (2) &#8211; Usability</a></li><li><a href="http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/" rel="bookmark" class="crp_title">QA Automation &#8211; GUI Function Wrapping</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA Automation &#8211; GUI Function Wrapping</title>
		<link>http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/</link>
		<comments>http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 12:02:59 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Robustness]]></category>
		<category><![CDATA[2. Testing]]></category>
		<category><![CDATA[3. Automation]]></category>
		<category><![CDATA[description]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[error-handling]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[reporting]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[step]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Test Results]]></category>
		<category><![CDATA[VBScript]]></category>
		<category><![CDATA[wrapping]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=94</guid>
		<description><![CDATA[QA Automation &#8211; GUI Function Wrapping Some of the statements below will be covered in detail in my subsequent posts. Now I use them to get straight to Test Step requirements. Please read details below the picture. Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: Usability, Maintainability, Scalability, and Robustness. Let&#8217;s break them down [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F06%252F05%252Fqa-automation-gui-function-wrapping%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22QA%20Automation%20-%20GUI%20Function%20Wrapping%22%20%7D);"></div>
<h2>QA Automation &#8211; GUI Function Wrapping</h2>
<p>Some of the statements below will be covered in detail in my subsequent posts. Now I use them to get straight to Test Step requirements.<br />
Please read details below the picture.</p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/gui-function-wrapping.jpg" target="_blank"><img class="size-medium wp-image-95 aligncenter" title="Automation - GUI Function Wrapping" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/gui-function-wrapping-237x300.jpg" alt="" width="237" height="300" /></a></p>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p>Quality Assurance Functional/Regression Automated Testing and Test Automation Requirements: <a href="http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/" target="_blank">Usability</a>, <a href="http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/" target="_blank">Maintainability</a>, <a href="http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/" target="_blank">Scalability</a>, and <a href="http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/" target="_blank">Robustness</a>.</p>
<p>Let&#8217;s break them down now for implementation of a single GUI Step.</p>
<h4><em>Usability / Coverage</em></h4>
<p>Test Step encapsulates verification of GUI Object and Test Data.</p>
<p>GUI Object verification includes.</p>
<p><em>Accessibility</em><br />
• If the Object is defined by logical name, its description is available in Repository.<br />
• If the Object is defined by description, Object’s Parent can return Object Instance.<br />
• Object Instance is not empty ( != NULL).</p>
<p><em>Availability</em><br />
• The Object must EXIST on the GUI (and this is enough for the Property Read operation).<br />
• For input-type operation the Object must be ENABLED.<br />
• For Screen Read operation the Object must be DISPLAYED.</p>
<p>Test Data verification includes acceptability by an Object and DOES NOT include any business validation. If Application Under Test for whatever the reason didn’t like the input, it brings error message or other response, that is captured, (optionally) analyzed, and reported by the automated testing system.</p>
<p><em>Acceptability<br />
</em><br />
• Number of arguments provided must match number of arguments that Object&#8217;s method can accept.<br />
Example. To select a cell on a table both row and column must be provided.<br />
• Type of arguments to pass in matches type of arguments Object&#8217;s method can accept.<br />
Example. To select a cell on a table row <em>number</em> and column <em>name</em> must be provided.<br />
• Type of supplied data matches types that Object&#8217;s method can accept<br />
Example. A CheckBox accepts only 3 values that define possible states of it: ON, OFF, or DIMMED</p>
<h4><em>Robustness</em></h4>
<p>Synchronization, error and exception handling provide stable and unbreakable test flow.</p>
<p><em>Synchronization<br />
</em>• If specified, the Test Step Function should wait for the Object reaching defined state (E.g. EXISTS, ENABLED, DISPLAYED) within default or defined timeframe.</p>
<p><em>Error handling<br />
</em>• In case of failed operation caused by any matter verification code handles the error, and provides recovery and negative reporting.<br />
• In case of unexpected AUT response (I.e. Pop-up Dialog) exception handler catches it, handles, and passes control back to the targeted GUI Parent form.</p>
<h4><em>Usability / Investigation and Reporting</em></h4>
<p>Test Flow reporting provides end-user with the complete and detailed information, and that allows reproducing even without manually going through the Test Case. Reporting of Object and AUT status description, Test Data log, and judgments made serves that purpose.<br />
In case of failures investigation should be performed, by capturing state of application-under-test, GUI form and GUI object, isolating and reporting properties of the mentioned components.</p>
<p><em>Description<br />
</em>• In case of Negative Reporting, description provides the reason of the FAIL.<br />
Example 1. Failed to input value. Object is not enabled.<br />
Example 2. Failed to select list item. Item does not exist.<br />
• In case of Positive Reporting, description provides details about the operation performed.<br />
Example 1. Pressed button.<br />
Example 2. Retrieved object data.</p>
<p><em>Data log<br />
</em>• Data used in input, retrieval or verification are provided to the end-user.</p>
<p><em>Judgments<br />
</em>• Describe PASS condition used.<br />
• Describe FAIL condition used.<br />
• Describe Cut-Off condition (timeout, boundaries, etc.) used.</p>
<p>Finally, you can see below an example of the Actual Test Report generated after the execution of several GUI steps (business data scrambled).</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p style="text-align: center;"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/execution-steps2.jpg" target="_blank"><img class="size-medium wp-image-96 aligncenter" title="Automated Test Report - Execution Steps" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/execution-steps2-300x86.jpg" alt="" width="300" height="86" /></a></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2010/02/25/how-to-wrap-text/" rel="bookmark" class="crp_title">How to wrap text line (QTP, VBScript)</a></li><li><a href="http://automation-beyond.com/2010/09/30/aq-family-of-objects/" rel="bookmark" class="crp_title">&#8220;aq&#8221; family of objects in TestComplete</a></li><li><a href="http://automation-beyond.com/2010/04/06/peeling-an-onion-code/" rel="bookmark" class="crp_title">Peeling an Onion Code</a></li><li><a href="http://automation-beyond.com/2009/08/26/dynamics-great-plains-gui/" rel="bookmark" class="crp_title">MS Dynamics Great Plains: GUI Platform (automation perspective)</a></li><li><a href="http://automation-beyond.com/2009/12/09/generating-text-file-from-xml-template/" rel="bookmark" class="crp_title">Generating text file from XML template (QTP, VBScript)</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/06/05/qa-automation-gui-function-wrapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test Case Automation Cycle</title>
		<link>http://automation-beyond.com/2009/05/22/test-case-automation-cycle/</link>
		<comments>http://automation-beyond.com/2009/05/22/test-case-automation-cycle/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:17:35 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[2. Testing]]></category>
		<category><![CDATA[3. Automation]]></category>
		<category><![CDATA[cycle]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[estimate]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[QTP]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[Test Case]]></category>
		<category><![CDATA[WinRunner]]></category>

		<guid isPermaLink="false">http://automationbeyond.wordpress.com/?p=16</guid>
		<description><![CDATA[Original date:  4 Dec 2008, 1:49pm Related Posts:Automation that sucksTest Automation Problems (4) &#8211; Implementation Approach &#8211; RobustnessSynchronization in Test AutomationFront-End Test Automation Practices &#8211; Model-based Hybrid Keyword/Data Driven FrameworkTest Automation Problems (1) – Project Planning and Management]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2009%252F05%252F22%252Ftest-case-automation-cycle%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Test%20Case%20Automation%20Cycle%22%20%7D);"></div>
<p><div style="position: relative; z-index:1;"><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* Banner 468x60 */
google_ad_slot = "8933038987";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p>Original date:  4 Dec 2008, 1:49pm</p>
<div id="attachment_17" class="wp-caption aligncenter" style="width: 294px"><a href="http://automation-beyond.com/wp/wp-content/uploads/2009/05/test-case-automation-cycle-c.jpg" target="_blank"><img class="size-medium wp-image-17 " title="Test Case Automation Cycle" src="http://automation-beyond.com/wp/wp-content/uploads/2009/05/test-case-automation-cycle-c-284x300.jpg" alt="" width="284" height="300" /></a><p class="wp-caption-text">Test Case Automation Cycle</p></div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4470793787913935";
/* 4 links text line */
google_ad_slot = "5367351963";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2008/12/10/automation-that-sucks/" rel="bookmark" class="crp_title">Automation that sucks</a></li><li><a href="http://automation-beyond.com/2009/08/13/test-automation-problems-4d/" rel="bookmark" class="crp_title">Test Automation Problems (4) &#8211; Implementation Approach &#8211; Robustness</a></li><li><a href="http://automation-beyond.com/2007/10/10/synchronization-in-test-automation/" rel="bookmark" class="crp_title">Synchronization in Test Automation</a></li><li><a href="http://automation-beyond.com/2009/06/04/test-automation-hybrid-framework/" rel="bookmark" class="crp_title">Front-End Test Automation Practices &#8211; Model-based Hybrid Keyword/Data Driven Framework</a></li><li><a href="http://automation-beyond.com/2009/07/01/test-automation-problems-1/" rel="bookmark" class="crp_title">Test Automation Problems (1) – Project Planning and Management</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2009/05/22/test-case-automation-cycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IDEF0 for Test Automation Design</title>
		<link>http://automation-beyond.com/2008/08/10/idef0-for-test-automation-design/</link>
		<comments>http://automation-beyond.com/2008/08/10/idef0-for-test-automation-design/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 05:00:02 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[3. Automation]]></category>
		<category><![CDATA[approach]]></category>
		<category><![CDATA[decomposition]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://automation-beyond.com/?p=2613</guid>
		<description><![CDATA[What is it? IDEF0 is abbreviation for Integration Definitions for Functional Modeling [of Systems]. Zero means type of modeling. (IDEF0 &#8211; function modeling, IDEF1 &#8211; information modeling, IDEF2 &#8211; dynamics modeling). How it looks? Image courtesy: Wikipedia How it works?   Image courtesy: Berry College Related Posts:&#8220;How do you write your QTP Tests?&#8221; (StackOverflow question)Unit Test [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2008%252F08%252F10%252Fidef0-for-test-automation-design%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22IDEF0%20for%20Test%20Automation%20Design%22%20%7D);"></div>
<h2>What is it?</h2>
<p>IDEF0 is abbreviation for <em>Integration Definitions for Functional Modeling [of Systems]. </em><br />
Zero means type of modeling. (IDEF0 &#8211; function modeling, IDEF1 &#8211; information modeling, IDEF2 &#8211; dynamics modeling).</p>
<h2>How it looks?</h2>
<p><a href="http://upload.wikimedia.org/wikipedia/commons/9/96/IDEF_Box_Format.jpg" target="_blank"><img class="alignnone" title="IDEF0" src="http://upload.wikimedia.org/wikipedia/commons/9/96/IDEF_Box_Format.jpg" alt="" width="525" height="210" /></a></p>
<p style="text-align: center;">Image courtesy: Wikipedia</p>
<h2>How it works?</h2>
<p> </p>
<p><img class="alignnone" title="IDEF0" src="http://facultyweb.berry.edu/jgrout/processmaps/Idef0_diagram2.gif" alt="" width="432" height="551" /></p>
<p style="text-align: center;">Image courtesy: <a href="http://www.berry.edu/" target="_blank">Berry College</a></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2010/09/20/on-stackoverflow-1/" rel="bookmark" class="crp_title">&#8220;How do you write your QTP Tests?&#8221; (StackOverflow question)</a></li><li><a href="http://automation-beyond.com/2008/03/15/unit-test-design-vs-unit-function-design/" rel="bookmark" class="crp_title">Unit Test Design vs. Unit Function Design</a></li><li><a href="http://automation-beyond.com/2010/12/21/2010-11-qtt-posts/" rel="bookmark" class="crp_title">2010/11 Quick Testing Tips posts archive</a></li><li><a href="http://automation-beyond.com/2008/10/10/on-functional-decomposition/" rel="bookmark" class="crp_title">On Functional Decomposition</a></li><li><a href="http://automation-beyond.com/2008/12/10/automation-that-sucks/" rel="bookmark" class="crp_title">Automation that sucks</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2008/08/10/idef0-for-test-automation-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2-tier Test Automation Architecture &#8211; Advanced Reporting</title>
		<link>http://automation-beyond.com/2007/06/23/2-tier-test-automation-architecture-advanced-reporting/</link>
		<comments>http://automation-beyond.com/2007/06/23/2-tier-test-automation-architecture-advanced-reporting/#comments</comments>
		<pubDate>Sat, 23 Jun 2007 05:00:20 +0000</pubDate>
		<dc:creator>Albert Gareev</dc:creator>
				<category><![CDATA[Documents]]></category>
		<category><![CDATA[Implementation]]></category>

		<guid isPermaLink="false">http://automation-beyond.com/?p=2944</guid>
		<description><![CDATA[2-tier Data-Driven Test Automation Architecture (WinRunner) – Advanced Reporting Related Posts:2-tier Automation Architecture Functional DiagramTest Automation Architecture (WinRunner)WinRunner to QTP migration notes (3)Test Automation TerminologyFront-End Test Automation Practices &#8211; Model-based Hybrid Keyword/Data Driven Framework]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fautomation-beyond.com%252F2007%252F06%252F23%252F2-tier-test-automation-architecture-advanced-reporting%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%222-tier%20Test%20Automation%20Architecture%20-%20Advanced%20Reporting%22%20%7D);"></div>
<h2>2-tier Data-Driven Test Automation Architecture (WinRunner) – Advanced Reporting</h2>
<div id="attachment_2947" class="wp-caption alignnone" style="width: 310px"><a href="http://automation-beyond.com/wp/wp-content/uploads/2007/06/XMLReporting.jpg" target="_blank"><img class="size-medium wp-image-2947 " title="XMLReporting" src="http://automation-beyond.com/wp/wp-content/uploads/2007/06/XMLReporting-300x218.jpg" alt="" width="300" height="218" /></a><p class="wp-caption-text">Click to see full-size in a separate window</p></div>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://automation-beyond.com/2007/06/20/2-tier-automation-architecture-functional-diagram/" rel="bookmark" class="crp_title">2-tier Automation Architecture Functional Diagram</a></li><li><a href="http://automation-beyond.com/2007/06/15/test-automation-architecture-winrunner/" rel="bookmark" class="crp_title">Test Automation Architecture (WinRunner)</a></li><li><a href="http://automation-beyond.com/2008/09/20/winrunner2qtp-3/" rel="bookmark" class="crp_title">WinRunner to QTP migration notes (3)</a></li><li><a href="http://automation-beyond.com/2008/04/21/test-automation-terminology/" rel="bookmark" class="crp_title">Test Automation Terminology</a></li><li><a href="http://automation-beyond.com/2009/06/04/test-automation-hybrid-framework/" rel="bookmark" class="crp_title">Front-End Test Automation Practices &#8211; Model-based Hybrid Keyword/Data Driven Framework</a></li></ul></div>
]]></content:encoded>
			<wfw:commentRss>http://automation-beyond.com/2007/06/23/2-tier-test-automation-architecture-advanced-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

