<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4641151445274490481</id><updated>2024-10-09T07:37:51.129+05:30</updated><category term="Testing Process"/><category term="Management"/><category term="Automation"/><category term="About blogging"/><category term="Learning Resource"/><category term="programming"/><category term="Everyday Bugs"/><title type='text'>In Pursuit Of the Elusive</title><subtitle type='html'>Experiences with technology, software testing, development and management.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-7989124914448715208</id><published>2016-05-21T08:33:00.000+05:30</published><updated>2016-05-21T08:33:13.474+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><title type='text'>A Test Automation approach:  Object Oriented frameworks - Part-I [ Introduction ]</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;a href=&quot;http://blogs.msdn.com/imtesty/default.aspx&quot;&gt;B.J Rollison&lt;/a&gt; had recently posted about the &lt;a href=&quot;http://blogs.msdn.com/imtesty/archive/2009/05/14/programming-paradigms-in-test-automation.aspx&quot;&gt;programming paradigms in test automation&lt;/a&gt;. This inspired me to write-up some of the work my team has been doing in automation. My team has been working on a rather &quot;non-traditional&quot; approach on test automation of an product. I&#39;m terming this as &quot;non-traditional&quot; as I&#39;ve not seen this approach being discussed test automation community and forum. There&#39;s been a lot of discussions on key word driven and the much widely accepted data-driven approaches. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
For the lack of a better terminology I&#39;m terming this approach as &quot;Object Oriented approach&quot; in test automation. Considering the elegance of this approach, I&#39;m sure this approach has been practiced by testing teams but just that its not been discussed in the testing community and forum. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
The &quot;Object Oriented approach&quot; considers the system under test as single object or a series object depending upon the complexity of the application and business functionality. The user action performed on the system are considered as methods/functions of these object. This approach also makes a clear distinction between the Test automation framework and the test suites that consumes this framework. The code that implements the encapsulation of the application into the methods and classes are part of the framework. Test Suites instantiates the classes and invokes the methods of these classes to simulate specific sequence of user actions performed by this application. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
To explain further, I&#39;ll summarize the project we&#39;ve been working on. This is a business analytics application performing complex statistical analysis on a data warehouse and publishing the results. At a very high level, users create projects. These projects create data filters based on complex queries defined by users. There are up to 16 different types of data filters that are supported and up to 12 types of statistical analysis. Considering the data warehouse scenario, the underlying data undergoes periodic updates and the application requires to handle historic as well as current data conditions. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
A traditional automation approach to script the screen level user actions would have to take into approach the innumerable combinations. Automating the screen level entities would have been a maintainance nightmare considering that the application GUI changes based on an agile development methodology. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
The approach taken by us was to bifurcate the test automation development into two distinct entities, framework development and test suite development. The framework will provide the classes and methods and the test suites will strictly use these classes and methods for test development. For example, in our approach the framework provide classes and methods such as Project.create(...), Project.edit(...), Project.delete(...), Filter.create(...), Analysis.create(...), Analysis.verify(...), Filter.edit(...), Filter.delete(...), Application.close(...) etc. The Test suite strictly uses these classes and methods for the test development. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
I&#39;ll explain further about the design philosophy, advantages and disadvantages of this approach in my next post. &lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/7989124914448715208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/7989124914448715208' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/7989124914448715208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/7989124914448715208'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2016/05/a-test-automation-approach-object_6.html' title='A Test Automation approach:  Object Oriented frameworks - Part-I [ Introduction ]'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-5252993184182257170</id><published>2016-05-21T08:32:00.001+05:30</published><updated>2016-05-21T08:32:51.702+05:30</updated><title type='text'>Test Automation : Challenges On Internationalizing Test Suites</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div align=&quot;justify&quot;&gt;
After having automated several projects using the OO Framework approach, we&#39;ve been asked to Internationalize our tests suites. This means the test suites developed by us should also execute when the application under test (AUT)is running on a language other than English. Not only should the test suites &#39;execute&#39; on a localized version of the AUT, but also find defects!&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
As a software developer of AUT, the task of internalization/localization is relatively straight forward and the strategy of internalization/localization is well document. The strategy involves moving the language specific string to resource files. Popular languages such as Java &amp;amp; C++ have inbuilt support for this strategy. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
When it comes to internalizing automated test suites the stratety is relatively complex. Most of the GUI automation tools work on the basis of &#39;Object Recognition&#39;. ie. These identify GUI object by a combination of visible string and object properties. Since the visible strings appear in the local language in non-english AUT, the Test scripts developed in english will fail to recognize the objects. This is challenge number one!. Thankfully many of the commercially available tools such as &lt;a href=&quot;http://www-01.ibm.com/software/awdtools/tester/functional/&quot;&gt;RFT&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/HP_QuickTest_Professional&quot;&gt;QTP&lt;/a&gt; support internationazing your testware. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
Assuming that as a test developer you are able to recognize the GUI objects, the second challenge is that the test developed in English indeed pass in a localized language. Generally, the automated tests compares results with benchmarks ( stored as text files, image files or embedded strings in the script itself ). These benchmarks would be in most cases, language dependent. When internalizing your tests, the task of the test developer is to &#39;externalize&#39; the benchmark. What&#39;s more, the inputs you provide to your AUT will also have to be in a local language. Assuming that the test suites are data driven, its expected to have a &#39;language version&#39; of each of the data sources.&lt;br /&gt;
In most of the cases, you&#39;d not know when language you&#39;d be expected to run the test. That means, as a test developer your test suites should be &#39;truely language independent&#39; and not say, my test suites is coded for English, Chinese, italian and French only! That&#39;s the challenge number three. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
Next blog post I&#39;ll explain some strategy to overcome these challanges. &lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/5252993184182257170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/5252993184182257170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/5252993184182257170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/5252993184182257170'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2016/05/test-automation-challenges-on.html' title='Test Automation : Challenges On Internationalizing Test Suites'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-6514867904603471094</id><published>2016-05-21T08:32:00.000+05:30</published><updated>2016-05-21T08:32:38.474+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><title type='text'>A Test Automation approach:  Object Oriented frameworks - Part-II [ Objectives ]</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div align=&quot;justify&quot;&gt;
In my previous post I&#39;ve explained what is the &quot;Object Oriented&quot; approach in test automation. Again to clarify, this approach is not a incompatible with with data driven approach. In fact the its complementary and in our framework the all the input data comes from excel-based template files. So Object-Oriented and Data-driven approaches coexist and are complementary. However the same cannot be said about the keyword /action-word driven automated approach. The &lt;a href=&quot;http://en.wikipedia.org/wiki/Keyword-driven_testing&quot;&gt;keyword driven approach &lt;/a&gt;the actions words and actions associated with this. This encapsulates the underlying complexity of the automation tool into readable actions that can be automated by a non-programmer. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
The object oriented approach however focuses on specific user actions performed on the application. The complexity of the product is encapsulated by this approach rather than the complexity of the automation tool.  This means that a automation framework developed with the object oriented approach can never be a generic one, it always has to be specific to the product you are automating. The object oriented approach also assumes the test developer has a sound understanding of object oriented concepts and the programming language. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
The design philosophy for Object oriented framework are the following. &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;
To model the application under test ( AUT ) as classes and the user actions as methods/functions of these classes&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;
The test suite developers will user these classes and methods and only these classes and methods for test development. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;
The exceptions on the application should be handled by the framework and should return the application to a base state after error.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;
Any test suites developed by the framework should not exceed 100 lines of code. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;
The test suites development should be able to use all the object oriented features supported by the language.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;
The test suites should be tool independent. This means that the framework should encapsulate all the tool dependency within the framework. In case a tool migration is required, the framework can be rewritten and the test cases will not be altered. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div align=&quot;justify&quot;&gt;
In the next post, I&#39;ll explain the design details and approach of the framework we&#39;ve developed and the benefits we&#39;ve achieved with this approach. &lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/6514867904603471094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/6514867904603471094' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6514867904603471094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6514867904603471094'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2016/05/a-test-automation-approach-object_65.html' title='A Test Automation approach:  Object Oriented frameworks - Part-II [ Objectives ]'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-820248717556836169</id><published>2016-05-21T08:31:00.001+05:30</published><updated>2016-05-21T08:32:16.365+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><title type='text'>A Test Automation approach: Object Oriented frameworks - Part-III [ Design ]</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div align=&quot;justify&quot;&gt;
In this post, I&#39;ll try to explain the design of the Object Oriented framework with an simple example.&lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
For the benefit of explaining the process I&#39;m describe a fictitious banking application. Assume the banking application has three modules &#39;Savings Bank module&#39;, &#39;Current Bank module&#39;, &#39;Loans module&#39;. The banking application supports user actions such as &#39;Create an Savings bank&#39;, current account&#39;, &#39;create a loan account&#39;, ‘close account’, ‘credit cash to account’, ‘deposit a cheque’, ‘enquire balance’, ‘check transactions’, ‘debit an account’. Also the banking application has administrative modules such as login module, customer maintenance module etc. &lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;justify&quot;&gt;
In a traditional automation approach, design of the automation begins with identification of the user cases/test cases that requires to be automated. The next step will be to identify the GUI components associated with the user cases identified and coding for these flows. This code will perform user actions such as enter values in the text boxes, click on the buttons, reading values from the GUI etc. A simple test case for opening an account and depositing cash will look similar to the code below after automation. The code below is an example written in a tool/language independent format. &lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;span style=&quot;color: red; font-size: 78%;&quot;&gt;&lt;em&gt;Login: &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;Enter BankEmployeeName :&#39;user1&#39; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Enter password :&#39;*******&#39;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Create Account:&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Verify home page &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Click on &#39;create account link&#39; &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Enter radio button: &#39;savings bank&#39; &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Enter account holder name: myCustomerName &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Enter address: xxxxx .&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;...&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;....&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Click Ok&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;/blockquote&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Verify Account creation:&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Click on &#39;Search account&#39; &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Enter account holder name: myCustomerName &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Click Ok &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Read account holder name &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Compare value with &#39;myCustomerName&#39; &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Read account holder address value &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Compare value with &#39;myCustomerName&#39; &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;... &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;...&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;Deposit Cash:&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Click &#39;Cash Deposit&#39; &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Enter account number: xxxxx &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Enter amount: xxxxx &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;Click OK&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;/blockquote&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;Verify Cash Deposit:&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Click Check Balance:&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;Read account balance value &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3333ff;&quot;&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;em&gt;Compare value with &#39;yyyyy&#39;&lt;/em&gt; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
As you may have noticed, the test case depends on detailed design of the GUI. Each step in the test case relies on individual components on the GUI. For the case of simplicity I&#39;ve not included exception handling in the above code. &lt;br /&gt;
With the Object oriented approach, the design do not start with the set of test case/user cases that requires to be automated. The design of the framework will view the banking application in terms of how as an end user will perceive it. For the object oriented framework approach, the banking application will be a considered as objects with actions on these objects. For the sake of example, the following will be the objects and methods on these objects.&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #006600;&quot;&gt;Class Login:&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: Login(user_name, password) &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #000099;&quot;&gt;Method: Logout&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;/blockquote&gt;
&lt;span style=&quot;color: #006600;&quot;&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;em&gt;Class Account:&lt;/em&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: InitAccountObject() &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: CreateAccount(.....)&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: DepositCash(amount) &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method; EnquireBalance() .&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: CloseAccount() &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: GetAccountDetails() &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: TransferBalance(amount, otherAccountObject) &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;em&gt;Method: VerifyAccount() &lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;color: #000099; font-size: 78%;&quot;&gt;&lt;span style=&quot;color: black; font-size: 100%;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;div align=&quot;justify&quot;&gt;
With this approach, the complexity of the GUI and the actual intricacies of the workflow are encapsulated in the business classes that are defined as part of the framework. With an object oriented framework approach, the above test case will look like below. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #006600;&quot;&gt;Class : TestCaseOne&lt;/span&gt;:&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;&lt;span style=&quot;color: #990000; font-size: 78%;&quot;&gt;&lt;em&gt;    Method: InitAccountObject(accountType) &lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;&lt;span style=&quot;color: #990000; font-size: 78%;&quot;&gt;&lt;em&gt;    Method: TestSteps: employee = New Object Login(&#39;user1&#39;, &#39;*******&#39;)&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        myAccount = New Object Account(); &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        myAccount.CreateAccount(accountType.......) &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        myAccount.VerifyAccount() &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        integer myOldBalance = EnquireBalance()&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        myAccount.DepositCash(amount)&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        integer myNewBalance = EnquireBalance() &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;span style=&quot;color: #3333ff; font-size: 78%;&quot;&gt;&lt;em&gt;        Verify myNewBalance == myOldBalance + amount&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
As you may notice, in the above test case, there&#39;s a very clear demarcation of the GUI components and the business components. All the intricacies of the GUI is hidden away inside the business classes/methods. The automated test case, in this case &#39;TestCaseOne&#39; only deals with the business aspects of the test. With this approach, the automated test case is insulated from the details of the GUI. With any changes to the GUI, the test case will not have to be redesigned. This translates into very good maintainability of the test cases. The second and most important advantage of the Object oriented framework is the test case extensibility. We could &#39;extend&#39; the above test case to test for various related tests. For example, we can extend this test case to test for SavingsBankAccount, CurrentAccount and Loan account as below&lt;/div&gt;
&lt;span style=&quot;color: #006600; font-size: 78%;&quot;&gt;&lt;em&gt;Class SavingsBankAccountTest extends TestCaseOne&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;     Method: InitAccountObject(&#39;SavingsBankAccount&#39;)&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #006600;&quot;&gt;Class SavingsBankAccountTest extends TestCaseOne&lt;/span&gt; &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 78%;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;&lt;em&gt;     Method: InitAccountObject(&#39;CurrentAccount&#39;)&lt;/em&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
With this approach, manual and exploratory testers can automate regression tests cases without the technical knowledge of the automation tool. Testers however should have fundamental knowledge of object oriented concepts and knowledge of the programming language.&lt;br /&gt;
In my next post, I&#39;ll explain the real benefits out team has achieved by implementing this approach of automation and also delve into how we&#39;ve been analysing and evaluating the results of the test executions.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/820248717556836169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/820248717556836169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/820248717556836169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/820248717556836169'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2016/05/a-test-automation-approach-object_21.html' title='A Test Automation approach: Object Oriented frameworks - Part-III [ Design ]'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-7683521526971300581</id><published>2016-05-21T08:31:00.000+05:30</published><updated>2016-05-21T08:31:39.941+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><title type='text'>A Test Automation approach: Object Oriented frameworks - Part-IV [ Benefits ]</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div align=&quot;justify&quot;&gt;
The product we work on is an enterprise-scale solution typically deployed across multiple physical machines and supported on heterogeneous operating systems. The product should work on about 6 types of operating systems and three types of web application server and 3 types of databases. The complete platform support matrix will typically have 12 to 15 unique test-configurations that require to be tested. This is where the need for control over the regression testing comes into picture.&lt;br /&gt;
A complete manual approach for covering all these test configurations is not really a feasible plan. This is where the need of automated test executions comes into picture.&lt;br /&gt;
The preferred approach we take is to identify the “primary test configurations” which are typically 2 or 3 test configurations. Functional testers typically does exploratory testing on these test configurations. At the same time, they also identify the test they’d like the get included in the regression suite. These tests are documented at a ‘business level’ i.e. in terms of use case that the end user will perform. What’s avoided in the test document is GUI level details. At this time, we have a dedicated tester who develops automation suite. These documented tests are what an “automation tester” will work as input. 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. Our future plan is to have the functional testers take-up the automation suite development. This approach makes sense since the functional testers have functional &amp;amp; domain knowledge of the application that the automation tester do not have. This will also help avoid documenting of test by functional testers for automation.&lt;br /&gt;
The important benefit of the object oriented framework is speed of automated test development. Previous to the framework, development of a typical test, automation suite used to take over a week. This has been reduced to less than a day. What’s more, these tests are much more readable and the automation code purely implements the business logic and not the intricacies of the GUI or the automation tool. This leads to efficient maintenance of the automation suite.&lt;br /&gt;
The real benefit of an object oriented approach of development is the use of inheritance and polymorphism. With the Object oriented framework, we are in a position to use inheritance concept on test cases. In functional testing testers typically use an existing test scenario and explore further by making focused changes to this existing test scenario. The same testing approach can be extended by us of inheritance in an object oriented approach. We “inherit” an existing automated test with very minimal change in code that this results in new test cases. In our product, one of the important feature is called ‘analysis’. With the object oriented approach we created a single test case class and extended this class to implement over 500 test cases. With a traditional test automation approach we’d have take several months to complete this suite. With the object oriented approach, the entire effort was less than 2 weeks.&lt;br /&gt;
The real benefit of this approach is to bring down the time to execute tests on the additional test configurations. Manual execution of the regression tests used to take about 1 week for each configuration. Considering that we have about 12 to 15 configurations this effort was the most time consuming and monotonous part of our testing process. With automation we’re able to bring down the execution time to about 2 days for each configuration. However even with automation suite in place, there are still some manual tests that require to be executed.&lt;br /&gt;
There’s a whole class of tests that would have been manually impossible to execute that we’re planning to implement with this framework. With any there are literally millions of combinations of scenarios that a typical user can use in the field. Functional testers only focus on a small subset of these tests. With an automation framework that works at business level, we have the possibility of getting a very high level of coverage. We are now focusing on the approach of &lt;a href=&quot;http://www.kaner.com/pdfs/highvolCSTER.pdf&quot;&gt;high volume test automation&lt;/a&gt; with this framework. To give an example, we have 12 types of ‘analysis’ in our application. Each of these analysis can have 12 sub analysis and this can extend to any level. The ‘analysis’ works on data filters that can be of 16 groups. This leads to around 12*12*16 test scenarios. The complexity although is immense if considered to test manually is only a matter of coding 3 nested loops iterating for each type  when implemented with framework. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
Analysis and evaluation of results is certainly a challenge in any type of testing.  The framework is designed to provide a pass/fail result of each of the verification point coded in the test suite.  However it completely relying on the automated results is not sufficient on many of the cases.  After the automation execution, functional testers furthur does exploratory testing on the results on the execution.  &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
As like any testing effort, this type of automation approach is intended to improve and enhanse the productivity of functional testers. &lt;/div&gt;
&lt;div align=&quot;justify&quot;&gt;
This is the concluding part of this series of post. &lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/7683521526971300581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/7683521526971300581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/7683521526971300581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/7683521526971300581'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2016/05/a-test-automation-approach-object.html' title='A Test Automation approach: Object Oriented frameworks - Part-IV [ Benefits ]'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-1485260441709428407</id><published>2011-12-08T19:42:00.000+05:30</published><updated>2011-12-08T19:42:32.644+05:30</updated><title type='text'>GTAC 2011:  Opening Keynote Address - Test is Dead</title><content type='html'>&lt;iframe width=&quot;480&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/X1jWe5rOu3g?fs=1&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thought provoking Keynote address from &lt;a href=&quot;http://www.gtac.biz/talks&quot;&gt;GTAC&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/1485260441709428407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/1485260441709428407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/1485260441709428407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/1485260441709428407'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2011/12/gtac-2011-opening-keynote-address-test.html' title='GTAC 2011:  Opening Keynote Address - Test is Dead'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/X1jWe5rOu3g/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-4805261462397365801</id><published>2011-12-07T19:06:00.001+05:30</published><updated>2011-12-07T19:21:34.351+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>Managing the Test People : Judy McKay</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://i43.tower.com/images/mm107284702/managing-test-people-guide-practical-technical-management-not-available-paperback-cover-art.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://i43.tower.com/images/mm107284702/managing-test-people-guide-practical-technical-management-not-available-paperback-cover-art.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I&#39;d &lt;a href=&quot;http://elusivebug.blogspot.com/2007/09/due-share-for-test-management.html&quot; target=&quot;_blank&quot;&gt;blogged &lt;/a&gt;previously about the lack of availability of &amp;nbsp;Test management resources and information. Here&#39;s an excellent &lt;a href=&quot;http://shop.oreilly.com/product/9781933952123.do&quot; target=&quot;_blank&quot;&gt;book &lt;/a&gt;by Judy McKay about this subject.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Judy&#39;s style of writing is casual yet very involved in details. &amp;nbsp;Its an excellent resource new managers and leads &amp;nbsp;as well as experienced hands. &amp;nbsp;Much of what&#39;s mentioned in this book is applicable for any management position. However there are specifics&amp;nbsp;challenges on managing&amp;nbsp;&amp;nbsp;testers. Judy has provided practical approaches in dealing with these challenges.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/4805261462397365801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/4805261462397365801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/4805261462397365801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/4805261462397365801'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2011/12/managing-test-people-judy-mckay.html' title='Managing the Test People : Judy McKay'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-3581582598656413657</id><published>2011-11-12T13:15:00.001+05:30</published><updated>2011-11-12T19:49:12.631+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>I&#39;m Hiring!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
New job openings in my group. Please click on details below:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;contentlinepanel&quot; id=&quot;requisitionDescriptionInterface.d3495e309.row1&quot; title=&quot;&quot;&gt;
&lt;span class=&quot;titlepage&quot; id=&quot;requisitionDescriptionInterface.d3495e310.row1&quot; title=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://sas.taleo.net/careersection/10080/jobdetail.ftl?lang=en&amp;amp;job=11002708&quot; target=&quot;_blank&quot;&gt;Sr. Analytical Tester - DDCF&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;contentlinepanel&quot; id=&quot;requisitionDescriptionInterface.d3495e309.row1&quot; title=&quot;&quot;&gt;
&lt;span class=&quot;titlepage&quot; id=&quot;requisitionDescriptionInterface.d3495e310.row1&quot; title=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://sas.taleo.net/careersection/10080/jobdetail.ftl?lang=en&amp;amp;job=11003022&quot; target=&quot;_blank&quot;&gt;Functional Tester -- PAM&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;contentlinepanel&quot; id=&quot;requisitionDescriptionInterface.d3495e309.row1&quot; title=&quot;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/3581582598656413657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/3581582598656413657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/3581582598656413657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/3581582598656413657'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2011/11/im-hiring.html' title='I&#39;m Hiring!'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-9110969167873186706</id><published>2011-06-26T07:10:00.005+05:30</published><updated>2011-06-26T07:21:37.653+05:30</updated><title type='text'>Tools for Exploratory testing: In development...</title><content type='html'>I&#39;m working on developing a tool for exploratory testing.  My idea for GUI design is &lt;a href=&quot;http://en.wikipedia.org/wiki/Minimalism_%28computing%29&quot;&gt;Minimalism&lt;/a&gt; taking into account the bare essentials required while performing an exploratory session. Screen recorder, snapshot tool, rich text editor, copy/paste, annotations.&lt;br /&gt;I&#39;ve been scouting the web for various open source API and reusable code and still in very initial design and research.&lt;br /&gt;Any ideas welcome!</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/9110969167873186706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/9110969167873186706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/9110969167873186706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/9110969167873186706'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2011/06/tools-for-exploratory-testing-in.html' title='Tools for Exploratory testing: In development...'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-5206503608343131772</id><published>2010-03-28T17:19:00.004+05:30</published><updated>2011-06-26T07:08:51.951+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Strategy design pattern</title><content type='html'>Strip the changeable method in a class to a hierarchy class.&lt;br /&gt;ie changing a &#39;has-a&#39; relationship to an &#39;is-a&#39; relationship&lt;br /&gt;Introduction: http://www.youtube.com/watch?v=9n3gF39-trE&lt;br /&gt;Overview : http://www.youtube.com/watch?v=F1841_llRSw&amp;amp;NR=1&lt;br /&gt;Coding : http://www.youtube.com/watch?v=vYByr2u8gqk&amp;amp;feature=related&lt;br /&gt;Execution: http://www.youtube.com/watch?v=mmiWFcjMTLw&amp;amp;feature=related</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/5206503608343131772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/5206503608343131772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/5206503608343131772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/5206503608343131772'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2010/03/strategy-design-pattern.html' title='Strategy design pattern'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-3833076600449321191</id><published>2010-03-28T17:08:00.004+05:30</published><updated>2011-06-26T07:09:37.938+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Design Patterns Study Session: Decorator Pattern</title><content type='html'>Here&#39;s an excellent description of the Decorator Pattern:&lt;br /&gt;Usage of wrapper to extend the functionality of a class without modifying the original class.&lt;br /&gt;&lt;br /&gt;Introduction : http://www.youtube.com/watch?v=Xk8durvtiys&amp;amp;feature=related&lt;br /&gt;Overview        http://www.youtube.com/watch?v=MI_qyfeRk8c&amp;amp;feature=related&lt;br /&gt;Code:               http://www.youtube.com/watch?v=HkOdDMePE4Q&amp;amp;feature=related&lt;br /&gt;Executing http://www.youtube.com/watch?v=Ra-33SFHq6M&amp;amp;feature=related</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/3833076600449321191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/3833076600449321191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/3833076600449321191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/3833076600449321191'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2010/03/design-patterns-study-session-decorator.html' title='Design Patterns Study Session: Decorator Pattern'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-8188303391083606675</id><published>2010-03-28T12:03:00.002+05:30</published><updated>2010-03-28T12:13:41.348+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automation"/><title type='text'>Design Patterns in Automation</title><content type='html'>&lt;a href=&quot;http://at4qa.blogspot.com/&quot;&gt;Peter Kartashov&lt;/a&gt; has an interesting blogpost on application of design patterns in test automation. &lt;a href=&quot;http://at4qa.blogspot.com/2010/01/20-essential-design-patterns-for.html&quot;&gt;http://at4qa.blogspot.com/2010/01/20-essential-design-patterns-for.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/8188303391083606675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/8188303391083606675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8188303391083606675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8188303391083606675'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2010/03/design-patterns-in-automation.html' title='Design Patterns in Automation'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-8418972155574166150</id><published>2010-01-09T16:41:00.012+05:30</published><updated>2010-01-10T16:58:08.227+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Learning Resource"/><title type='text'>Reading HWTSAM</title><content type='html'>&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;I realized only after I got a ping from &lt;a href=&quot;http://testertested.blogspot.com/&quot;&gt;Pradeep &lt;/a&gt;that its been quite a while since I&#39;ve visited by own blog, leave along adding new blog posts.&lt;/div&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;Its my usual excuse as the case is from any IT folk, release pressures, busy schedules, blah, blah.....&lt;/div&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;I&#39;ve picked up a copy of &lt;a href=&quot;http://www.hwtsam.com/&quot;&gt;&#39;How we test software at Microsoft&#39;&lt;/a&gt; and half way done with the book when I came across a very interesting story from &lt;a href=&quot;http://www.hwtsam.com/page/About-Bj.aspx&quot;&gt;Bj Rollison &lt;/a&gt;one of the co-authors of the book. Here&#39;s how the abridged version goes.&lt;/div&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;em&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;A kindergarten teacher asked her students &#39;Who knows the color of the apples?&#39; Several students raised their their hands followed by the answers, some mentioned red, others green and few other yellow. The teacher thanked the students for their answer , the appreciated their knowledge of apples and was about continue with her lesson when she noticed a little girl with her hands still raised. The teacher called upon the child and the little girl replied &#39;apples are white&#39;. The somewhat puzzled teacher politely replied, &#39;Elizabeth, the apples are red, green and yellow, but I&#39;ve not seen a white apple&#39;. Elizabeth peered over the glasses looked at the teacher and bluntly declared, &#39;All apples are white on the inside!&#39;&lt;/div&gt;&lt;/em&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;Rollinson describes the story as a prelude to describing structural testing techniques. However the story brings into perspective what many testers fear &lt;a href=&quot;http://searchsoftwarequality.techtarget.com/news/article/0,289142,sid92_gci1256314,00.html&quot;&gt;testing traps!&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;TEXT-ALIGN: justify&quot;&gt;HWTSAM is certainly a good book and must read for all testers. More reviews to follow once I complete the book.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/8418972155574166150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/8418972155574166150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8418972155574166150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8418972155574166150'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2010/01/reading-hwtsat.html' title='Reading HWTSAM'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-3574951951609732814</id><published>2009-03-29T16:58:00.004+05:30</published><updated>2009-03-29T17:34:10.304+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Learning Resource"/><title type='text'>Course in Basic Statistics</title><content type='html'>Those who&#39;re are interested to learn statistics, here&#39;s a very good &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;resource&lt;/span&gt;. &lt;a href=&quot;http://webcast.berkeley.edu/course_details.php?seriesid=1906978493&quot;&gt;http://webcast.berkeley.edu/course_details.php?seriesid=1906978493&lt;/a&gt; . This is the video recordings for the &quot;Stats 2 Introduction to Statistics&quot; of &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;UC&lt;/span&gt; Berkeley. Instructor Prof. Hank &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Ibser&lt;/span&gt; lectures are pretty interesting to listen to. The unfortunate part is that you do not have access to the course website where you have access to the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;homework&lt;/span&gt; and the other course materials.</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/3574951951609732814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/3574951951609732814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/3574951951609732814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/3574951951609732814'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2009/03/course-in-basic-statistics.html' title='Course in Basic Statistics'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-492190286558616472</id><published>2008-08-25T20:33:00.005+05:30</published><updated>2009-03-29T16:58:14.609+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>Practical Estimation Lesson</title><content type='html'>In wring this blog as response to the comment from Raj in one of my &lt;a href=&quot;http://elusivebug.blogspot.com/2007/03/gutless-estimating-excerpts-from.html&quot;&gt;earlier post&lt;/a&gt;. He&#39;s asked me about the estimation techniques I use for testing efforts.&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;I&#39;ve never used any standard estimation process such as Function point analysis, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;COCOMO&lt;/span&gt; etc. Testing estimation always is very much tied to the development estimates. So an independent estimation &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;without&lt;/span&gt; &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;taking&lt;/span&gt; into consideration development &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;schedules&lt;/span&gt; always fails. At a very high level, I ask team members and test leads to use work break down structure (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;WBS&lt;/span&gt;) to estimate how much it&#39;d take to complete the task on an optimistic and &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;pessimistic&lt;/span&gt; count. I&#39;ve found &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;WBS&lt;/span&gt; method to be effective when testers have performed similar task &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;previously&lt;/span&gt;. These estimates are subjective, and that is also fine. Behavioural and emotional factors also comes into picture when it comes to &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;estimation&lt;/span&gt; in &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;WBS&lt;/span&gt;. It always helps if you meet as a group and ask &#39;why&#39;/&#39;what-if&#39;/&#39;how&#39; questions to &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;further&lt;/span&gt; refine the estimates. Probing questions can be &#39;why is time taken for testing &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;testing&lt;/span&gt; the feature more on Unix than on windows?&#39;, &#39;did you consider the factor in your estimates that feature XXX may be unstable because its based on a libraries our developers had inherited from a team that no longer exist?&#39;, &#39;how did you come up with this estimate?&#39;. Many of these questions are intrusive in nature, some testers may be &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;uncomfortable&lt;/span&gt; with this style. However, the team lead/manager should remember the need to perform this within a team meeting context. It requires to be stated very clearly that its the process that is being questioned and not the person .&lt;br /&gt;What I typically do, is to have a &#39;long-term&#39; estimate for the management when the project is initiated. This is generally a one-time estimate and as a test manager, you&#39;d need to convince the stakeholders that the estimates comes with &#39;risk&#39;. Identification of risks is important at this stage, and the most important risk is the &#39;risk the feature not delivered for testing in the schedule time&#39;, &#39;no clarity on what the requirement is&#39; etc. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;What I also do is to have internal estimates of individual tasks. These are &#39;near-term&#39; estimates of individual tasks. These tasks are more granular and gives a foresight of tasks for typically next 3 weeks. Tasks performed by individual team member tasks should be stated to a level not exceeding 2 to 3 days. These estimates are more realistic and have dependencies. For example, these tasks can be very &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;specific&lt;/span&gt; something like &#39;verify defect fixed in last 2 weeks&#39;, &#39;test the fund transfer module for inoperative accounts&#39;, &#39;get the latest build installed on the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;UNIX&lt;/span&gt; box&#39;, &#39;review the latest modifications for the user doc&#39;. For each and every task &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;taken-up&lt;/span&gt; by team members, a standard question to be asked is &#39;how long will it take?&#39;. In my experience, typically for a mid-sized project, on a typically day, you may tend to ask this question over 3 to 4 times. Often so, every one in the team gets used to this question that they have this answer ready. It helps to track the near-term estimates if you are using a spread sheet or similar project tracking tools. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;From my experience and the context in which we are working on, the stakeholders are more interested progress of work rather than the estimates. Enough advanced communication with the stakeholders about the progress, issues and risks are more important than the accuracy of the estimates. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;With enough experience in the project, you can derive your next long term extimate from your previous near-term estimates. I&#39;ve heard of &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Wideband_delphi&quot;&gt;Wideband Delphi&lt;/a&gt;&quot; estimation and seems to be a promising technique for estimating testing efforts. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/492190286558616472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/492190286558616472' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/492190286558616472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/492190286558616472'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2008/08/practical-estimation-lession.html' title='Practical Estimation Lesson'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-6225890581734014499</id><published>2008-08-09T12:54:00.004+05:30</published><updated>2008-08-09T14:41:33.494+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>Test Cases as security blanket</title><content type='html'>&lt;div align=&quot;justify&quot;&gt;There&#39;s a raging controversy going on,  at least in the Indian software testing community about &quot;test cases centric testing&quot; vs &quot;non test cases centric&quot; testing. Pradeep has posted &lt;a href=&quot;http://testertested.blogspot.com/2008/07/most-test-cases-fail.html&quot;&gt;here &lt;/a&gt;at length on this subject, also has the imprints of the controversy all over the web, from forum posts to blogs to yahoo groups. &lt;/div&gt;&lt;p align=&quot;justify&quot;&gt;My take on this is to consider a test case as a security blanket. Wiki defines &lt;a href=&quot;http://en.wikipedia.org/wiki/Security_blanket&quot;&gt;security blanket &lt;/a&gt;as &lt;em&gt;&quot;A security blanket is any familiar object whose presence provides comfort or security to its owner, such as the literal &lt;/em&gt;&lt;a title=&quot;Blanket&quot; href=&quot;http://en.wikipedia.org/wiki/Blanket&quot;&gt;&lt;em&gt;blankets&lt;/em&gt;&lt;/a&gt;&lt;em&gt; often favoured by small children&lt;/em&gt;&quot;. It gives the sense of comfort for the person using it. &lt;em&gt;&quot;Person&quot;&lt;/em&gt; I mean not just testers running the test script but also developers developing the product, product managers or end customers. Everyone derives comfort from the fact that &lt;em&gt;&quot;test cases have been executed and passed&quot;&lt;/em&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Are security blankets necessarily bad? certainly not!. For me as a test manager, it gives me comfort ( and thereby the sense of security) to the fact that the software &lt;em&gt;I&#39;m going to sign-off will not fail when used within the confines of the test scenarios that my team has found to be passing.&lt;/em&gt; Does it mean that my test cases are foolproof /security blanket is without holes? Certainly not and its my responsibility as a test manager to make it understand to the stakeholders that the test cases are never foolproof. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;To find bugs in a software is the most important responsibility of a test team and a set of predefined execution paths ( aka test cases ) will certainly not find many defects. But the test cases has its rightful and important place as a security blanket within the confines of a software development cycle. During the final phases of the release cycle, several rounds of test cases executions provide the necessary confidence to the stakeholders that the product is ready for release. &lt;/p&gt;&lt;div align=&quot;justify&quot;&gt;Again, I&#39;ve never seen anyone questioning &quot;&lt;em&gt;what&#39;s a test case?&lt;/em&gt;&quot; all thoughout the controversy.  When I mention a test case in this blogpost, I&#39;d need to make it clear that &quot;I&quot; mean by a &quot;test case&quot;. This will be a topic for another blogpost.&lt;/div&gt;&lt;p align=&quot;justify&quot;&gt;Equate test cases to &lt;a href=&quot;http://en.wikipedia.org/wiki/Comfort_object&quot;&gt;comfort object&lt;/a&gt; ; certainly not harmful in anyway and certainly provide the psychological  strength. To conclude it all, software development is all about human behavior and interactions!&lt;br /&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/6225890581734014499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/6225890581734014499' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6225890581734014499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6225890581734014499'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2008/08/test-cases-as-security-blanket.html' title='Test Cases as security blanket'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-6571396829299210376</id><published>2008-07-28T18:48:00.007+05:30</published><updated>2008-08-09T12:47:08.048+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>Lessons From an Expert.</title><content type='html'>&lt;div align=&quot;justify&quot;&gt;Last two days my team had attended a class on &lt;a href=&quot;http://www.edistatesting.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=82&quot;&gt;Skilled &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Exploratory&lt;/span&gt; Testing &lt;/a&gt;from the expert himself, &lt;a href=&quot;http://testertested.blogspot.com/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Pradeep&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Soundararajan&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;. More than the classroom sessions, it was the interactions we had with &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Pradeep&lt;/span&gt;&lt;/span&gt; that made a difference. It had reinforced many a of my personal beliefs about testing and also busted some of the myths.&lt;br /&gt;&lt;br /&gt;I&#39;d always believed that testing a software product was an intellectual exercise, its a skill that needs to be practiced and the practitioners will get better at it by &quot;&lt;em&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;riyaz&lt;/span&gt;&quot;&lt;/em&gt; aka practise. For those who&#39;d like to know about &lt;a href=&quot;http://www.pathcom.com/~ericp/bansuri11simms.pdf&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;riyaz&lt;/span&gt; &lt;/a&gt;here the link of what it means to a musician. We can relate what it means to a software tester. &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;Pradeep&lt;/span&gt; had demonstrated what can be &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;achieved&lt;/span&gt; by &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;riyaz&lt;/span&gt; with 1 hour of exploratory testing of a product he&#39;s never seen before! &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;I&#39;d believed my team always did exploratory testing, this was reinforced to some degree but also we found some flaws in the process we&#39;d been following. Most of the testers did not follow a &quot;written script&quot; of any kind while they were testing. Even those who had a script, may not have followed it in letter or spirit. Most of our testers did not really document when they were &#39;exploring&#39; the product. The mission statement for the exploratory testing session they performed was often in their head and changing when they were testing. They were &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;focused&lt;/span&gt; on the activity, but the testing &quot;sessions&quot; were often long, extending over days or even weeks. We &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;didn&#39;t&lt;/span&gt; have a debriefing meeting.  Defect finding, investigations, debugging, environment creation, data creation, even status meetings were all part of these &quot;sessions&quot; ( or whatever name we&#39;d have given to this &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;until&lt;/span&gt; of time&quot; ) . On the other hand, we were not bounded by any detailed written scripts that stated, &quot;click this&quot;, &quot;click that&quot;, &quot;if this than pass, if not then fail&quot;. At least we did not take away the creativity from the testers, but then again we did not have a structure were by we could focus the testers creativity. Important thing to note, we were finding defects in the product, critical ones and all of us were getting better and better at finding defects and that&#39;s whats expected from a testing team. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;There are tools that we could use to &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;amplify&lt;/span&gt; our effectiveness, pair-testing, heuristics, oracles and many more. Again, automated test execution has its rightful place and so do &quot;intelligent human testing&quot;, one is never a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;substitute&lt;/span&gt; for the other.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/6571396829299210376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/6571396829299210376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6571396829299210376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6571396829299210376'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2008/07/lessons-from-expert.html' title='Lessons From an Expert.'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-6543302460525709268</id><published>2008-07-12T19:35:00.003+05:30</published><updated>2008-07-12T19:47:01.149+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>The Final Days And The Finish Line!</title><content type='html'>The past several weeks were rather hectic. We were reaching the end of release our our product. From the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;inception&lt;/span&gt; of the project to the final testing signoff, its been two long years.&lt;br /&gt;The final build had arrived last week and our testing team had performed the routine sanity checks on all the four supported operating systems.&lt;br /&gt;Activity of the signoff was rather a non-event. A simple click on a &quot;signed-off&quot; checkbox.</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/6543302460525709268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/6543302460525709268' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6543302460525709268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/6543302460525709268'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2008/07/final-days-and-finish-line.html' title='The Final Days And The Finish Line!'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-2649368578935783267</id><published>2008-03-23T08:55:00.007+05:30</published><updated>2008-03-30T16:14:13.806+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>Regression Testing:What is it anyway?</title><content type='html'>My project is in the &#39;Regression Testing&#39; phase. So I felt it was &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;appropriate&lt;/span&gt; to have a blogpost on regression testing. I did a quick googling and came up with some definitions &lt;a href=&quot;http://en.wikipedia.org/wiki/Regression_testing&quot;&gt;here &lt;/a&gt;and &lt;a href=&quot;http://www.testingcenter.com/c100mr00.html&quot;&gt;here &lt;/a&gt;and &lt;a href=&quot;http://www.wrox.com/WileyCDA/Section/id-291252.html&quot;&gt;here&lt;/a&gt; and many more. These definitions do make sense, but the crux of the matter is where do these explanations fit into the context of my project?&lt;br /&gt;To put it in simple terms, regression testing is one step in the of the following sequence of events in the life of a software tester:&lt;br /&gt;Testers find bugs, developers fixed it, testers verify the defect fixes, testers again tests, find new bugs. developer fix them and so on and so on...&lt;br /&gt;The regression testing is &quot;testers again tests, find new bugs&quot;.&lt;br /&gt;Testers in my project have been working for the past several months, testing various aspects of the application, finding defects, getting those fixed. Eventually a times comes when the defect finding rate comes down and the application is &quot;relatively stable&quot;.&lt;br /&gt;&lt;br /&gt;The questions from a person not involved in the project will be as below.&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Q) So is the application ready for release? &lt;/em&gt;&lt;br /&gt;A) For sure not!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Q) What else is remaining to be done, you&#39;ve completed all the application features you&#39;ve planned to test?&lt;/em&gt;&lt;br /&gt;A) We&#39;ve to test for regressions.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Q) Is&#39;nt that what you&#39;ve been doing all these days?&lt;/em&gt;&lt;br /&gt;A) Nope! We were doing the 1st round of testing until now. We were hunting for defects in the application. We&#39;ve ensured that the defect fixes provided to us fixes the specific problem we&#39;ve raised. And that&#39;s all we&#39;ve done.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Q) What more you&#39;ve to do?&lt;/em&gt;&lt;br /&gt;A) The defect fixes made in the application may have introduced more defects, we&#39;ve got to find them. We call them regression testing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Q) So what&#39;s it that you&#39;ve not done in your 1st round of testing that you&#39;ve gonna do in regression testing?&lt;/em&gt;&lt;br /&gt;A) One thing for sure, test the application again. Rerun the test cases and scenario we&#39;ve already executed.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Q) Why did&#39;nt you do the regression testing earlier?&lt;/em&gt;&lt;br /&gt;A) Because the application had defects, defects were being fixed, lots of code churn happening. Its not the good time to start regression testing. Regression testing should start only when the defects are &quot;under control&quot;. Regression testing can start only the changes to the code is so much under control that the sanity test suites can be executed on the entire application to ensure there are no additional problems introduced in the code as a result of the defect fixes.&lt;br /&gt;&lt;br /&gt;Q) What&#39;s this &quot;under control&quot; thing you keep referring to?&lt;br /&gt;A) When the product was delivered to testing at the begining of the testing phase we were finding on the average 15 defects a day. Out of these lets say on the average 10 defects were getting fixed. With so much defects getting fixed and even when new features were sneaked in into the code nobody kept a watch on how these code changes are doing to affect the application. Testers where busy finding new defects in the application and testing newer and newer areas of the application for the first time. Testers never had the time to check if &quot;a particular&quot; defect fix has broken something that was already working. Developers never had the time to see how their fix in one area of the application is going to integrate with the rest of the application. Now things are different. Testers have completed testing the application as a whole, average number of new defect found per day is very low, maybe one or two. Developers have lesser number of defects to deal with. Developers now can do detailed impact analysis of how their fix will impact the rest of the application. They in turn can pass this information to testers. Testers in turn know where to focus their thier efforts&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Q) And when are you doing to release this?&lt;/em&gt;&lt;/p&gt;&lt;p&gt;A) As soon as the 1st regression test is complete, we&#39;d go in for a relatively faster 2nd regression test. This should give us an gut feel of the quality of the product. As soon as the 2nd or third regression test do not detect any major new defects we are ready for release.&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/2649368578935783267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/2649368578935783267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/2649368578935783267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/2649368578935783267'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2008/03/regression-testingwhat-is-it-anyway.html' title='Regression Testing:What is it anyway?'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-2783265184937809306</id><published>2008-01-11T08:20:00.000+05:30</published><updated>2008-01-28T13:33:23.849+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>Automating Tests: A Suggested Classification</title><content type='html'>My last &lt;a href=&quot;http://elusivebug.blogspot.com/2007/12/lessons-learned-implementing-dbvte.html&quot;&gt;Post &lt;/a&gt;had described about the our teams experiences in implementing an automated build verification tests. There&#39;s been lot of talk and blog post over pros and cons of automated execution of test scripts during past couple of weeks. &lt;a href=&quot;http://www.satisfice.com/blog/archives/118&quot;&gt;This post &lt;/a&gt;Post in James Bach&#39;s blog and Steve Rowe&#39;s &lt;a href=&quot;http://blogs.msdn.com/steverowe/archive/2007/12/19/what-is-test-automation.aspx&quot;&gt;this post &lt;/a&gt;are indicative of where the discussions are heading.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I&#39;ve found automated execution of test as a significant productivity booster for testers. It relieves testers from the drudgery of &lt;span style=&quot;color:#ffff00;&quot;&gt;&lt;span style=&quot;color:#000000;&quot;&gt;re-running&lt;/span&gt; &lt;/span&gt;tests that were already executed and found to pass.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The current project I&#39;m working on is first version of a business intelligence suite. Being the first version, there&#39;s quite of lot of GUI redesign and this is a challenge for development of automated test. However we&#39;ve been successful in getting the initial level of test automated and successfully executed on &lt;a href=&quot;http://elusivebug.blogspot.com/2007/12/lessons-learned-implementing-dbvte.html&quot;&gt;daily images&lt;/a&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;vericiations&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We&#39;ve been fortunate in our project to learn from the mistakes made from other project groups as far as automation approach is concerned.&lt;br /&gt;&lt;br /&gt;We&#39;ve taken the approach for classification of tests to be automated under the following levels. &lt;strong&gt;Level-0&lt;/strong&gt; or build verification tests, &lt;strong&gt;Level-1&lt;/strong&gt; or happy path tests, &lt;strong&gt;Level-2&lt;/strong&gt; or error conditions, &lt;strong&gt;Level-3&lt;/strong&gt; or detailed user scenarios &lt;strong&gt;Level-4&lt;/strong&gt; advanced automation strategies.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Level-0&lt;/strong&gt; tests are used to check the testability of the product. This is &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;preferably&lt;/span&gt; executed on your daily build before this is released for testing. The level-0 tests are often the first to get automated. These tests are also known as smoke tests.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Level-1&lt;/strong&gt; tests are used to test the positive paths of the application, mostly focusing your test goals on testing the application features from the user interface. For example, in an banking application, test for correctness of balance&#39;, &#39;check for transfer from one account to another&#39; &#39;check for clearing of check&#39;. These tests check for your correctness of your GUI and check for the integration of the GUI with the overall system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Level-2&lt;/strong&gt; These will be automated tests for checking the error conditions or conditions that do not occur on normal working of the application. In case of the banking application, this may be be something like &#39;test for check &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;bouncing&lt;/span&gt;&#39;, &#39;test for incorrect signature matches&#39; etc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Level-3&lt;/strong&gt; test are the detailed user cases. For example, create a scenario where a customer opens an accounts and does couple of deposits and withdrawal and closes the account. A suite of these tests can also be used as user acceptance tests.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Level-4&lt;/strong&gt; These are tests that typically cannot be carried out without the aid of an tool. &lt;a href=&quot;http://www.kaner.com/pdfs/highvolCSTER.pdf&quot;&gt;High Volume Test Automation&lt;/a&gt; is a good example of this type of tests. For a banking application, simulating a typical year end closing procedure or executing hundreds of concurrent accounting transactions.&lt;br /&gt;&lt;br /&gt;These classification of test needs to be looked at withing the context of the project in which you are testing. The levels are not really a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;classification&lt;/span&gt; of the order in which the automation project should be implemented. You may very well have tests automated from level-0 and level-2 , skip tests in level 1, level3 and automate tests in level-4</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/2783265184937809306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/2783265184937809306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/2783265184937809306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/2783265184937809306'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2008/01/automating-your.html' title='Automating Tests: A Suggested Classification'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-8527674988089602726</id><published>2007-12-29T18:52:00.000+05:30</published><updated>2007-12-29T19:03:47.445+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>Lessons Learned Implementing DBVTE</title><content type='html'>&lt;div align=&quot;justify&quot;&gt;&quot;&lt;strong&gt;DBVTE&lt;/strong&gt;&quot; is an acronym I&#39;d made up about 2 minutes ago when I decided to blog this. It stands for &lt;strong&gt;Daily Build Verification Test Executions&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Background:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;My current project has gained much notoriety among testing team for the poor quality builds delivered for testing. Early in the project iterations, the issue was there was no testing build at all. Later on after much delay the daily build process was finally got booted up. But then it came up with its on set of issues. Lack of a coherent integration test ensured the daily builds never work as a single unit. It&#39;d be a miracle if build picked on any particular day will be of minimum quality for testers to start the tests. The situation demanded a consistent way of delivering testable builds on a periodic basis.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Approach:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The way to go here was for the functional testing team to take-up the integration testing activity. We&#39;d started with documenting the bare minimum use case &amp;amp; scenarios of the product in sufficient detail that a novice computer user could read the document and execute those scenarios. These were written mostly from a GUI perspective like &quot;Step 7. click OK button&quot;, &quot;Step 11. Right Click, select Edit From Menu&quot;, &quot;Step 23. Verify Graph&quot;. These are also called smoke tests or sanity tests. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;The important activity here was to identify a dedicated machine for the integration testing purpose. Its very important to have a consistent, reproducible and stable environment for the integration testing machine. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;Now that the nightly builds were getting build, we&#39;d developed a series of simple windows batch scripts. The purpose of these scripts were to download the build files ( java jar files, codes developed in SAS scripts, configuration files...) from build machine. The scripts did administrative activities such as stopping the application services, restarting services etc as well lay down the build files like the installer would have performed. The purpose of the script was to eliminate human error in the installation process and to save the time in the install process. A typical install process of the application we test will require 3 hours of install &amp;amp; configuration time. The automated install scripts does this in 10 minutes flat!. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;We&#39;d chosen the &quot;&lt;a href=&quot;http://safsdev.sourceforge.net/&quot;&gt;SAFS&lt;/a&gt;&quot; as our automation tool for automating the smoke tests. Although its not mandatory to automate your smoke tests, we&#39;d taken the approach to automate primarily to ease the drudgery of executing the tests by a human tester. SAFS is an excellent tool and it very neatly took care of incremental changes to the application. Moreover SAFS is developed and supported within our company.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Process: &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now that we&#39;ve had the tools in place, its time to work on the process around it. The most important part of any process is to get the buy in from the stakeholders. The good part about it was the development and project mangers were already aware of the problem with integration. Just that they never had given enough thoughts about how to tackle the problem. Our case is that we&#39;ve the tools in place for integration tests. A quick demo of the automated install scripts and the automated smoke test was a very well accepted. Now was the case to present the case for the process and the development teams commitment for the process. &lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;The process was simple; testing team will download daily builds from the build machine, execute the automated scripts and send in the results of executions to the entire team. In case of defects, encountered in the automated scripts, these will be logged and will be part of the execution results. The development team on its part, should fix the defects immediately or back out the changes in the next build.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Lessons:&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;ol&gt;&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/strong&gt;Developing Automation scripts of any GUI tests is hard. We were baffled bySAFS automation tool limitations for which workaround were found. Our GUI was developed on &lt;a href=&quot;http://en.wikipedia.org/wiki/Eclipse_(software)&quot;&gt;Eclipse&lt;/a&gt; framework and support for it was limited in SAFS.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;Development of Automation scripts for GUI is incremental. Develop scripts with smaller features, test, stabilize and then operationally. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;Concentrate on the breadth of the functionality, not the on the depth while developing the smoke tests. Check all basic features of the application rather than the complex features.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;Automate the install and configuration process of daily builds. This will avoid human error in the installation as well as speedup the installation process.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;Start with a clean machine for installing the first build on the integration machine. In case of windows, format and reinstall the OS. On Unix, this process is expensive.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align=&quot;justify&quot;&gt;Cherish your process. Follow your integration process religiously and advocate it within your entire team. &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/8527674988089602726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/8527674988089602726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8527674988089602726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8527674988089602726'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2007/12/lessons-learned-implementing-dbvte.html' title='Lessons Learned Implementing DBVTE'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-174596693473760548</id><published>2007-12-16T11:14:00.000+05:30</published><updated>2007-12-16T11:30:37.755+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="About blogging"/><title type='text'>Search Power @ Google Reader</title><content type='html'>This is one feature everyone using Google Reader all longed for from Google. Its come pretty late as a feature at GoogleReader. Finally Yes, its here and makes life easier searching for blog posts.&lt;br /&gt;I&#39;d read this list &quot;&lt;a href=&quot;http://jtaylorgoodlife.blogspot.com/2007/06/how-to-get-things-done-colin-powell.html&quot;&gt;How to Get Things Done - Colin Powell Version&lt;/a&gt;&quot; and wanted to share it in my Shared Items. All it took me is a few seconds search on Colin Powell and ther it was.</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/174596693473760548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/174596693473760548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/174596693473760548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/174596693473760548'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2007/12/search-power-google-reader.html' title='Search Power @ Google Reader'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-8454356455928191314</id><published>2007-11-11T22:57:00.000+05:30</published><updated>2007-12-16T11:14:13.666+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Testing Process"/><title type='text'>What&#39;s your Top Five?</title><content type='html'>I&#39;ve found the &#39;Top Five&quot; approach in defect disposition quite effective. Here&#39;s how its done.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Q) What&#39;s the &quot;Top Five&quot; approach?&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;A) Simple, create a the list of top five defects you&#39;d need urgent fixes for.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) Is it different from Test Holdup Defects?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A) Well, to some degree it is and to some degree it is not. Holdup defects are the ones where your testing activity is &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;held up&lt;/span&gt;. This needs urgent fix, so naturally the holdup defects should be part of your top five defect list. However you should have defects that &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;aren&#39;t&lt;/span&gt; holding up your testing.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Q) Why only five defects in the list?&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;A) From our experience we&#39;ve found that anything more than 5 defects in your top five list becomes &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;unmanageable&lt;/span&gt; for development and test leads and thereby this list loses it effectiveness. The idea is to have only so much defects in the list that the test and development leads can memorize.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) How to manage this list?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;A) You&#39;d require a solid development team backing for this approach. Speak with your development lead and manager before you embark upon this step. Ask for the commitment from their team that the defects in the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;TopFive&lt;/span&gt; will get their utmost attention and will be &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;dispositioned&lt;/span&gt; fast.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) Are there tools to manage the list?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;A) Reports from your defect system should be sufficient. If your defect system supports tagging of defects, this is the best way of doing it. Tag your TopFive defects and create a report. Simple excel sheet or an email message with predetermined format will also work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Q) What types of defects should not be in this list?&lt;/strong&gt;&lt;br /&gt;&lt;/em&gt;A) Defects that you know will take longer time to get &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;dispositioned&lt;/span&gt; should not be in this list. We&#39;ve defined a &#39;longer time&#39; as over two weeks. Since you know these defects will take longer, do not keep these defects in this list as these will &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;take up&lt;/span&gt; a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;permanent&lt;/span&gt; slot in your Top Five defect list.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) What type of projects are &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;TopFive&lt;/span&gt; list effective?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;A) Typically medium to large project with current open defect count of over 150 defect count. For smaller projects, may not require the overhead of &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;maintaing&lt;/span&gt; this list.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) When do you create a &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;TopFive&lt;/span&gt; list?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;A) We typically create a list of 5 or less defects every week ( say &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;monday&lt;/span&gt;) and communicate this to list to the development manager.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) What&#39;s the turnaround time for &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;TopFive&lt;/span&gt; defects?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;A) Typically, we&#39;ve found to have one week time for these defects. i.e. When you enter a defect in this list it takes typically one week to get fixed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Q) What&#39;s the followup process?&lt;/em&gt; &lt;/strong&gt;&lt;br /&gt;A) Typically we do a status check with development manager every 3 to 4 day and disucss the list in our weekly meetings.</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/8454356455928191314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/8454356455928191314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8454356455928191314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8454356455928191314'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2007/11/whats-your-top-five.html' title='What&#39;s your Top Five?'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-8956476076841592401</id><published>2007-09-19T20:14:00.001+05:30</published><updated>2007-09-19T20:16:42.580+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>Looking at afterthoughts</title><content type='html'>&lt;div align=&quot;justify&quot;&gt;&lt;br /&gt;With customer reported defects in their inbox, tester have this sense of &quot;if only we could have done this too&quot;, &quot;why did we miss that?&quot;, &quot;i though we&#39;d tested that&quot;. Its a mad scramble to find an explanation when things get uglyOften at the release time, the opposite is true. The feeling is &quot;I know i did;nt get to that, but it not important&quot;, &quot;I know its not tested to my satisfaction, but its too late to holdup a release now, should have raised this earlier&quot;, &quot;the test data is not comprehensive, customer data may uncover more issues&quot;Looking at hind-side, the the emotive and tense aspects are overlooked. With the count down to release time ticking, the challenge is to get the risks covered. Testers often overlook minor aspects of the product Being in the lowest end of the &quot;software food chain&quot;, its the testing time that most of the other entities in the food chain eatup. Again and again, we hear this around our cubicles and meeting room, &quot;its taking more than expected to complete this feature, but its critical&quot;. The routine activity done under these circumstances are &quot;lets take up few more days&quot;, and the &quot;few more days&quot; come at the cost of testing time. Of course the delay in project is not affordable since we cant miss the market!.In these days of agile &amp;amp; iterative development, a lot is being discussed about the importance of testing early and getting testers involved early in the development process. Better said than done? May be, maybe not!&lt;br /&gt;The projects I&#39;ve worked on have for past few years have a structure with a development manager looking at development activities, a test manager on the testing activities and a project manager managing the project timelines and external liason required by the project. The project manger often holds the key for success of the project and the effective delivery of the project depends on the effectiveness of the project manager. Project manager do not have anyone reporting to him/her. This person&#39;s primary responsibility is to maintain the timelimes, make sure everyone in the project adheres to the timelines, look out for possible risks and escalate issues. Often with the prior experience in development teams, the project managers unfortunately champions the cause of development team often at the expense of testing team. The schedules prepared by project manager puts overlay emphesis on development delivery and ignores the fact that testing resources can be optimally in an iterative developmment mode. The schedule prepared by the project manager turns out to be a waterfall method that leaves little time for the testing team.&lt;br /&gt;Of course there are project managers who considers themselves as the independent authority and creates the project plan with optimal utilization of all the resources in the project. A project manager stern on the timelines are the ones with successful project delivery. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/8956476076841592401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/8956476076841592401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8956476076841592401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/8956476076841592401'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2007/09/looking-at-afterthoughts.html' title='Looking at afterthoughts'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4641151445274490481.post-2406601542656465086</id><published>2007-09-09T11:34:00.001+05:30</published><updated>2007-09-19T19:50:33.627+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Management"/><title type='text'>Due share for Test Management?</title><content type='html'>&lt;div align=&quot;justify&quot;&gt;Over the past several months I&#39;ve been keeping myself updated with blog activities on software testing. Yahoo group on software testing has also been very interesting read.&lt;br /&gt;Overall, majority of the blogs discuss about the testing processes &amp;amp; techniques, what I&#39;d term as the &quot;last mile&quot; in the software testing. Certainly this is the most important aspect of our software testing field. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Very few blogs I&#39;ve been reading discuss about the &quot;mangement&quot; aspects of software testing. Aspects in testing such as &quot;negotiation&quot;, &quot;risk management&quot;, &quot;analysis what&#39;if scenarios&quot;, &quot;work allocation&quot; &quot;work allocation&quot; generally have very few post in the blog world, at least the one I keep track of regularly. &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;In general these areas comes under project management and several blogs discuss software project management. There are areas where software development project management differs from the management of testing projects. For example, there is negotiation for time and budget on both development and testing projects, however testing team generally find themselves between &quot;hard place and a rock&quot; in negotiation situations. Testing risks generally get better attention from higher management than risks from development team. Development teams have proven estimation techniques, testing team generally estimates on their prior experiences.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elusivebug.blogspot.com/feeds/2406601542656465086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4641151445274490481/2406601542656465086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/2406601542656465086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4641151445274490481/posts/default/2406601542656465086'/><link rel='alternate' type='text/html' href='http://elusivebug.blogspot.com/2007/09/due-share-for-test-management.html' title='Due share for Test Management?'/><author><name>Rajesh Kazhankodath</name><uri>http://www.blogger.com/profile/00776206192461021082</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXKPiraMoPVbU2eSFGUyWeoI-J5Y74aM7PzoCm4nY04KME7dFjGQpQlMzMBhwe834REH0pBTYpTq_2ZkSFOjTYHhdmLyPFKIR4P9UVaJVVNkOQxgL9A4mAH1OIshtywg0/s220/Rajeshkz.png'/></author><thr:total>0</thr:total></entry></feed>