<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="/4.0.5" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Zeenyx Support</title>
		<link>http://automatedtesting.com/b2evolution1/blog1.php</link>
		<atom:link rel="self" type="application/rss+xml" href="http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2" />
		<description></description>
		<language>en-US</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=4.0.5"/>
		<ttl>60</ttl>
				<item>
			<title>Deciding Which Tests To Automate</title>
			<link>http://automatedtesting.com/b2evolution1/blog1.php/deciding-which-tests-to-automate</link>
			<pubDate>Mon, 13 May 2013 19:51:00 +0000</pubDate>			<dc:creator>ZeenyxSupport</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">10@http://automatedtesting.com/b2evolution1/</guid>
						<description>&lt;p&gt;One of the most fundamental reasons why organizations do not always get the most from their investment in test automation is that they lack experience in choosing what and what not to automate. Most software applications do, in fact, provide plenty of good opportunities to increase productivity and improve reliability of testing through the effective use of automated testing tools. Determining which tests to automate might be the most important factor in the success or failure of your test automation efforts.&lt;/p&gt;
&lt;p&gt;Let&#039;s look at a few criteria that help to distinguish good from poor candidates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Length and complexity of the test&lt;/li&gt;
&lt;li&gt;Number of test permutations&lt;/li&gt;
&lt;li&gt;Ability to predict test results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This first recommendation might seem like common sense: choose tests which are short and relatively free of complexity. Especially when new to test automation, select tests that involve only a few pages or screens in your application. Avoid long, complex transactions and tests that involve more than one software application. Once you have built up a library of reusable test steps, you can then think about combining them to form more advanced tests.&lt;/p&gt;
&lt;p&gt;Choose tests that have many data permutations. Almost every application has processing paths that need to be traversed with lots of different combinations of data. By creating a reusable test that separates actions from data, you can get a good return on your time investment by passing many sets of data to your data-driven test. For the amount of work that it takes to create one automated tests, you can cover many different test requirements.&lt;/p&gt;
&lt;p&gt;Some tests include verification steps that change frequently. Until you develop the skills to automate the generation of expected results at runtime, stick to tests where the expected results are stable. It&#039;s worth the time and effort to manage the test data environment before you begin developing automated tests so that you can be sure that results are predictable and stable.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://automatedtesting.com/b2evolution1/blog1.php/deciding-which-tests-to-automate&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>One of the most fundamental reasons why organizations do not always get the most from their investment in test automation is that they lack experience in choosing what and what not to automate. Most software applications do, in fact, provide plenty of good opportunities to increase productivity and improve reliability of testing through the effective use of automated testing tools. Determining which tests to automate might be the most important factor in the success or failure of your test automation efforts.</p>
<p>Let's look at a few criteria that help to distinguish good from poor candidates:</p>
<ul>
<li>Length and complexity of the test</li>
<li>Number of test permutations</li>
<li>Ability to predict test results</li>
</ul>
<p>This first recommendation might seem like common sense: choose tests which are short and relatively free of complexity. Especially when new to test automation, select tests that involve only a few pages or screens in your application. Avoid long, complex transactions and tests that involve more than one software application. Once you have built up a library of reusable test steps, you can then think about combining them to form more advanced tests.</p>
<p>Choose tests that have many data permutations. Almost every application has processing paths that need to be traversed with lots of different combinations of data. By creating a reusable test that separates actions from data, you can get a good return on your time investment by passing many sets of data to your data-driven test. For the amount of work that it takes to create one automated tests, you can cover many different test requirements.</p>
<p>Some tests include verification steps that change frequently. Until you develop the skills to automate the generation of expected results at runtime, stick to tests where the expected results are stable. It's worth the time and effort to manage the test data environment before you begin developing automated tests so that you can be sure that results are predictable and stable.</p><div class="item_footer"><p><small><a href="http://automatedtesting.com/b2evolution1/blog1.php/deciding-which-tests-to-automate">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://automatedtesting.com/b2evolution1/blog1.php/deciding-which-tests-to-automate#comments</comments>
			<wfw:commentRss>http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=10</wfw:commentRss>
		</item>
				<item>
			<title>Why is it that Test Automation is not widely adopted?</title>
			<link>http://automatedtesting.com/b2evolution1/blog1.php/why-is-it-that-test</link>
			<pubDate>Tue, 05 Feb 2013 20:52:00 +0000</pubDate>			<dc:creator>ZeenyxSupport</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">9@http://automatedtesting.com/b2evolution1/</guid>
						<description>&lt;p&gt;Test automation has been around for nearly 30 years, but it is still not widely adopted. In some organizations it has taken hold and been extremely successful, while in others it has languished.&amp;#160; We are preparing for a presentation / group discussion on the topic and would appreciate hearing your stories. If you have something that you are willing to share, please use the Information Request Form from the Contact tab of the Zeenyx website. We&#039;ll share the final analysis here. Thanks for your participation.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://automatedtesting.com/b2evolution1/blog1.php/why-is-it-that-test&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Test automation has been around for nearly 30 years, but it is still not widely adopted. In some organizations it has taken hold and been extremely successful, while in others it has languished.&#160; We are preparing for a presentation / group discussion on the topic and would appreciate hearing your stories. If you have something that you are willing to share, please use the Information Request Form from the Contact tab of the Zeenyx website. We'll share the final analysis here. Thanks for your participation.</p><div class="item_footer"><p><small><a href="http://automatedtesting.com/b2evolution1/blog1.php/why-is-it-that-test">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://automatedtesting.com/b2evolution1/blog1.php/why-is-it-that-test#comments</comments>
			<wfw:commentRss>http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=9</wfw:commentRss>
		</item>
				<item>
			<title>Outline-based Test Plans</title>
			<link>http://automatedtesting.com/b2evolution1/blog1.php/ou</link>
			<pubDate>Fri, 02 Nov 2012 15:29:00 +0000</pubDate>			<dc:creator>ZeenyxSupport</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">8@http://automatedtesting.com/b2evolution1/</guid>
						<description>&lt;p&gt;AscentialTest provides a specialized editor, designed for writing outline-based test plans. Documenting test requirements in outline form provides an immediate advantage that is easy to overlook. Compared to simply compiling a list of tests, the outline form provides a graphical view of test requirements, making it much easier to determine the level of test coverage that a test plan provides. Let&amp;#8217;s look at a very simple example:&lt;/p&gt;
&lt;table style=&quot;width: 606px; height: 213px;&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;
&lt;tbody&gt;
&lt;tr valign=&quot;top&quot;&gt;
&lt;td valign=&quot;top&quot; scope=&quot;col&quot;&gt;
&lt;p&gt;&lt;img src=&quot;/b2evolution1/media/ListBased_Plan.png&quot; alt=&quot;&quot; /&gt;&lt;img src=&quot;/b2evolution1/media/OutlineBasedPlan.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span id=&quot;__caret&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;The test plan on the left in the figure above displays a simple list of tests. Notice how it repeats information like the words &amp;#8216;Missing&amp;#8217; and &amp;#8216;Required Field&amp;#8217;. It&amp;#8217;s not easy to figure out what is being covered without studying it. The test plan on the right is structured. A quick look informs the reader that there are three types of tests, &amp;#8216;Required Fields&amp;#8217;, &amp;#8216;Confirmed Fields&amp;#8217; and &amp;#8216;Formatted Fields&amp;#8217;. During a peer review, it&amp;#8217;s easy to guess that one of the first questions that will be discussed is whether all of the required, confirmed and formatted fields are covered. Reviewing a plan written graphically encourages the test plan writer and the reviewer alike to drill down deeper to ensure comprehensive coverage. In a simple example like the one presented above, the difference in the two planning approaches may be subtle, but if you imagine a more complex test problem, the advantage of the outline-based format will quickly become evident. For a full description of AscentialTest&#039;s test planning capabilities, please submit an Information Request from the Zeenyx website.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://automatedtesting.com/b2evolution1/blog1.php/ou&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>AscentialTest provides a specialized editor, designed for writing outline-based test plans. Documenting test requirements in outline form provides an immediate advantage that is easy to overlook. Compared to simply compiling a list of tests, the outline form provides a graphical view of test requirements, making it much easier to determine the level of test coverage that a test plan provides. Let&#8217;s look at a very simple example:</p>
<table style="width: 606px; height: 213px;" border="0" align="center">
<tbody>
<tr valign="top">
<td valign="top" scope="col">
<p><img src="http://automatedtesting.com/b2evolution1/media/ListBased_Plan.png" alt="" /><img src="http://automatedtesting.com/b2evolution1/media/OutlineBasedPlan.png" alt="" /></p>
</td>
<td></td>
</tr>
</tbody>
</table>
<p><span id="__caret"> </span></p>
<p>&#160;</p>
<p>The test plan on the left in the figure above displays a simple list of tests. Notice how it repeats information like the words &#8216;Missing&#8217; and &#8216;Required Field&#8217;. It&#8217;s not easy to figure out what is being covered without studying it. The test plan on the right is structured. A quick look informs the reader that there are three types of tests, &#8216;Required Fields&#8217;, &#8216;Confirmed Fields&#8217; and &#8216;Formatted Fields&#8217;. During a peer review, it&#8217;s easy to guess that one of the first questions that will be discussed is whether all of the required, confirmed and formatted fields are covered. Reviewing a plan written graphically encourages the test plan writer and the reviewer alike to drill down deeper to ensure comprehensive coverage. In a simple example like the one presented above, the difference in the two planning approaches may be subtle, but if you imagine a more complex test problem, the advantage of the outline-based format will quickly become evident. For a full description of AscentialTest's test planning capabilities, please submit an Information Request from the Zeenyx website.</p><div class="item_footer"><p><small><a href="http://automatedtesting.com/b2evolution1/blog1.php/ou">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://automatedtesting.com/b2evolution1/blog1.php/ou#comments</comments>
			<wfw:commentRss>http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=8</wfw:commentRss>
		</item>
				<item>
			<title>Benefits of Step-based approach</title>
			<link>http://automatedtesting.com/b2evolution1/blog1.php/benefits-of-step-based-approach</link>
			<pubDate>Wed, 29 Aug 2012 18:39:00 +0000</pubDate>			<dc:creator>ZeenyxSupport</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">6@http://automatedtesting.com/b2evolution1/</guid>
						<description>&lt;p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w :WordDocument&gt; &lt;w :View&gt;Normal&lt;/w&gt; &lt;w :Zoom&gt;0&lt;/w&gt; &lt;w :Compatibility&gt; &lt;w :BreakWrappedTables&gt; &lt;w :SnapToGridInCell&gt; &lt;w :WrapTextWithPunct&gt; &lt;w :UseAsianBreakRules&gt; &lt;/w&gt; &lt;w :BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w&gt; &lt;/w&gt; &lt;/w&gt;&lt;/w&gt;&lt;/w&gt;&lt;/w&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;s */
 table.MsoNormalTable
	{mso-style-name:&quot;Table Normal&quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:&quot;&quot;;
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&quot;Times New Roman&quot;;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;Organizations can significantly cut testing cycles by adopting the step-based testing approach to building manual and automated tests. Unlike keyword-driven testing, the step-based approach does not require the development of a test framework. Instead of requiring testing teams to create layers of spreadsheets to define tests and keywords along with supporting files of functions that need to be either recorded or scripted, the step-based approach generates all of the test components based on the objects and actions selected. The keyword-driven approach advertises the division of labor as a benefit. Proponents claim that it allows domain experts to participate in the automation effort. But organizations waste time needlessly because of miscommunication and duplication of effort. The step-based approach allows effective tests to be built by the team members who understand the application whether or not they have programming experience.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;Because manual and automated tests are built upon a common structure in the step-based testing approach, transitioning from one to another is a quick and easy process that can be accomplished by the very team members who designed the tests.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;The step-based approach was designed to anticipate change. Because tests, test steps and test data are all reusable, there is virtually no duplication. Consequently maintenance is kept to a minimum. When there is one change in the AUT, there is typically one change across test components.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;Perhaps the greatest benefit of the step-based approach is the ability that it provides to reuse test components across multiple platforms. Whether your application is moving from a legacy platform to the web/cloud or your organization plans to support applications in both web and mobile environments, test components created around business logic for one version of the application are fully leveraged on subsequent projects. Since only a new object definition is required to reuse all of the existing test components, organizations receive an even larger return on investment with each new project.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;Likewise, many organizations have more than one application that perform a similar function but for different customers or users. &lt;span style=&quot;mso-spacerun: yes;&quot;&gt; &lt;/span&gt;For example, an eCommerce vendor may have more than one web storefront to cater to various types of buyers. Despite a different user interface, the step-based approach allows the testing components to be reused saving significant time and money.&lt;strong&gt;&lt;span style=&quot;font-size: 16.0pt; mso-bidi-font-size: 12.0pt;&quot;&gt; &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 12.0pt; font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-font-family: Batang; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA;&quot;&gt;For more information on step-based testing, visit Zeenyx on the web at &lt;a href=&quot;http://www.zeenyx.com/&quot;&gt;www.zeenyx.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://automatedtesting.com/b2evolution1/blog1.php/benefits-of-step-based-approach&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> <w :WordDocument> <w :View>Normal</w> <w :Zoom>0</w> <w :Compatibility> <w :BreakWrappedTables> <w :SnapToGridInCell> <w :WrapTextWithPunct> <w :UseAsianBreakRules> </w> <w :BrowserLevel>MicrosoftInternetExplorer4</w> </w> </w></w></w></w></xml><![endif]--><!--[if gte mso 10]>
<style>s */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]--></p>
<p class="MsoNormal">Organizations can significantly cut testing cycles by adopting the step-based testing approach to building manual and automated tests. Unlike keyword-driven testing, the step-based approach does not require the development of a test framework. Instead of requiring testing teams to create layers of spreadsheets to define tests and keywords along with supporting files of functions that need to be either recorded or scripted, the step-based approach generates all of the test components based on the objects and actions selected. The keyword-driven approach advertises the division of labor as a benefit. Proponents claim that it allows domain experts to participate in the automation effort. But organizations waste time needlessly because of miscommunication and duplication of effort. The step-based approach allows effective tests to be built by the team members who understand the application whether or not they have programming experience.</p>
<p class="MsoNormal">Because manual and automated tests are built upon a common structure in the step-based testing approach, transitioning from one to another is a quick and easy process that can be accomplished by the very team members who designed the tests.</p>
<p class="MsoNormal">The step-based approach was designed to anticipate change. Because tests, test steps and test data are all reusable, there is virtually no duplication. Consequently maintenance is kept to a minimum. When there is one change in the AUT, there is typically one change across test components.</p>
<p class="MsoNormal">Perhaps the greatest benefit of the step-based approach is the ability that it provides to reuse test components across multiple platforms. Whether your application is moving from a legacy platform to the web/cloud or your organization plans to support applications in both web and mobile environments, test components created around business logic for one version of the application are fully leveraged on subsequent projects. Since only a new object definition is required to reuse all of the existing test components, organizations receive an even larger return on investment with each new project.</p>
<p class="MsoNormal">Likewise, many organizations have more than one application that perform a similar function but for different customers or users. <span style="mso-spacerun: yes;"> </span>For example, an eCommerce vendor may have more than one web storefront to cater to various types of buyers. Despite a different user interface, the step-based approach allows the testing components to be reused saving significant time and money.<strong><span style="font-size: 16.0pt; mso-bidi-font-size: 12.0pt;"> <br /></span></strong></p>
<p><span style="font-size: 12.0pt; font-family: &quot;Times New Roman&quot;; mso-fareast-font-family: Batang; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA;">For more information on step-based testing, visit Zeenyx on the web at <a href="http://www.zeenyx.com/">www.zeenyx.com</a></span></p><div class="item_footer"><p><small><a href="http://automatedtesting.com/b2evolution1/blog1.php/benefits-of-step-based-approach">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://automatedtesting.com/b2evolution1/blog1.php/benefits-of-step-based-approach#comments</comments>
			<wfw:commentRss>http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=6</wfw:commentRss>
		</item>
				<item>
			<title>Extending a class in Zee</title>
			<link>http://automatedtesting.com/b2evolution1/blog1.php/extending-a-class-in-zee-1</link>
			<pubDate>Wed, 29 Aug 2012 18:35:00 +0000</pubDate>			<dc:creator>ZeenyxSupport</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">5@http://automatedtesting.com/b2evolution1/</guid>
						<description>&lt;div class=&quot;bText&quot;&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;The Zee language allows classes to be  extended. This feature allows the user to add methods and properties to a  built-in or user-defined class. To extend a class, use the keyword  &amp;#8216;extend&amp;#8217; as in the following example:&lt;/p&gt;
&lt;p style=&quot;text-align: left; padding-left: 30px;&quot;&gt;extend class Math&lt;/p&gt;
&lt;p style=&quot;text-align: left; padding-left: 60px;&quot;&gt;static Number MyNewMethod (Number nValue)&lt;/p&gt;
&lt;p style=&quot;padding-left: 90px;&quot;&gt;{body of method}&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;MyNewMethod is now available along with all of the other  built-in methods of the Math class. Here are some notes to enhance your  understanding of &amp;#8216;extend&amp;#8217;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Methods and properties can be added to user-defined or built-in classes.&lt;/li&gt;
&lt;li&gt;Regular and app classes can be extended.&lt;/li&gt;
&lt;li&gt;Properties can only be added for app classes.&lt;/li&gt;
&lt;li&gt;Built-in types that provide methods, like Integer, Enum, Real, String can not be extended.&lt;/li&gt;
&lt;li&gt;Classes can be extended in the same or in different files from the base class being extended.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Extension methods and properties are called like their regular counterparts.&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://automatedtesting.com/b2evolution1/blog1.php/extending-a-class-in-zee-1&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<div class="bText">
<p style="text-align: left;">The Zee language allows classes to be  extended. This feature allows the user to add methods and properties to a  built-in or user-defined class. To extend a class, use the keyword  &#8216;extend&#8217; as in the following example:</p>
<p style="text-align: left; padding-left: 30px;">extend class Math</p>
<p style="text-align: left; padding-left: 60px;">static Number MyNewMethod (Number nValue)</p>
<p style="padding-left: 90px;">{body of method}</p>
<p><br /><br />MyNewMethod is now available along with all of the other  built-in methods of the Math class. Here are some notes to enhance your  understanding of &#8216;extend&#8217;:</p>
<ul>
<li>Methods and properties can be added to user-defined or built-in classes.</li>
<li>Regular and app classes can be extended.</li>
<li>Properties can only be added for app classes.</li>
<li>Built-in types that provide methods, like Integer, Enum, Real, String can not be extended.</li>
<li>Classes can be extended in the same or in different files from the base class being extended.</li>
</ul>
<p>Extension methods and properties are called like their regular counterparts.</p>
</div><div class="item_footer"><p><small><a href="http://automatedtesting.com/b2evolution1/blog1.php/extending-a-class-in-zee-1">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://automatedtesting.com/b2evolution1/blog1.php/extending-a-class-in-zee-1#comments</comments>
			<wfw:commentRss>http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=5</wfw:commentRss>
		</item>
				<item>
			<title>Using Metadata</title>
			<link>http://automatedtesting.com/b2evolution1/blog1.php/using-metadata-1</link>
			<pubDate>Wed, 29 Aug 2012 18:33:00 +0000</pubDate>			<dc:creator>ZeenyxSupport</dc:creator>
			<category domain="main">Uncategorized</category>			<guid isPermaLink="false">4@http://automatedtesting.com/b2evolution1/</guid>
						<description>&lt;div class=&quot;bText&quot;&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;Metadata is similar to annotations in java or attributes in C#.  Metadata can be used to mark an object with a value that can be queried  at runtime. For example, you can mark all of the app objects in your  application with a required field attribute so that a generic test can  read the value to determine whether or not to include it in a &amp;#8216;required  field&amp;#8217; test. &lt;br /&gt;&lt;br /&gt;Metadata is implemented in Zee as a class. All  custom metadata derives from the built-in class Metadata. To add  metadata to an AppObject, first create a class as in the example below:&lt;br /&gt;&lt;br /&gt; class&amp;#160; CustomData : Metadata&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt; String&amp;#160; System&amp;#160;&amp;#160; &lt;br /&gt; Integer Version&lt;br /&gt;&lt;br /&gt;Then  apply the metadata to your AppObjects and assign values as in the  example below.&amp;#160; The order of the members inside the square brackets does  not matter since field/value pairs are used:&lt;br /&gt;&lt;br /&gt; WebPage MyPage&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt; WebTextField MyTextField&amp;#160;&amp;#160;&amp;#160; %CustomData[System=&quot;MySystem&quot;,Version=3]&lt;br /&gt;&lt;br /&gt;In  the previous example, each member of the metadata class was assigned  using a field/value pair. An alternate way to assign metadata is to list  the members in order as in the example below:&lt;br /&gt;&lt;br /&gt;WebPage MyPage&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;br /&gt; WebTextField MyTextField&amp;#160; %CustomData[&quot;MySystem&quot;,3]&lt;br /&gt;&lt;br /&gt;To refer to metadata in functions and tests, use the % operator as in the example below:&lt;br /&gt;&lt;br /&gt; String SystemName = MyPage.MyTextField.%CustomData.System&lt;br /&gt;&lt;br /&gt;It  is also possible to create a metadata class without member elements as  in the example below. In this case the value of the metadata will be  false if it is not assigned to an AppObject. Otherwise it will return  true.&lt;br /&gt;&lt;br /&gt; class ObsoleteIndicator : Metadata&lt;br /&gt;&lt;br /&gt; WebPage MyPage&lt;br /&gt;&lt;br /&gt; WebTextField MyTextField %ObsoleteIndicator&amp;#160;&amp;#160; &lt;br /&gt; WebTextField MyTextField2&amp;#160; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Print (MyPage.MyTextField.%ObsoleteIndicator)&lt;br /&gt;//Prints&amp;#160; true &lt;br /&gt;&lt;br /&gt;Print (MyPage.MyTextField2.%ObsoleteIndicator)&lt;br /&gt;//Prints&amp;#160;&amp;#160; false&lt;br /&gt;&lt;br /&gt;Here are some notes to enhance your understanding of Metadata:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Metadata can not be inherited.&lt;/li&gt;
&lt;li&gt;It is not necessary to assign all members of a metadata class to an   AppObject. If a member that is not assigned a value is accessed at   runtime, a null value will be returned.&lt;/li&gt;
&lt;li&gt;If the members of the metadata class are assigned to an AppObject in   order without using the name of the member, members must not be  skipped,  but it is not necessary to assign all members of the class.&lt;/li&gt;
&lt;li&gt;The fields in a metadata class are constants. If they are listed in a metadata assignment, they must be provided with a value.&lt;/li&gt;
&lt;li&gt;The following classes are supported for metadata member elements:   Boolean, Date, DateTime, Enumerated Type, Flags, Integer, List, Number,   Real, Record, String, Time and Type.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://automatedtesting.com/b2evolution1/blog1.php/using-metadata-1&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<div class="bText">
<p>&#160;</p>
<p>Metadata is similar to annotations in java or attributes in C#.  Metadata can be used to mark an object with a value that can be queried  at runtime. For example, you can mark all of the app objects in your  application with a required field attribute so that a generic test can  read the value to determine whether or not to include it in a &#8216;required  field&#8217; test. <br /><br />Metadata is implemented in Zee as a class. All  custom metadata derives from the built-in class Metadata. To add  metadata to an AppObject, first create a class as in the example below:<br /><br /> class&#160; CustomData : Metadata&#160;&#160;&#160; <br /> String&#160; System&#160;&#160; <br /> Integer Version<br /><br />Then  apply the metadata to your AppObjects and assign values as in the  example below.&#160; The order of the members inside the square brackets does  not matter since field/value pairs are used:<br /><br /> WebPage MyPage&#160;&#160;&#160; <br /> WebTextField MyTextField&#160;&#160;&#160; %CustomData[System="MySystem",Version=3]<br /><br />In  the previous example, each member of the metadata class was assigned  using a field/value pair. An alternate way to assign metadata is to list  the members in order as in the example below:<br /><br />WebPage MyPage&#160;&#160;&#160; <br /><br /> WebTextField MyTextField&#160; %CustomData["MySystem",3]<br /><br />To refer to metadata in functions and tests, use the % operator as in the example below:<br /><br /> String SystemName = MyPage.MyTextField.%CustomData.System<br /><br />It  is also possible to create a metadata class without member elements as  in the example below. In this case the value of the metadata will be  false if it is not assigned to an AppObject. Otherwise it will return  true.<br /><br /> class ObsoleteIndicator : Metadata<br /><br /> WebPage MyPage<br /><br /> WebTextField MyTextField %ObsoleteIndicator&#160;&#160; <br /> WebTextField MyTextField2&#160; <br /> <br /><br />Print (MyPage.MyTextField.%ObsoleteIndicator)<br />//Prints&#160; true <br /><br />Print (MyPage.MyTextField2.%ObsoleteIndicator)<br />//Prints&#160;&#160; false<br /><br />Here are some notes to enhance your understanding of Metadata:</p>
<ul>
<li>Metadata can not be inherited.</li>
<li>It is not necessary to assign all members of a metadata class to an   AppObject. If a member that is not assigned a value is accessed at   runtime, a null value will be returned.</li>
<li>If the members of the metadata class are assigned to an AppObject in   order without using the name of the member, members must not be  skipped,  but it is not necessary to assign all members of the class.</li>
<li>The fields in a metadata class are constants. If they are listed in a metadata assignment, they must be provided with a value.</li>
<li>The following classes are supported for metadata member elements:   Boolean, Date, DateTime, Enumerated Type, Flags, Integer, List, Number,   Real, Record, String, Time and Type.</li>
</ul>
</div><div class="item_footer"><p><small><a href="http://automatedtesting.com/b2evolution1/blog1.php/using-metadata-1">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://automatedtesting.com/b2evolution1/blog1.php/using-metadata-1#comments</comments>
			<wfw:commentRss>http://automatedtesting.com/b2evolution1/blog1.php?tempskin=_rss2&#38;disp=comments&#38;p=4</wfw:commentRss>
		</item>
			</channel>
</rss>
