<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Programming Paradigms in Test Automation</title>
	<atom:link href="http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/</link>
	<description>Treatises on the practice of software testing</description>
	<lastBuildDate>Tue, 07 Feb 2012 09:15:11 -0500</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-307</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:24:32 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-307</guid>
		<description>Hi Rajesh,

The development approach used to develop a test case may very well be fundamentally different than the development paradigm used to build a testing framework.

In your post you state, &quot;Since the automation tester will only use the business classes and methods that the automation framework exposes, development of these automation suite is very fast.&quot; I could be wrong, but this sounds very much like key-word driven automation.

Personally, limiting testers to a set of predefined methods in a script to drive a test framework that acts as an abstraction layer is simply limiting the ability of an automated test. As Dustin, et. el. stated, automation is a development activity. Well designed automation provides some degree of determinism and reduces the mindless scripting of rudimentary sequential actions.

Also, it seems from your description that your concept of inheritance is primarily based on the ability to reuse code. I have lots of methods that I reused in procedural programming; reuse in of itself does not imply inheritance in the OOP paradigm. 

A simple test for inheritance in an OOP paradigm is the &quot;IS A&quot; test; in other words a sub-component IS A specilized version of its predicessor. For example, an automobile is a specialized version of vehicle. 2-door coup IS A specialized version of automobile.

And with regards to polymorphism, I am not sure that I would ever want to call code that can issue the same command to a superclass or interface and get different results. In application programming this is important, but in an automated test I have not yet been convinced of its applicable use. (Assuming we agree that polymophism is not the same as randomization.)

Sunday, September 06, 2009 2:53 AM by I.M.Testy</description>
		<content:encoded><![CDATA[<p>Hi Rajesh,</p>
<p>The development approach used to develop a test case may very well be fundamentally different than the development paradigm used to build a testing framework.</p>
<p>In your post you state, &#8220;Since the automation tester will only use the business classes and methods that the automation framework exposes, development of these automation suite is very fast.&#8221; I could be wrong, but this sounds very much like key-word driven automation.</p>
<p>Personally, limiting testers to a set of predefined methods in a script to drive a test framework that acts as an abstraction layer is simply limiting the ability of an automated test. As Dustin, et. el. stated, automation is a development activity. Well designed automation provides some degree of determinism and reduces the mindless scripting of rudimentary sequential actions.</p>
<p>Also, it seems from your description that your concept of inheritance is primarily based on the ability to reuse code. I have lots of methods that I reused in procedural programming; reuse in of itself does not imply inheritance in the OOP paradigm. </p>
<p>A simple test for inheritance in an OOP paradigm is the &#8220;IS A&#8221; test; in other words a sub-component IS A specilized version of its predicessor. For example, an automobile is a specialized version of vehicle. 2-door coup IS A specialized version of automobile.</p>
<p>And with regards to polymorphism, I am not sure that I would ever want to call code that can issue the same command to a superclass or interface and get different results. In application programming this is important, but in an automated test I have not yet been convinced of its applicable use. (Assuming we agree that polymophism is not the same as randomization.)</p>
<p>Sunday, September 06, 2009 2:53 AM by I.M.Testy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rajesh Kazhankodath</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-306</link>
		<dc:creator>Rajesh Kazhankodath</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-306</guid>
		<description>I&#039;ve been working on adopting an &quot;object oriented approach&quot; towards test automation. My guess is that this approach falls somewhere between a procedural paradigm and a model based automation paradidm. We&#039;ve achieved remarkable level of producivity with this approach. I&#039;ve blogged about the approach here. 

http://elusivebug.blogspot.com/ 

Regards

Rajesh

Sunday, September 06, 2009 2:12 AM by Rajesh Kazhankodath</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been working on adopting an &#8220;object oriented approach&#8221; towards test automation. My guess is that this approach falls somewhere between a procedural paradigm and a model based automation paradidm. We&#8217;ve achieved remarkable level of producivity with this approach. I&#8217;ve blogged about the approach here. </p>
<p><a href="http://elusivebug.blogspot.com/" rel="nofollow">http://elusivebug.blogspot.com/</a> </p>
<p>Regards</p>
<p>Rajesh</p>
<p>Sunday, September 06, 2009 2:12 AM by Rajesh Kazhankodath</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-305</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:24:10 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-305</guid>
		<description>Hi PlainPlow,

I would recommend &quot;Structured Programming&quot; by Dahl, Dijkstra, and Hoare for learning about procedural or structured programming paradigms. Wikipedia also has good pointers to additional info if you search on structured programming and procedural programming. (IMHO, they are essentially synonomous. 

For model based testing, I would refer to the Spec Explorer website at http://research.microsoft.com/en-us/projects/specexplorer/. Also a search on Spec Explorer will provide additional learning resources.

Tuesday, June 23, 2009 11:30 AM by I.M.Testy</description>
		<content:encoded><![CDATA[<p>Hi PlainPlow,</p>
<p>I would recommend &#8220;Structured Programming&#8221; by Dahl, Dijkstra, and Hoare for learning about procedural or structured programming paradigms. Wikipedia also has good pointers to additional info if you search on structured programming and procedural programming. (IMHO, they are essentially synonomous. </p>
<p>For model based testing, I would refer to the Spec Explorer website at <a href="http://research.microsoft.com/en-us/projects/specexplorer/" rel="nofollow">http://research.microsoft.com/en-us/projects/specexplorer/</a>. Also a search on Spec Explorer will provide additional learning resources.</p>
<p>Tuesday, June 23, 2009 11:30 AM by I.M.Testy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: plainplow</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-304</link>
		<dc:creator>plainplow</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:24:01 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-304</guid>
		<description>Could you point us to resources for learning how to use procedural automation and/or the model based automation approach?

Monday, June 22, 2009 11:44 AM by plainplow</description>
		<content:encoded><![CDATA[<p>Could you point us to resources for learning how to use procedural automation and/or the model based automation approach?</p>
<p>Monday, June 22, 2009 11:44 AM by plainplow</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Agile Testing</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-303</link>
		<dc:creator>Agile Testing</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:23:50 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-303</guid>
		<description>Over at his I. M. Testy blog, BJ Rollison offers succinct definitions of five approaches to automated testing: record and playback automation, keyword or action-word driven automation, scripted automation, procedural automation, and model based automation.

Wednesday, May 20, 2009 1:31 PM by Agile Testing</description>
		<content:encoded><![CDATA[<p>Over at his I. M. Testy blog, BJ Rollison offers succinct definitions of five approaches to automated testing: record and playback automation, keyword or action-word driven automation, scripted automation, procedural automation, and model based automation.</p>
<p>Wednesday, May 20, 2009 1:31 PM by Agile Testing</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: verand</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-302</link>
		<dc:creator>verand</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:23:36 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-302</guid>
		<description>&quot;So, approach which is best?&quot;

There are many factors that should be considered before choosing the right approach. Here are a few:

   * Analyze the application/product (Web, OS-Based, Technology...etc)

   * Realize what to be tested and what not to be.

   * Go through the requirements

   * Separate the areas as per the modules.

   * Analyze your customer/product needs and thus estimate the development activities. This gives you an idea of number of build releases and testing cycles required.

   * Maintenance (Long-term/Short-term)

   * Budget

It is not always recommended to have a greater complexity in the design(i respect your thoughts too). But we cannot really get benefited designing and developing Next Generation Automation framework to test a tiny application :-)

Wednesday, May 20, 2009 2:59 AM by verand</description>
		<content:encoded><![CDATA[<p>&#8220;So, approach which is best?&#8221;</p>
<p>There are many factors that should be considered before choosing the right approach. Here are a few:</p>
<p>   * Analyze the application/product (Web, OS-Based, Technology&#8230;etc)</p>
<p>   * Realize what to be tested and what not to be.</p>
<p>   * Go through the requirements</p>
<p>   * Separate the areas as per the modules.</p>
<p>   * Analyze your customer/product needs and thus estimate the development activities. This gives you an idea of number of build releases and testing cycles required.</p>
<p>   * Maintenance (Long-term/Short-term)</p>
<p>   * Budget</p>
<p>It is not always recommended to have a greater complexity in the design(i respect your thoughts too). But we cannot really get benefited designing and developing Next Generation Automation framework to test a tiny application <img src='http://www.testingmentor.com/imtesty/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Wednesday, May 20, 2009 2:59 AM by verand</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: testingmentor</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-301</link>
		<dc:creator>testingmentor</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:23:22 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-301</guid>
		<description>Hi Joe,

I agree there are a plethora of tools that include record/playback mechanisms. I should have not used the word &#039;tools&#039; since I am speaking about the record/playback paradigm as an automation approach. (I have edited the post to remove the word tool and replace it with paradigm to clarify my thoughts.)

I think you misread my statement. I did not infer that testers are slightly more useful than trained monkeys; my statement infered (mine and) the opinion of people I have spoken with whom have used a simple record/playback approach to test automation view this automation paradigm as slightly more useful than trained monkeys. I think most testers quickly realize the limitations of the record/playback automation paradigm, and also understand the specific situations where it can add value to a project.

 I also think that most professional testers realize that greater success of the record/playback automation paradigm requires the tester to modify the underlying code at least to some extent. But, I would say that modifying the underlying code base obtained from a record playback tool actually moves us closer towards the scripted automation paradigm.

Thursday, May 14, 2009 12:13 PM by I.M.Testy</description>
		<content:encoded><![CDATA[<p>Hi Joe,</p>
<p>I agree there are a plethora of tools that include record/playback mechanisms. I should have not used the word &#8216;tools&#8217; since I am speaking about the record/playback paradigm as an automation approach. (I have edited the post to remove the word tool and replace it with paradigm to clarify my thoughts.)</p>
<p>I think you misread my statement. I did not infer that testers are slightly more useful than trained monkeys; my statement infered (mine and) the opinion of people I have spoken with whom have used a simple record/playback approach to test automation view this automation paradigm as slightly more useful than trained monkeys. I think most testers quickly realize the limitations of the record/playback automation paradigm, and also understand the specific situations where it can add value to a project.</p>
<p> I also think that most professional testers realize that greater success of the record/playback automation paradigm requires the tester to modify the underlying code at least to some extent. But, I would say that modifying the underlying code base obtained from a record playback tool actually moves us closer towards the scripted automation paradigm.</p>
<p>Thursday, May 14, 2009 12:13 PM by I.M.Testy</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: strazzerj</title>
		<link>http://www.testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/comment-page-1/#comment-300</link>
		<dc:creator>strazzerj</dc:creator>
		<pubDate>Thu, 19 Nov 2009 05:22:27 +0000</pubDate>
		<guid isPermaLink="false">http://testingmentor.com/imtesty/2009/11/18/programming-paradigms-in-test-automation/#comment-300</guid>
		<description>&quot;Although many record/playback tools allow &#039;test developers&#039; to modify the scripted actions to some extent, and possibly even incorporate simple yes/no oracles I think many people view record/playback tools as being slightly more useful than trained monkeys in limited situations.&quot;

There are very, very few tools that could be accurately categorized as only &quot;record/playback TOOLS&quot;.

Virtually all commercial (and some open-source) test automation tools include a &quot;record/playback FEATURE&quot;.

Despite your dismissal, like all features they have their uses and abuses.

Many people view QAers in general as &quot;slightly more useful than trained monkeys&quot;.  I think it&#039;s unfortunate to see someone like you use such derogatory terms.

Thursday, May 14, 2009 10:34 AM by strazzerj</description>
		<content:encoded><![CDATA[<p>&#8220;Although many record/playback tools allow &#8216;test developers&#8217; to modify the scripted actions to some extent, and possibly even incorporate simple yes/no oracles I think many people view record/playback tools as being slightly more useful than trained monkeys in limited situations.&#8221;</p>
<p>There are very, very few tools that could be accurately categorized as only &#8220;record/playback TOOLS&#8221;.</p>
<p>Virtually all commercial (and some open-source) test automation tools include a &#8220;record/playback FEATURE&#8221;.</p>
<p>Despite your dismissal, like all features they have their uses and abuses.</p>
<p>Many people view QAers in general as &#8220;slightly more useful than trained monkeys&#8221;.  I think it&#8217;s unfortunate to see someone like you use such derogatory terms.</p>
<p>Thursday, May 14, 2009 10:34 AM by strazzerj</p>
]]></content:encoded>
	</item>
</channel>
</rss>

