<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx</link><description>Regardless of the personal opinions of a few people, the simple fact is that the demand for software testers who can design and develop effective test automation is increasing. Perhaps one reason for the distain by some folks in the industry is due to</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Programming Paradigms in Test Automation | Microsoft Share Point</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9613779</link><pubDate>Thu, 14 May 2009 07:03:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9613779</guid><dc:creator>Programming Paradigms in Test Automation | Microsoft Share Point</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://microsoft-sharepoint.simplynetdev.com/programming-paradigms-in-test-automation/"&gt;http://microsoft-sharepoint.simplynetdev.com/programming-paradigms-in-test-automation/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9616141</link><pubDate>Thu, 14 May 2009 17:34:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9616141</guid><dc:creator>strazzerj</dc:creator><description>&lt;p&gt;&amp;quot;Although many record/playback tools allow 'test developers' 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.&amp;quot;&lt;/p&gt;
&lt;p&gt;There are very, very few tools that could be accurately categorized as only &amp;quot;record/playback TOOLS&amp;quot;.&lt;/p&gt;
&lt;p&gt;Virtually all commercial (and some open-source) test automation tools include a &amp;quot;record/playback FEATURE&amp;quot;.&lt;/p&gt;
&lt;p&gt;Despite your dismissal, like all features they have their uses and abuses.&lt;/p&gt;
&lt;p&gt;Many people view QAers in general as &amp;quot;slightly more useful than trained monkeys&amp;quot;. &amp;nbsp;I think it's unfortunate to see someone like you use such derogatory terms.&lt;/p&gt;
</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9616431</link><pubDate>Thu, 14 May 2009 19:13:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9616431</guid><dc:creator>I.M.Testy</dc:creator><description>&lt;P&gt;Hi Joe,&lt;/P&gt;
&lt;P&gt;I agree there are a plethora of tools that include record/playback mechanisms. I should have not used the word 'tools' since I am speaking about the record/playback paradigm as an automation approach. (&lt;EM&gt;I have edited the post to remove the word tool and replace it with paradigm to clarify my thoughts&lt;/EM&gt;.)&lt;/P&gt;
&lt;P&gt;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&amp;nbsp;a simple record/playback apporach to test automation view this automation paradigm as&amp;nbsp;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.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I also think that most professional testers realize that&amp;nbsp;greater&amp;nbsp;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.&lt;/P&gt;</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9631717</link><pubDate>Wed, 20 May 2009 09:59:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9631717</guid><dc:creator>verand</dc:creator><description>&lt;p&gt;&amp;quot;So, approach which is best?&amp;quot;&lt;/p&gt;
&lt;p&gt;There are many factors that should be considered before choosing the right approach. Here are a few:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* Analyze the application/product (Web, OS-Based, Technology...etc)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* Realize what to be tested and what not to be.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* Go through the requirements&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* Separate the areas as per the modules.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* 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.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* Maintenance (Long-term/Short-term)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;* Budget&lt;/p&gt;
&lt;p&gt;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 :-)&lt;/p&gt;
</description></item><item><title>Types of automated testing</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9632539</link><pubDate>Wed, 20 May 2009 20:31:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9632539</guid><dc:creator>Agile Testing</dc:creator><description>&lt;p&gt;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.&lt;/p&gt;
</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9797819</link><pubDate>Mon, 22 Jun 2009 18:44:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9797819</guid><dc:creator>plainplow</dc:creator><description>&lt;p&gt;Could you point us to resources for learning how to use procedural automation and/or the model based automation approach?&lt;/p&gt;
</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9799613</link><pubDate>Tue, 23 Jun 2009 18:30:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9799613</guid><dc:creator>I.M.Testy</dc:creator><description>&lt;p&gt;Hi PlainPlow,&lt;/p&gt;
&lt;p&gt;I would recommend &amp;quot;Structured Programming&amp;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. &lt;/p&gt;
&lt;p&gt;For model based testing, I would refer to the Spec Explorer website at &lt;a rel="nofollow" target="_new" href="http://research.microsoft.com/en-us/projects/specexplorer/"&gt;http://research.microsoft.com/en-us/projects/specexplorer/&lt;/a&gt;. Also a search on Spec Explorer will provide additional learning resources.&lt;/p&gt;
</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9891889</link><pubDate>Sun, 06 Sep 2009 09:12:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9891889</guid><dc:creator>Rajesh Kazhankodath</dc:creator><description>&lt;p&gt;I've been working on adopting an &amp;quot;object oriented approach&amp;quot; towards test automation. My guess is that this approach falls somewhere between a procedural paradigm and a model based automation paradidm. We've achieved remarkable level of producivity with this approach. I've blogged about the approach here. &lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://elusivebug.blogspot.com/"&gt;http://elusivebug.blogspot.com/&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Rajesh&lt;/p&gt;</description></item><item><title>re: Programming Paradigms in Test Automation</title><link>http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx#9891895</link><pubDate>Sun, 06 Sep 2009 09:53:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9891895</guid><dc:creator>I.M.Testy</dc:creator><description>&lt;P&gt;Hi Rajesh,&lt;/P&gt;
&lt;P&gt;The development approach used to develop a test case&amp;nbsp;may very well&amp;nbsp;be&amp;nbsp;fundamentally different than the development paradigm used to build a testing framework.&lt;/P&gt;
&lt;P&gt;In your post you state, "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." I could be wrong, but this sounds very much like key-word driven automation.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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. &lt;/P&gt;
&lt;P&gt;A simple test for inheritance in an OOP paradigm is the "IS A" 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.&lt;/P&gt;
&lt;P&gt;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.)&lt;/P&gt;</description></item></channel></rss>