<?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: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-8818847880387079064</id><updated>2012-02-20T22:23:59.847-08:00</updated><category term='Test Environment Setup'/><title type='text'>S/W Automation Quality Analysis</title><subtitle type='html'>&lt;i&gt;-what automation qa ? yes, please !&lt;/i&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-8414815250555710801</id><published>2011-02-28T10:21:00.000-08:00</published><updated>2011-06-05T12:56:26.871-07:00</updated><title type='text'>Headless Automation Testing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-I7RyzIC21Qg/TevfXxjxYsI/AAAAAAAAEpA/hzww6K6NP7Q/s1600/HeadLessTesting%2BImage.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 172px; height: 320px;" src="http://2.bp.blogspot.com/-I7RyzIC21Qg/TevfXxjxYsI/AAAAAAAAEpA/hzww6K6NP7Q/s320/HeadLessTesting%2BImage.png" alt="" id="BLOGGER_PHOTO_ID_5614826959980815042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 0.79in }   P { margin-bottH&lt;/style&gt;&lt;div style="text-align: justify;"&gt;Headless Testing means testing without GUI.&lt;br /&gt;&lt;br /&gt;There are couple of testing such as Unit testing, Component Testing, Module Testing,  Integration Testing, CC (Code Coverage of Condition) Testing \ Base Path Testing, Mutation Testing,   DB Testing, API Testing and or Web Service Testing may fall under Headless Testing. As you can see most of testing are white box or gray box testing.&lt;br /&gt;&lt;br /&gt;In XP\XT (Extreme Programming\Extreme Testing) of agile, It is the first step in implementing story.&lt;br /&gt;&lt;br /&gt;Open Source tools such as Watir, Warin, Junit, Nunit, HTTPUnit, HTMLUnit, WebTest Canoo, Fitness, Selenium RC and  scripts like shell, vbscript, groovy, SoapUI (and some good paid tools Autoczar, QTP, SilkTest, TestComplete) are helping to automate this type of testing and  play effective and efficient role in the QA feedback of product lifecyle.&lt;br /&gt;&lt;br /&gt;It actually tells us where is the issue. So, aways say "Yes" to Headless Testing in your project.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-8414815250555710801?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/8414815250555710801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=8414815250555710801' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8414815250555710801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8414815250555710801'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2011/02/headless-automation-testing.html' title='Headless Automation Testing'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-I7RyzIC21Qg/TevfXxjxYsI/AAAAAAAAEpA/hzww6K6NP7Q/s72-c/HeadLessTesting%2BImage.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-6889113246417135824</id><published>2009-12-31T07:41:00.000-08:00</published><updated>2011-06-04T14:35:46.925-07:00</updated><title type='text'>Groovy and Jemmy</title><content type='html'>In this demo, we have opportunities &lt;p style="margin-left: 0.17in; text-indent: 0.14in"&gt;1. To Bind your Java application with groovy console.&lt;/p&gt; &lt;p style="margin-left: 0.32in"&gt;2. To Automate manual steps in groovy console.&lt;/p&gt; &lt;p&gt;&lt;b&gt;1. Bind your Java application with groovy console.&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;//BindJavaApplication.groovy&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;import org.netbeans.jemmy.*;&lt;br /&gt;import org.netbeans.jemmy.explorer.*;&lt;br /&gt;import org.netbeans.jemmy.operators.*;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;// Fire up the SwingSet2 Application&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;new ClassReference("SwingSet2").startApplication();&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;// Get a reference to the SwingSet JFrame and put it into the console's script binding.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;mainFrame = new JFrameOperator("SwingSet")&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;def bind = new Binding()&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;bind.setProperty("testScript",this)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;bind.setProperty("mainFrame",mainFrame)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;&lt;br /&gt;// Fire up the Groovy console.&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;def console = new groovy.ui.Console(this.class.classLoader,bind)&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;console.run()&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;Thread.sleep(700000)&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;b&gt;2 . &lt;/b&gt;&lt;b&gt;Automate manual steps in console.&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;import org.netbeans.jemmy.*;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;import org.netbeans.jemmy.explorer.*;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;import org.netbeans.jemmy.operators.*;&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;// Get first button object to click&lt;br /&gt;buttonObj = new JButtonOperator(mainFrame,0)&lt;br /&gt;&lt;br /&gt;// to click on button with title “OK” buttonObj = new JButtonOperator(mainFrame,”OK”)&lt;br /&gt;&lt;br /&gt;t = new Thread() {&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;buttonObj .push()&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;}&lt;/p&gt; &lt;p style="margin-left: 0.39in; margin-right: 0.39in"&gt;t.start()&lt;/p&gt;Hey, what we have just done; we have just clicked first button of SwingSet.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Cheers !! Enjoy Automation.&lt;/p&gt; &lt;p&gt;~NV&lt;/p&gt; &lt;p style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-6889113246417135824?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/6889113246417135824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=6889113246417135824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/6889113246417135824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/6889113246417135824'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2009/12/groovy-and-jemmy.html' title='Groovy and Jemmy'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-8788888157000460973</id><published>2009-07-27T07:23:00.000-07:00</published><updated>2009-10-27T12:20:39.151-07:00</updated><title type='text'>AFT (Automation Framework Team) should not take developers' false catches</title><content type='html'>What does It mean by "developers' false catches" ?&lt;br /&gt;&lt;br /&gt;It means those implementations or application unexpected behaviors which should not be automated with automation framework.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e6fIGqe5Dc8/SudEqqgv1TI/AAAAAAAAEio/dmdi3UebOLc/s1600-h/falseCatch+from+latimesblogs.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 258px; height: 216px;" src="http://3.bp.blogspot.com/_e6fIGqe5Dc8/SudEqqgv1TI/AAAAAAAAEio/dmdi3UebOLc/s200/falseCatch+from+latimesblogs.jpg" alt="" id="BLOGGER_PHOTO_ID_5397358178183664946" border="0" /&gt;&lt;/a&gt;Why those should not be the candidates for automation? It is observed that adding these kinds of requirements in automation may set short ROI for organizations but it never becomes for long terms – You may ask “why” again, below are couple of examples which put more lights on this question.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Case-Study : #1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;“Product Team has new requirements in build 1.2.x like objects inputs are changed with prefix or suffix strings and that affects more than 1000 automated test-case(s)”&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Due to limited resources and short dead line to certify build(1.2.x) of the product, Product lead comes to AFT and asks for help. He requests to update Automation Framework in such a way that manages prefix and suffix inputs and his team does not have to update their test-case(s). As part of the service team (AFT), we provided solution at framework level. These solutions may help them to certify product but it also carries live wires to take cares are as&lt;br /&gt;&lt;br /&gt;1. As per Automation Framework development perspective,&lt;br /&gt;Automation Framework becomes dependent to product builds.&lt;br /&gt;According to Standard Automation Framework protocols, framework should not depend on product; Independent framework can be useful to automate other products as well and such framework would have maintenance and complexity low which helps to give consistent behavior for automation projects.&lt;br /&gt;2. As per Product team perspective,&lt;br /&gt;Product team loses track for test-case(s) on product behavior. Since, Automation Framework injects input data for build 1.2.x ; There becomes no control to update those input data by product team and they lost transparency of test-case(s) with test-data inputs which may raise high effort require to map test-data inputs with testcase(s) per builds for both product team and Automation Framework Team.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Case Study #2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Product Team has more than 800 test-case(s) automated which works fine with couple of synchronization points (like status as “Processing On Server”). Next iteration, team gets new build and say for “Processing On Server” is broken."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We always face some issues with product to automate. Some are very common when application behavior changed and automation framework has synchronization issues but they concern when they becomes blocker issues for team to certify product. I see lots of organization does not care for this kind of issues since they are not affecting to their core functionality to certify build manually. Because of automation works on synchronizing objects behavior; those issues become “real matters” to resolve them. In one of the experience I have, these issues (broken synchronization points or application unexpected behaviors) made automation in batch executions hanged and crashed the application.&lt;br /&gt;&lt;br /&gt;In such condition, product team wants to certify build and request to resolve this kind of issues at automation framework level. As part of solution provider team(AFT), we  resolves these issues at automation framework level and helped them to certify build.&lt;br /&gt;&lt;br /&gt;But, Why these issues should be resolved at application level not automation framework level? Because&lt;br /&gt;&lt;br /&gt;1. As per Automation Framework perspective,&lt;br /&gt;To resolve these kind of issues, automation framework injected with codes to handle broken synchronization points. This becomes un-necessary degrade test-case execution performance and pulls garbage code to automation framework project.&lt;br /&gt;2. As per Product team perspective,&lt;br /&gt;Most of the time, These issues are related to performance of the application and so they should be fixed at application level with priority in QA cycle.&lt;br /&gt;&lt;br /&gt;Concluding as …&lt;br /&gt;AFT supports product teams to unblock them to certify builds by giving hot fixes or work-around at framework level but however it is the product teams' responsibility to have priorities to fix those issues (application unexpected behaviors - false catches) at application level and deliver quality product. &lt;p&gt;&lt;span style="font-style: italic;"&gt;After all, we deliver product only; not product with automation framework to handle product’s uncertainties :) &lt;/span&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Please, send your precious comments here,&lt;br /&gt;&lt;br /&gt;With Regards,&lt;br /&gt;NV.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:78%;" &gt;[&lt;em&gt;Photo: In this Nov. 19, 1978 file photo, Philadelphia Eagles' Herm Edwards (46) pounces on a ball fumbled by New York Giants quarterback Joe Pisarcik (9), right foreground, in the last minutes of the game. Credit: G. Paul Burnett]&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-8788888157000460973?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/8788888157000460973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=8788888157000460973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8788888157000460973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8788888157000460973'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2009/07/automation-team-should-not-take.html' title='AFT (Automation Framework Team) should not take developers&apos; false catches'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e6fIGqe5Dc8/SudEqqgv1TI/AAAAAAAAEio/dmdi3UebOLc/s72-c/falseCatch+from+latimesblogs.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-3663530680499524247</id><published>2009-07-27T07:02:00.001-07:00</published><updated>2009-07-27T07:22:23.913-07:00</updated><title type='text'>Everyone is talking about automation tools like QTP,...</title><content type='html'>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CNIMESH%7E1.TCZ%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:Calibri; 	mso-font-alt:"Times New Roman"; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.ListParagraph, li.ListParagraph, div.ListParagraph 	{mso-style-name:"List Paragraph"; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.ListParagraphCxSpFirst, li.ListParagraphCxSpFirst, div.ListParagraphCxSpFirst 	{mso-style-name:"List ParagraphCxSpFirst"; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.ListParagraphCxSpMiddle, li.ListParagraphCxSpMiddle, div.ListParagraphCxSpMiddle 	{mso-style-name:"List ParagraphCxSpMiddle"; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.ListParagraphCxSpLast, li.ListParagraphCxSpLast, div.ListParagraphCxSpLast 	{mso-style-name:"List ParagraphCxSpLast"; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1118253375; 	mso-list-type:hybrid; 	mso-list-template-ids:-35874580 67698693 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Wingdings;} @list l0:level2 	{mso-level-number-format:bullet; 	mso-level-text:o; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:"Courier New";} @list l1 	{mso-list-id:1546453878; 	mso-list-type:hybrid; 	mso-list-template-ids:1394786262 67698693 -757277998 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	margin-left:.75in; 	text-indent:-.25in; 	font-family:Wingdings;} @list l1:level2 	{mso-level-start-at:0; 	mso-level-number-format:bullet; 	mso-level-text:•; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	margin-left:1.25in; 	text-indent:-.25in; 	mso-ansi-font-size:14.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman"; 	mso-ansi-font-weight:bold;} @list l2 	{mso-list-id:1600412133; 	mso-list-type:hybrid; 	mso-list-template-ids:-1860943586 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l2:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} @list l3 	{mso-list-id:1921256132; 	mso-list-type:hybrid; 	mso-list-template-ids:1884449544 67698693 -757277998 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l3:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	margin-left:.75in; 	text-indent:-.25in; 	font-family:Wingdings;} @list l3:level2 	{mso-level-start-at:0; 	mso-level-number-format:bullet; 	mso-level-text:•; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	margin-left:1.25in; 	text-indent:-.25in; 	mso-ansi-font-size:14.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman"; 	mso-ansi-font-weight:bold;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Everyone is talking about automation tools like QTP, WinRunner, LoadRunner,Silk Test, Selenium Bla Bla bla ... but Once these tools come into real practice and he\she has to automate test-case(s) with them in existing automation framework.&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;span style="background: silver none repeat scroll 0% 0%; font-size: 16pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;How far we can go with our goal?&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;br&gt;This post gives opportunity to discuss on characteristics of test-case(s) while doing designing for test-case(s) in automation. &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Below are the couple of thoughts, I believe to have in automated test-case(s).&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;p class="ListParagraphCxSpFirst" style="margin-left: 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Concise&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; - Test-case(s) should be as simple as possible.&lt;br&gt;  i.e. Test-case(s) should not call multiple other complex Test-case(s). It should have minimum dependency. &lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 0.25in; text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Self Checking&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Test-case(s) should have verification steps and It &lt;br&gt; should report in its results such that no human interpretation is &lt;br&gt; necessary. For example, I have found in one project; team has around 1500 test-case(s) – out of more than 44% test-case(s) has steps like&lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Open Menu Item.&lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Enter A/C number and other Inputs on screen say for A. &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Click on Button "Next" on screen A. &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Click on Button "Next" on screen B.&lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;5.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Click on Button "Next" on screen C&lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpLast" style="text-indent: -0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;6.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Click on Button "Close" on screen D – here, one product was created.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Here, all screens (A to D) have Button "Next" and "Close" and that raises some real concern to take care. Why? Because of default values of each screen are missed to verify. Test-case for each screen should have all default values' verification steps so that user\automation tool can confirm that he has achieved so and so functional flow screen while running specific scenarios. If any new screen with "Next" and "Close" button introduces in middle of screen(A-D) in new build – this will capture by automation test-case(s).&lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpFirst" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Repeatable&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Test-case(s) can be run repeatedly without human &lt;br&gt;  intervention. DDT(Data Driven Test) or test-step parameterization is one of the big benefit of automation.&lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Robust&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Test-case(s) should produce same result now and forever. &lt;br&gt;  Automated test-case(s) should have consistent output. It is not an easy task to achieve this characteristic. In hybrid Automation Framework, Automation team can create BO keywords to setup baseline and this keywords should be practice well enough that test-case(s) can have baseline to initialize and other test-case(s) in queue can execute regardless of previous test-case(s) passed or failed. &lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Necessary&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Everything in each Test-case(s) should contribute to the specification of desired behavior. All pre-requisites should be set well – Test-case(s) should have none or minimum pre-requisites to set manually.&lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Clear&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Each step in Testcase should be easy to understand.&lt;br style=""&gt;  &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Efficient&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Test-case(s) run in a reasonable amount of time. It manual test-case(s) takes 100 minutes then automated test-case(s) should not take more then 50-60 minutes at the best efficiency. &lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Specific&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Each failure step should point to a specific piece of broken functionality &lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Independent&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Each Test-case(s) can be run by itself or in a suite &lt;br&gt;  with an arbitrary set of &lt;span style=""&gt; &lt;/span&gt;other tests in any order. To avoid dependency in Hybrid automation framework, automation team can develop BO keywords and add them for each test-case(s) to avoid dependency.&lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpMiddle" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Maintainable&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Automated test-case(s) should be maintained and extended with testcase management tools like TestLink, HPQC, Test Director or many other freeware tools which can easily plug with automation framework.&lt;br style=""&gt; &lt;br style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="ListParagraphCxSpLast" style="margin-left: 13.5pt; text-indent: -13.5pt; line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;§&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 14pt; font-family: &amp;quot;Times New Roman&amp;quot;; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"&gt;Traceable&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt; – Test-case(s) should be traceable to the requirements.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;So, when we have Test-case(s) to automate – have above protocols in mind to do your tasks more effective and efficient. &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;I would like to have more thoughts on this ; please, add your precious comments here. &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;br&gt;&lt;br&gt;Enjoy Automation / NV&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-3663530680499524247?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/3663530680499524247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=3663530680499524247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3663530680499524247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3663530680499524247'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2009/07/everyone-is-talking-about-automation.html' title='Everyone is talking about automation tools like QTP,...'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-8183698316162134405</id><published>2009-01-08T21:23:00.001-08:00</published><updated>2009-01-08T21:28:06.123-08:00</updated><title type='text'>Some Genuine Confessions [Fun]</title><content type='html'>One daily dose from TakeITLite :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e6fIGqe5Dc8/SWbgUaO2nBI/AAAAAAAAEZI/AD4sYFrPJU0/s1600-h/image001.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 304px;" src="http://4.bp.blogspot.com/_e6fIGqe5Dc8/SWbgUaO2nBI/AAAAAAAAEZI/AD4sYFrPJU0/s400/image001.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5289161453636852754" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-8183698316162134405?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/8183698316162134405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=8183698316162134405' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8183698316162134405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8183698316162134405'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2009/01/some-genuine-confessions-fun.html' title='Some Genuine Confessions [Fun]'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e6fIGqe5Dc8/SWbgUaO2nBI/AAAAAAAAEZI/AD4sYFrPJU0/s72-c/image001.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-6027251320125377186</id><published>2008-12-12T08:59:00.000-08:00</published><updated>2008-12-12T09:09:41.155-08:00</updated><title type='text'>Mozilla add-ons for Bugzilla</title><content type='html'>Some Mozilla add-ons which are worth to install to improve your performance.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/8325"&gt;BetterBugzilla 0.3.4&lt;/a&gt; - gives new look for your bugzilla.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/77"&gt;Sage&lt;/a&gt; - allows to create feed on search query of your bugzilla.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/629 "&gt;Newsfox&lt;/a&gt; - allows to read rss feeds in web-browser email layout; if feed items update -- this will pops up and mark as unread for that item in feed; you can use this extension to point your bugzilla feed so you can get notice for all activities happening in bugzilla.&lt;br /&gt;&lt;br /&gt;~Enjoy,NV&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-6027251320125377186?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/6027251320125377186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=6027251320125377186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/6027251320125377186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/6027251320125377186'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/12/mozilla-add-ons-for-bugzilla.html' title='Mozilla add-ons for Bugzilla'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-1358999211242131460</id><published>2008-11-29T04:07:00.000-08:00</published><updated>2008-11-29T04:16:08.497-08:00</updated><title type='text'>How to automate test-scenarios which have Java Objects built on JMesa , JQuery, JSON and AJAX technology.</title><content type='html'>I had a challenging project to automate Java Objects on the fly – sharing some part of it.&lt;br /&gt;&lt;br /&gt;Challenges I faced&lt;br /&gt;1. Objects which are built on top of JMesa , JQuery, JSON and AJAX technology -- are not recognized by professional automation tools (such as QTP and SilkTest).&lt;br /&gt;&lt;br /&gt;2. How to automate Dynamic Graphs which are implemented with technologies like Flotr and 3D Canvas.&lt;br /&gt;&lt;br /&gt;3. Web application needs to automate with cross-browsers ( IE 6.0+ , FF 2.0+ or Safari 2.0+ ) It focus objects screen rendering issues which are different from one browser to other.&lt;br /&gt;&lt;br /&gt;How can we overcame&lt;br /&gt;• Challenge #1 and #2 can be resolved with below automation approach.&lt;br /&gt;Verify HTTP Responses when user does some actions like objects fire specific AJAX calls; We simulate these AJAX calls ( HTTP requests ), capture valid\expected response, set them as baseline and in QA loop we simulate user actions again with automation, capture actual response and compare with baseline.&lt;br /&gt;&lt;br /&gt;• Challenge #3  can be resolved with below automation approach.&lt;br /&gt;Simulate request for each browser to server, Capture valid\expected HTTP response for each browser such as IE 6.0+, FF 2.0+ or Safari 2.0+ from server then set them as baseline and in QA loop we send request again per browser, capture actual HTTP response for each browser (such as IE 6.0+, FF 2.0+) and compare with expected baseline response – This will uncover objects which have screen rendering issues.&lt;br /&gt;&lt;br /&gt;I recommend Canoo WebTest automation tool as It works well with AJAX application and understand HTTP request and response.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-1358999211242131460?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/1358999211242131460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=1358999211242131460' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1358999211242131460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1358999211242131460'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/11/how-to-automate-test-scenarios-which.html' title='How to automate test-scenarios which have Java Objects built on JMesa , JQuery, JSON and AJAX technology.'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-540568184312541518</id><published>2008-11-24T20:50:00.000-08:00</published><updated>2011-06-04T15:02:27.332-07:00</updated><title type='text'>How to claim web product certified by QA</title><content type='html'>Below V&amp;amp;V activities' document with their approved status need to produce by QA.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_e6fIGqe5Dc8/Suv0dUh5GDI/AAAAAAAAEi4/ovfn2DyVccQ/s1600-h/HowToCertifyWebProduct.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5398677362897918002" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 363px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://4.bp.blogspot.com/_e6fIGqe5Dc8/Suv0dUh5GDI/AAAAAAAAEi4/ovfn2DyVccQ/s400/HowToCertifyWebProduct.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;!--?xml:namespace prefix = o /--&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;Thanks,&lt;br /&gt;Nimesh Vadgama. &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-540568184312541518?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/540568184312541518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=540568184312541518' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/540568184312541518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/540568184312541518'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/11/how-to-claim-web-product-certified-by.html' title='How to claim web product certified by QA'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e6fIGqe5Dc8/Suv0dUh5GDI/AAAAAAAAEi4/ovfn2DyVccQ/s72-c/HowToCertifyWebProduct.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-5998984412995876249</id><published>2008-07-29T06:45:00.000-07:00</published><updated>2008-09-01T07:17:26.896-07:00</updated><title type='text'>QA Project Checklist</title><content type='html'>Here is I want to share qa project management checklist I used in real scenarious.&lt;br /&gt;&lt;br&gt;&lt;strong&gt;Project Initiation&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Prepare System Test Estimates&lt;br /&gt;Define System Test Approach&lt;br /&gt;Define Testing Scope&lt;br /&gt;Prepare DRAFT System Test Plan&lt;br /&gt;Review System Test Plan&lt;br /&gt;Prepare Test Schedule&lt;br /&gt;Request Test Resources&lt;br /&gt;Request Business Expert&lt;br /&gt;Request Management Support&lt;br /&gt;Request Environment / Technical Support&lt;br /&gt;Request Facilities (Desk, Chair etc.)&lt;br /&gt;Setup Test Project Folder&lt;br /&gt;Revise Test Estimates&lt;br /&gt;Define Entrance / Acceptance Criteria&lt;br /&gt;Agree Communication Channels&lt;br /&gt;Agree Reporting Procedures, Methods and Frequency&lt;br /&gt;Define Exit Criteria&lt;br /&gt;Design Release Notes Template&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test Preparation&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Agree Builds / Drops Schedule and Contents&lt;br /&gt;Agree Release Notes Contents and Format&lt;br /&gt;Agree Error Management Procedures&lt;br /&gt;Define System Test Roles and Responsibilities&lt;br /&gt;Assign Test Roles and Responsibilities&lt;br /&gt;Assign Test Case Preparation Primary Responsibilities&lt;br /&gt;Assign Test Case Preparation Secondary Responsibilities&lt;br /&gt;Prepare High Level Test Cases&lt;br /&gt;Prepare Low Level Test Cases&lt;br /&gt;Define Test Environment Setup (Network / Server)&lt;br /&gt;Define Test PC Setups and Configurations - clients&lt;br /&gt;Review Test Plan&lt;br /&gt;Review Test Schedule&lt;br /&gt;Setup Test Execution Progress Tracking Database&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Build System Test Environment&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Setup Test Environment (Server)&lt;br /&gt;Setup Test PC's&lt;br /&gt;Setup Bug Database&lt;br /&gt;Verify Test Environment (Shakedown)&lt;br /&gt;Verify Bug Database External Access&lt;br /&gt;Setup Test Data&lt;br /&gt;Setup and Install Test Peripherals (card readers, receipt printers)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Prepare System Test&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-size:85%;"&gt;Review System Test Cases&lt;br /&gt;Revisit System Test Cases&lt;br /&gt;System Test Readiness Review&lt;br /&gt;Verify Entrance Criteria reached&lt;br /&gt;Receive B36 Build 1&lt;br /&gt;Install B36 Build 1&lt;br /&gt;Execute Acceptance Tests&lt;br /&gt;Review Acceptance Test Results ( accept - yes / no )&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Execute System Test&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Execute System Test&lt;br /&gt;Execute Cycle 1 - GUI Tests&lt;br /&gt;Execute Cycle 2 - Functional Tests&lt;br /&gt;Execute Cycle 3 - Scenario Tests&lt;br /&gt;Log and Track Defects&lt;br /&gt;Maintain and Administer Error Management System&lt;br /&gt;Progress Measure and Reporting&lt;br /&gt;Measure Progress - Actual vs Planned&lt;br /&gt;Manage and Track new Builds&lt;br /&gt;Perform Build Regression Tests&lt;br /&gt;Close Regress Bugs / Re-open "Not Fixed" bugs&lt;br /&gt;Measure Error Statistics and Metrics&lt;br /&gt;Report Error Statistics and Metrics&lt;br /&gt;Track and Record Error Turnaround Time&lt;br /&gt;Escalate Issues as appropriate&lt;br /&gt;Perform Final Regress Test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Signoff&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Signoff System Test&lt;br /&gt;Produce Post-Testing Report&lt;br /&gt;Wash up &amp;amp; Lessons Learnt Meeting&lt;br /&gt;Review Exit Report&lt;br /&gt;Cleanup Test Environment&lt;br /&gt;Return Peripherals&lt;br /&gt;Post Execution Test Case Review&lt;br /&gt;Handover Test Documentation&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Let me know if anybody needs more details.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-5998984412995876249?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/5998984412995876249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=5998984412995876249' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/5998984412995876249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/5998984412995876249'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/07/qa-project-checklist.html' title='QA Project Checklist'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-4108512099616752694</id><published>2008-06-02T22:31:00.001-07:00</published><updated>2008-06-11T18:11:04.945-07:00</updated><title type='text'>How developers fix their bug -- funny forwarded email.</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-size:9pt'&gt;&lt;span style='font-family:Verdana'&gt;Forwarding one funny email from yahoo group ~ enjoy testing - Nimesh&lt;/span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;##########################################################&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;&lt;br/&gt;#define LAST 10 &lt;br/&gt;&lt;br/&gt;int main() &lt;br/&gt;{&lt;br/&gt;int i, sum = 0; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_e6fIGqe5Dc8/SEWqSbV5A7I/AAAAAAAADIU/ky-YhzpU7ac/s400/image001.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5207755777677788082" /&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;&lt;br/&gt;for ( i = 1; i &amp;lt; = LAST; i++ ) &lt;br/&gt;{ &lt;br/&gt;sum += i; &lt;br/&gt;} &lt;br/&gt;&lt;br/&gt;/*-for-*/ &lt;br/&gt;printf("sum = %d\n", sum); &lt;br/&gt;return 0; &lt;br/&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;&lt;br/&gt;##########################################################&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:9pt'&gt;&lt;span style='font-family:Verdana'&gt;&lt;strong&gt;And the developer fixes it this way&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='font-size:12pt'&gt;&lt;br /&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;##########################################################&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:12pt'&gt;&lt;br/&gt;#include stdio.h; &lt;br/&gt;#define LAST 10 &lt;br/&gt;&lt;br/&gt;int main() &lt;br/&gt;{&lt;br/&gt;int i, sum = 0; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:red; font-family:Times New Roman; font-size:12pt'&gt;&lt;strong&gt;&lt;br/&gt;/*&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_e6fIGqe5Dc8/SEWqSbV5A7I/AAAAAAAADIU/ky-YhzpU7ac/s400/image001.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5207755777677788082" /&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;br/&gt;&lt;p&gt;&lt;span style='color:red; font-family:Times New Roman; font-size:12pt'&gt;&lt;br/&gt;&lt;strong&gt;*/&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;&lt;br/&gt;for ( i = 1; i &amp;lt; = LAST; i++ ) &lt;br/&gt;{ &lt;br/&gt;sum += i; &lt;br/&gt;} &lt;br/&gt;&lt;br/&gt;/*-for-*/ &lt;br/&gt;printf("sum = %d\n", sum); &lt;br/&gt;return 0; &lt;br/&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;span style='color:maroon; font-family:Times New Roman; font-size:10pt'&gt;&lt;br/&gt;##########################################################&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-4108512099616752694?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/4108512099616752694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=4108512099616752694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/4108512099616752694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/4108512099616752694'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/06/how-developers-fix-their-bug-funny.html' title='How developers fix their bug -- funny forwarded email.'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_e6fIGqe5Dc8/SEWqSbV5A7I/AAAAAAAADIU/ky-YhzpU7ac/s72-c/image001.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-1959737316642534027</id><published>2008-06-02T16:07:00.001-07:00</published><updated>2008-06-11T18:12:12.171-07:00</updated><title type='text'>Communication and right attitude continuously adding precious drops in the sea of success.</title><content type='html'>Someone has well said "Communication matters" -- I would like to go further ahead.&lt;br /&gt;&lt;br/&gt;Yesterday, I went to PathMark to get some stuff. There were some schemes going on Tide (laundry detergent) with light bulbs on discount. One Customer came to customer service and started demanding he needs two bulbs free with Tide but the fact was that there was some discount if you purchase Tide with that light bulbs. The customer support guy explained the person that he could not give free two light bulbs as that was not scheme currently. Still the guy asking for free – he did not listen to customer support person and continuously telling him "I want free light bulbs". Customer Support Person explained him three or four times with his best knowledge that he could not give him but still that guy demanding. At last customer support person call to his Manager for help; Manager came and explained to the person that you got your discount and that is the scheme running currently but person started arguing like "what kind of scheme you guys have,…what is the logic behind you did not give me free light bulbs and lot more thing…" At last conversation with Manager, he asked PathMark's Customer Service Call center number and told that he would complain about this and that and left the Mall.&lt;br /&gt;&lt;br/&gt;I was standing  by that customer and seeing everything. I saw customer support guy – the gentle man has tried lot to make that person understood but that person was not open for it, he did not want to listen anything from him or from Manager – he just wanted free light bulbs along with Tide that was not actually scheme running. Customer Support Person and Manager got frustrated first as customer continuously demanding unfairly and wasting their and other customers' time who were in queue and at end that customer got frustrated when he left the Mall.&lt;br /&gt;&lt;br/&gt;The same thing may happen with any entities in project cycle and It may damage project progress and lead to deadline delayed.&lt;br /&gt;&lt;br/&gt;There are so many ways to make front person understand but of course both the parties would have will to listen each other point of views and analyze each other  to get the right crux of the matter so that at end both can be benefited.  As you see -- The patience to listen each other has major part in communication. There is one saying &lt;em&gt; "for clapping you need both hands &lt;/em&gt;,&lt;em&gt; one hand can't do".&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Communication and right attitude continuously adding their precious drops in the sea of success ~ Nimesh :) &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-1959737316642534027?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/1959737316642534027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=1959737316642534027' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1959737316642534027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1959737316642534027'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/06/communication-and-right-attitude.html' title='&lt;font size=&quot;4pt&quot;&gt;Communication and right attitude continuously adding precious drops in the sea of success.&lt;/font&gt;'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-8976847107217657793</id><published>2008-05-27T21:49:00.001-07:00</published><updated>2008-06-11T18:12:25.370-07:00</updated><title type='text'>Tip to create workflow in JIRA quickly</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;To my colleagues who want to create quickly new workflow and don't want to touch xml \ property files.&lt;br/&gt;&lt;br/&gt;On Administrator \ &lt;strong&gt;Workflows &lt;/strong&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;If you don't have default workflow then create default Workflow with default JIRA "workflow"  - it will show status as "active" so we cannot update its scheme \ workflow steps.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Copy this workflow -- it has status as "Inactive" so we can update workflow scheme.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Go to link "steps" and add new status \ transitions for new steps as required in your workflow.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br/&gt;On Administrator \ &lt;strong&gt;Workflow Schemes&lt;/strong&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Create new "Workflow Scheme" then click on "Workflows" link operation of new workflow just created.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Assign workflow to scheme,... Issue type  "Bug" and select our workflow from the list.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;Assign other workflows for issue types : Task, New Feature or Improvement with default workflow ( named JIRA ) or your workflow.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style='font-family:Times New Roman; font-size:12pt'&gt;&lt;br/&gt;Now our workflow scheme is ready to associate with our project.&lt;br/&gt;Go to your project admin panel and set workflow scheme there.&lt;br/&gt;&lt;br/&gt;Let me know if you need more detail :)&lt;br/&gt;&lt;br/&gt;Takecare,&lt;br/&gt;&lt;span style='color:#888888'&gt;Nimesh.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-8976847107217657793?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/8976847107217657793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=8976847107217657793' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8976847107217657793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8976847107217657793'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/05/tip-to-create-workflow-in-jira-quickly.html' title='Tip to create workflow in JIRA quickly'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-6262576411218120613</id><published>2008-05-27T14:56:00.000-07:00</published><updated>2008-06-11T18:13:13.427-07:00</updated><title type='text'>Typical Project flow with QA Loop in Jira</title><content type='html'>Last week, one of my friend needs some help to establish Project\QA workflows on Jira&lt;br /&gt;So here I am happy to share some of my odd solution.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_e6fIGqe5Dc8/SDyZgNkcqMI/AAAAAAAADGI/qnhrE5DK9jk/s1600-h/MultipleParallelFlowInJiraImplementation.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_e6fIGqe5Dc8/SDyZgNkcqMI/AAAAAAAADGI/qnhrE5DK9jk/s400/MultipleParallelFlowInJiraImplementation.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205204048010848450" /&gt;&lt;/a&gt;Project Flow problems or hard to implement in Jira were&lt;br /&gt;&lt;br /&gt;* One stage splits with multiple stages in flow.&lt;br /&gt;* More than one stages merges to one stage.&lt;br /&gt;&lt;br /&gt;Here We have Brainstorming splits to UT - ST stage and Dev Review - QA Review merges with Review stage executed by System Group Members in project flow.&lt;br /&gt;&lt;br /&gt;One issue splits with more than one issues, can also be implemented with sub-tasks  feature but it may not push next stage in the project flow as the project progresses; all sub-tasks are linked to the parent task only, may not execute inline flow; may not give more control to administrator\lead and may be more complicated to maintain. Sub-tasks may not be merged to one task on transitions after Dev. Review / QA Review merges to Review stage.&lt;br /&gt;&lt;br /&gt;Core objective is to implement flow that anyone can see each stage of the flow and can go back and forth from any stage, Dev and QA stage should work parallel and merge to "Review" and then System Verification should be executed as build in QA loop.&lt;br /&gt;Administrator \ Lead of each stage would have full control to execute project development and would have transparency; Jira could help to push next stage after each stage done.&lt;br /&gt;&lt;br /&gt;We first implement above flow as manually after we will find which actions need to automate.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Manually Implementation :&lt;/span&gt;&lt;br /&gt;# Created issue types for all Project Concept, Brainstorming, ST Identification, UT Identification...until System Verification as Standard Issue type like task.&lt;br /&gt;# Create work-flow schemes for each issue type we have created i.e. ProjectConcept work-flow will have step Created, Go for Brainstorming , Reopen.&lt;br /&gt;# Enable Issue Linking from Administrator and create two link type as we have two flow one is task flow other is defect flow.&lt;br /&gt;* Project Flow :&lt;br /&gt;  - Outward Description : created after , Inward Description : progressed to&lt;br /&gt;* Defect QA Loop :&lt;br /&gt;  - Outward Description : Linked to , Inward Description : Linked by&lt;br /&gt;# Associate each work-flow with its issue type.&lt;br /&gt;# When flow step done -- create new issue type of the next flow step and link it with its previous parent issue type on Project Flow.&lt;br /&gt;# On SV step make it open and add reference to each defect in its sv step.&lt;br /&gt;&lt;br /&gt;Here is snapshot after implemented above actions :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://docs.google.com/Doc?id=dc3f9x9g_85c43vwf8t"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_e6fIGqe5Dc8/SDyjv9kcqNI/AAAAAAAADGQ/8Eshg9-aieA/s400/nimeshvadgama_multipletasks_projectflow.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205215313710065874" /&gt;&lt;/a&gt;&lt;br /&gt;We can automate manual actions&lt;br /&gt;# Create next flow issue type when specific issue committed or completed, &lt;br /&gt;# Assign to the lead, &lt;br /&gt;# Add reference(link) to previous parent issue type.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Automation :&lt;/span&gt;&lt;br /&gt;Here I will show one implementation from stage Project Concept to Brainstorming; Others can be implemented as same way.&lt;br /&gt;For this we will create Jelly script and add them in Jelly Service of Jira.Script executes filter and get issues with issue-type : Project Concept , status : "Go for brain storming"  and which does not have comment "Brainstorm added" and does manual actions and then add comment "Brainstorm added" to project concept(previous step of the flow) so next time when service executes same project concept will not create brainstorm step.&lt;br /&gt;Created filter : GetProjectConceptsWithNonBrainstormingAdded at desk for this project.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_e6fIGqe5Dc8/SDywPdkcqPI/AAAAAAAADGg/Y-ynreH9WTY/s1600-h/JellyscriptToAutomateSameTask.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_e6fIGqe5Dc8/SDywPdkcqPI/AAAAAAAADGg/Y-ynreH9WTY/s400/JellyscriptToAutomateSameTask.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205229049015478514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://docs.google.com/Doc?id=dc3f9x9g_84c5769wck"&gt;Copy script code&lt;/a&gt;&lt;br /&gt;To execute above script, update your FilterId with 10020 to yours filterId, to find filterId go to Find Issues / Manage and put cursor on your filter and see the filterId on status bar.&lt;br /&gt;&lt;br /&gt;Please, feel free to ask any question regardings.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Nimesh Vadgama.&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-6262576411218120613?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/6262576411218120613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=6262576411218120613' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/6262576411218120613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/6262576411218120613'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/05/typical-project-flow-with-qa-loop-in.html' title='Typical Project flow with QA Loop in Jira'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_e6fIGqe5Dc8/SDyZgNkcqMI/AAAAAAAADGI/qnhrE5DK9jk/s72-c/MultipleParallelFlowInJiraImplementation.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-1784173807365774309</id><published>2008-05-11T20:35:00.000-07:00</published><updated>2008-06-11T18:14:25.967-07:00</updated><title type='text'>Combinations n Permutations in QA</title><content type='html'>Combinations n Permutations are very useful in software testing.&lt;br /&gt;It help to find possible test-data / testcases. This session will provide details about&lt;br /&gt;&lt;br /&gt;1. Some basics about Combinations&lt;br /&gt;2. Logic to find possible combinations for taking k numbers of items from n number items at a time.&lt;br /&gt;&lt;br /&gt;1. Some basics about Combinations.&lt;br /&gt;You might be come across with below example in old school days.&lt;br /&gt;We have set { "ant", "bug", "cat", "dog", "pig" } and If we want to take 3 elements at a time then we would have possible combinations as&lt;br /&gt;{ "ant", "bug", "cat" }&lt;br /&gt;{ "ant", "bug", "dog" }&lt;br /&gt;{ "ant", "bug", "pig" }&lt;br /&gt;{ "ant", "cat", "dog" }&lt;br /&gt;{ "ant", "cat", "pig" }&lt;br /&gt;{ "ant", "dog", "pig" }&lt;br /&gt;{ "bug", "cat", "dog" }&lt;br /&gt;{ "bug", "cat", "pig" }&lt;br /&gt;{ "bug", "dog", "pig" }&lt;br /&gt;{ "cat", "dog", "pig" }&lt;br /&gt;&lt;br /&gt;So for n=5 and k=3 in above we would have 10 possible combinations.&lt;br /&gt;How we can count ?&lt;br /&gt;We have formula :&lt;br /&gt;&lt;br /&gt;Total number of combinations  =  n * (n-1) * (n-2) * ....* (n - k +1) \ 1 * 2 * ...* k&lt;br /&gt;&lt;br /&gt;So, n= 5 and k= 3&lt;br /&gt;Total number of combinations = 5 * 4 * 3  \ 1 * 2 * 3 = 10&lt;br /&gt;We will use this formula to implement C# function Choose(n,k) to find total number of possible combinations in coming session.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Logic to find possible combinations for taking k numbers of items from n number items at a time.&lt;br /&gt;The basic logic is to get all possible combinations item index.&lt;br /&gt;So, If we have data[5] = { "ant", "bug", "cat", "dog", "pig" }&lt;br /&gt;{ "ant", "bug", "cat" } =  {  data[0] , data[1] , data[2] }  &lt;br /&gt;and so we need to get { 0 , 1 , 2 }&lt;br /&gt;{ "ant", "bug", "dog" } = { data[0] , data[1]  , data[3] }  &lt;br /&gt;and so we need to get { 0 , 1 , 3 }&lt;br /&gt;&lt;br /&gt;And for others as respectively we need to get&lt;br /&gt;{ 0 , 1 , 4 }&lt;br /&gt;{ 0 , 2 , 3 }&lt;br /&gt;{ 0 , 2 , 4 }&lt;br /&gt;{ 0 , 3 , 4 }&lt;br /&gt;{ 1 , 2 , 3 }&lt;br /&gt;{ 1 , 2 , 4 }&lt;br /&gt;{ 1 , 3 , 4 }&lt;br /&gt;{ 2 , 3 , 4 }&lt;br /&gt;&lt;br /&gt;To find combinations we will use lexicographical algorithm. &lt;br /&gt;In this algorithm, we find successor.  Successor is the next possible combination.&lt;br /&gt;Say for { 0 , 1 , 2 } we have successor  { 0 , 1 , 3 }  &lt;br /&gt;The core logic to get successor is first to find right most element that must be incremented then we increment all right most elements for that we will create Combination Class and implement two constructor to set base data, n and k of the set as per requirement  and then execute Successor Method and will store all possible combinations of object array and display as well.&lt;br /&gt;&lt;br /&gt;Inspired by &lt;a href="(http://msdn.microsoft.com/en-us/magazine/cc163513.aspx"&gt;article of Dr. James McCaffrey&lt;/a&gt; on String Permutation.&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-1784173807365774309?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/1784173807365774309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=1784173807365774309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1784173807365774309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1784173807365774309'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/05/combinations-n-permutations-in-qa.html' title='Combinations n Permutations in QA'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-8200751698910534638</id><published>2008-05-01T19:56:00.000-07:00</published><updated>2008-06-11T18:14:38.990-07:00</updated><title type='text'>Automate QA Feeds task [continuous to last post]</title><content type='html'>&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;Continuous &lt;span style=""&gt; &lt;/span&gt;post of&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;a style="border-bottom-style: groove;" href="http://web-qa.blogspot.com/2008/04/xmlrss-feeds-are-in-qa.html"&gt;&lt;span style="color:blue;"&gt;CSV\XML\RSS Feeds are QAed&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;h3  style="font-weight: bold;font-family:arial;"&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;&lt;span&gt;To validate Feed URL(s) are not broken ; we can use XML DOM. Below is script that validates broken link.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_e6fIGqe5Dc8/SBqDzd4hbWI/AAAAAAAACBM/6G6u5O3W-L0/s1600-h/ASCII.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;   &lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_e6fIGqe5Dc8/SBqDOt4hbVI/AAAAAAAACBE/Jx-BfaUEyss/s1600-h/XMLDOM.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_e6fIGqe5Dc8/SBqDOt4hbVI/AAAAAAAACBE/Jx-BfaUEyss/s400/XMLDOM.jpg" alt="" id="BLOGGER_PHOTO_ID_5195609408983362898" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;h3  style="font-weight: bold;font-family:arial;"&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;    &lt;h3  style="font-weight: bold;font-family:arial;"&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;To validate ASCII Character , I have used below script.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3  style="font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_e6fIGqe5Dc8/SBqDzd4hbWI/AAAAAAAACBM/6G6u5O3W-L0/s1600-h/ASCII.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_e6fIGqe5Dc8/SBqDzd4hbWI/AAAAAAAACBM/6G6u5O3W-L0/s400/ASCII.jpg" alt="" id="BLOGGER_PHOTO_ID_5195610040343555426" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;You can create excel custom tool where you centralize all feeds , verifies broken resources before creating actual feed.&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;h3 style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;font-size:85%;" &gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-8200751698910534638?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/8200751698910534638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=8200751698910534638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8200751698910534638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8200751698910534638'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/05/automate-qa-feeds.html' title='Automate QA Feeds task [continuous to last post]'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_e6fIGqe5Dc8/SBqDOt4hbVI/AAAAAAAACBE/Jx-BfaUEyss/s72-c/XMLDOM.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-1403146415040584239</id><published>2008-04-20T16:23:00.001-07:00</published><updated>2008-06-11T18:14:53.183-07:00</updated><title type='text'>CSV\XML\RSS Feeds are QAed</title><content type='html'>In Content centric organizations, feeds are one of the core part that needs to update every time when&lt;br /&gt;&lt;ol&gt;&lt;li&gt;New Contents are Uploaded.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New Categories \ Groups are introduced for Old Contents.&lt;/li&gt;&lt;/ol&gt;As we know first one is very repetitive task  -- so need repetitive validation.&lt;br /&gt;Second one is less repetitive but much costlier and involve high risk – so need more rigorous validation as well.&lt;br /&gt;&lt;br /&gt;Both missions have some kind of common problems :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Feed Generator Software\Content System retrieve Content Data ( URL(s) \ Content Details )  which may have ASCII Characters and Memory Garbage and  old inactive URL(s)– URL(s)  where contents are not actually accessible by user.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Feed may contain non compatible XML data( like special characters  &gt; &lt; &amp;amp; ) which may break XML \ RSS Feeds.  &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Feed may not have broken content URL(s) and Content Details but they may be mapped wrongly. It means Content Details for one Content may not present its own Content URL or in opposite.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;So for QA, we expect to&lt;br /&gt;&lt;br /&gt;1. Validate Broken Content URL(s)&lt;br /&gt;Content  URL(s) are usually redirects user to the subscription services.&lt;br /&gt;They are paychecks for companies.&lt;br /&gt;&lt;br /&gt;2. Validate Content Details are not broken.&lt;br /&gt;Content Details are like Content Descriptions on which user read and subscribe service or purchase content from company like Content Name, Type, Usage , Marketing Phases.&lt;br /&gt;&lt;br /&gt;3. Validate each correct Content has its own correct Content details.&lt;br /&gt;Content details are mapped correctly with each other.&lt;br /&gt;&lt;br /&gt;Validating above tasks MANUALLY is not a practical way as we all know in middle  to big scale  organization we would have  more then 10,000+ contents in QA.  There are some automation ways to validate above task more effectively and efficiently --  I will focus light on them in my next post .&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-1403146415040584239?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/1403146415040584239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=1403146415040584239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1403146415040584239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/1403146415040584239'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/04/xmlrss-feeds-are-in-qa.html' title='CSV\XML\RSS Feeds are QAed'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-7225031458518902299</id><published>2008-04-18T20:47:00.000-07:00</published><updated>2008-06-11T18:15:23.729-07:00</updated><title type='text'>NUnit basics for new bees</title><content type='html'>In smaller to bigger project, here are some basics about how to automate Unit testing with NUnit framework on .Net Platform.&lt;br /&gt;&lt;br /&gt;Where NUnit spot on SDLC?&lt;br /&gt;In other words, we can ask when to start unit automation on project? It depends on various parameters say for example Complexity of Method(s) / API(s) or Classes in production cycle - How Method(s) API(s) / Classes are called by other Method(s) / API(s) / Classes in production cycle.&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;We can start NUnit automation after completion of any independent Method / API / its Class created at production and making automation continued towards parallel of development cycle of more dependent Method(s) / API(s) / Classe(s).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;u1:p&gt;&lt;/u1:p&gt;Say for example we have small class library project in C#.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_e6fIGqe5Dc8/SAqXzHxIz4I/AAAAAAAACA0/fvHjTgt_NEw/s1600-h/ProjectCode.jpg"&gt;&lt;blockquote&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_e6fIGqe5Dc8/SAqXzHxIz4I/AAAAAAAACA0/fvHjTgt_NEw/s400/ProjectCode.jpg" alt="" id="BLOGGER_PHOTO_ID_5191128425012187010" border="0" /&gt;&lt;/blockquote&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:327pt;"&gt;  &lt;v:imagedata src="file:///C:\Users\GANESH~1.SHR\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;Now lets start NUnit Automation in 7 simple steps :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create New      Test C# Project (Here Named TestProject) and add production class (.dll) reference.&lt;/li&gt;&lt;li&gt;Add      reference NUnit.Frameworkto the TestProject.&lt;/li&gt;&lt;li&gt;Add      attribute "TestFixture" to mark as Test Class and so NUnit GUI      can recognize.&lt;/li&gt;&lt;li&gt;To create      Test Category / Test-Cases group, add attribute “Category”                         passing with                      CategoryName as a param say for here [Category(“TestCategory1”)].&lt;/li&gt;&lt;li&gt;Add      attribute “Test”to the test-cases which will teardown inside test-class.&lt;/li&gt;&lt;li&gt;To      implement test-case , create Object of the AUT Class and call Assert with      its various methods as required.&lt;/li&gt;&lt;li&gt;Save the project and Open this on NUnit GUI and last run the      test.&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_e6fIGqe5Dc8/SAqYFHxIz5I/AAAAAAAACA8/DY6S6MZcoFQ/s1600-h/TestProject.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_e6fIGqe5Dc8/SAqYFHxIz5I/AAAAAAAACA8/DY6S6MZcoFQ/s400/TestProject.jpg" alt="" id="BLOGGER_PHOTO_ID_5191128734249832338" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/li&gt;&lt;/ol&gt;Njoy, Nimesh - &lt;i&gt;(Get more NUnit stuff on &lt;a style="border-bottom-style: groove;" href="http://www.nunit.org/"&gt;http://www.nunit.org&lt;/a&gt; )&lt;/i&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-7225031458518902299?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/7225031458518902299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=7225031458518902299' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/7225031458518902299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/7225031458518902299'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2008/04/nunit-go-getter-tutorial.html' title='NUnit basics for new bees'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_e6fIGqe5Dc8/SAqXzHxIz4I/AAAAAAAACA0/fvHjTgt_NEw/s72-c/ProjectCode.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-171890075388797458</id><published>2007-11-11T20:19:00.000-08:00</published><updated>2008-06-11T18:15:45.228-07:00</updated><title type='text'>Test Result analysis and reporting -- Art of good Test Engineer</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;!--&lt;br /&gt;google_ad_client = "pub-0604176501458966";&lt;br /&gt;/* 728x90, created 4/16/08 */&lt;br /&gt;google_ad_slot = "4456005621";&lt;br /&gt;google_ad_width = 728;&lt;br /&gt;google_ad_height = 90;&lt;br /&gt;google_cpa_choice = ""; // on file&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&lt;br /&gt;src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;&lt;br /&gt;&lt;/script&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-171890075388797458?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/171890075388797458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=171890075388797458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/171890075388797458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/171890075388797458'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/11/test-result-analysis-and-reporting-art.html' title='Test Result analysis and reporting -- Art of good Test Engineer'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-3389395230195277365</id><published>2007-10-25T20:53:00.001-07:00</published><updated>2008-09-01T07:16:34.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Test Environment Setup'/><title type='text'>Test Environment Setup</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Objective&lt;/span&gt;&lt;br /&gt;How to make your automation framework accessible through out all Test Environments in other sense how to make your automation objects ( scripts \ business objects ) reusable with other platforms with Automation Tools such as QTP \ Silk Test.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Problem&lt;/span&gt;&lt;br /&gt;You have different test platforms such as&lt;br /&gt;qa:6080  like build in qa 6080 port.&lt;br /&gt;qa:7080  like build in integration qa 7080 port.&lt;br /&gt;qa:8080  like build in staging qa 8080 port.&lt;br /&gt;Live environment (like any production site)&lt;br /&gt;&lt;br /&gt;We need to have centralized automation script that can get access to all above platforms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Approach for problem solution&lt;/span&gt;&lt;br /&gt;• We need to create&lt;br /&gt;1.Function that can read current global environment configuration which may be in .xml.&lt;br /&gt;2.Start-up Script that can add / update / set current environment from .xml or any other format – you can make GUI tool or use VBScript + Excel to maintain easily.&lt;br /&gt;&lt;br /&gt;•We need to normalize all automation objects which are pointing to specific platform like filtering out all redundancy from automation objects – you can here use regular expression and concate current environment by calling function.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Execution &lt;/span&gt;&lt;br /&gt;Execute your start-up script to set up current environment we want to go on.&lt;br /&gt;Associate function to the script and call it as mention above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-3389395230195277365?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/3389395230195277365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=3389395230195277365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3389395230195277365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3389395230195277365'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/10/test-environment-setup.html' title='Test Environment Setup'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-7995624147255822549</id><published>2007-10-25T20:42:00.000-07:00</published><updated>2008-09-01T07:25:09.698-07:00</updated><title type='text'>QA Automation in V Model</title><content type='html'>QA Automation in V-Model&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Low level Testing&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Unit Testing with NUnit (and MS Visual Studio), xUnit and  HTMLUnit on Java and C# / ASP.Net plateform.&lt;/li&gt;&lt;li&gt;HTTP Request-Response Testing with Selenium, Canoo WebTest, SOAPUI and other free-ware tools.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Integration Level Testing.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Components Interface Testing. &lt;/li&gt;&lt;li&gt;Web-Service Testing with SOAPUI&lt;br /&gt;&lt;/li&gt;&lt;li&gt;API Testing with WebTest Canoo \ QTP \ SilkTest &lt;/li&gt;&lt;li&gt;Function \ Smoke Testing \ Regression Testing &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;High Level Testing.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cross Browser \ Cross Platform Testing. &lt;/li&gt;&lt;li&gt;GUI Testing with Tools such as Mercury QTP, Silk Test, WinRunner. &lt;/li&gt;&lt;li&gt;Load \ Performance testing with LoadRunner.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;~NV&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-7995624147255822549?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/7995624147255822549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=7995624147255822549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/7995624147255822549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/7995624147255822549'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/10/v-model-i.html' title='QA Automation in V Model'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-8678455064911527641</id><published>2007-09-13T11:41:00.001-07:00</published><updated>2008-06-11T18:16:29.661-07:00</updated><title type='text'>QuickTest Pro and Traceability Matrix</title><content type='html'>I like to share one automation experience or in other sense the challenge I had in  automation.&lt;br /&gt;&lt;br /&gt;I joined one company as an Automation Quality Analyst Consultant. It is fast growing Company. I was as a tool smith like person recommending tools for QA team to make manual testing tasks more easier\reliable and fast way. We had established freeware tools for testcase management, defect repository and qa\project process and developed&lt;br /&gt;test-suites for regression and smoke testing in QTP.&lt;br /&gt;&lt;br /&gt;As we all know regression test-suite is bulky one and at that time, mine was including more then 617 testcases automated and that’s why taking more than 3 hours to finish execution. I have split test scripts on functionality vise and created test batch but the problem is test batch report does not give status for each testcases in automation execution and that encourage me to develop “TM live” tool interfaced with QTP 9.1.&lt;br /&gt;&lt;br /&gt;“TM live” means Traceability Matrix on live (parallel with automation suite execution)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_e6fIGqe5Dc8/RvsqOeFjmFI/AAAAAAAAAMQ/GZbSOc0Zzac/s1600-h/TM+Live+Tool+-+Nimesh+Vadgama.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_e6fIGqe5Dc8/RvsqOeFjmFI/AAAAAAAAAMQ/GZbSOc0Zzac/s400/TM+Live+Tool+-+Nimesh+Vadgama.jpg" alt="" id="BLOGGER_PHOTO_ID_5114728229892233298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Live Graphical Report - Demo&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_e6fIGqe5Dc8/RvswluFjmGI/AAAAAAAAAMY/Hy19clzlGvM/s1600-h/TM+Demo+-+NimeshVadgama.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_e6fIGqe5Dc8/RvswluFjmGI/AAAAAAAAAMY/Hy19clzlGvM/s400/TM+Demo+-+NimeshVadgama.jpg" alt="" id="BLOGGER_PHOTO_ID_5114735226393958498" border="0" /&gt;&lt;/a&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-8678455064911527641?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/8678455064911527641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=8678455064911527641' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8678455064911527641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/8678455064911527641'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/quicktest-pro-and-tracebility-metrix.html' title='QuickTest Pro and Traceability Matrix'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_e6fIGqe5Dc8/RvsqOeFjmFI/AAAAAAAAAMQ/GZbSOc0Zzac/s72-c/TM+Live+Tool+-+Nimesh+Vadgama.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-87297078844986726</id><published>2007-09-13T11:02:00.000-07:00</published><updated>2011-06-05T11:01:49.028-07:00</updated><title type='text'>Increase ROI in your organization with Automation Testing</title><content type='html'>&lt;span style="font-size:100%;"&gt;This article offers answers for below questions with case-study &lt;/span&gt;&lt;pre class="western" style="margin-bottom: 0.2in"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Why do we need automation s/w testing in organization?&lt;/b&gt; &lt;b&gt;&lt;br /&gt;&lt;br /&gt;What if organization does not have fund to purchase license&lt;br /&gt;for expensive automation tools?&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt; In simple way, we can say the core objective of automation is helping to finish any testing\QA task more accurate, easier and faster way with less risk involved for failure. Say for example Tools like&lt;br /&gt;# Functional automation tools QTPro, SilkTest, Canoo, Selenium, VBMacro.&lt;br /&gt;# Load/Stress automation tools LoadRunner, SilkPerformer.&lt;br /&gt;# Cookies reader tools.&lt;br /&gt;# HTTP request / response reader tools.&lt;br /&gt;# File comparison tools.&lt;br /&gt;# Tesecase Management Tools.&lt;br /&gt;# Web Page link / image finder Tools.&lt;br /&gt;# Broken link finder Tools.&lt;br /&gt;and many other tools we can categorize in automation testing fashion to make QA Process more smoother; Automation Testing also used for&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Repetitive testing task activities…&lt;/b&gt;&lt;br /&gt;As a human nature, manual tester can not perform repetitive tasks more accurately comparing to machine or software automation program. Test data-driven approach is one of the best solutions of automation for repetitive testing. Automation makes "cross browser testing" a peace of cake, you just change configuration file and you are ready to verify features on other browsers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Is More Reliable…&lt;/b&gt;&lt;br /&gt;In the sense of giving feedback more faster and cheaper way. Automation provides excellent feedback in well HTML / XML forms which are also open to plug into our QA statistical system like System that generates Traceability Metrix say for Mercury's Quality Center or Borland's SilkCenter and we can make qa process more transparent toward organization. Anyone can execute automation scripts at anytime, most of the times they are triggered at night. Automation always pays back; when new build comes in qa, we execute smoke automation scripts to check build health and trigger regression automation scripts to verify old features work with new features as expected in more faster and cheaper way comparing to manual testing – It works like safety net where not only qa team but development team also gets more confidence and open doors to feedback SDLC loop earlier.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Is the best candidate for some testing tasks like…&lt;/b&gt;&lt;br /&gt;Simulate virtual users that generates load / stress on server to check page throughputs, bandwidth,CPU utilization, Memory leaks and other quality parameters.&lt;br /&gt;To Compare large files / database objects like Validate pictures or binary files with their expected ones.&lt;br /&gt;Gathering QA statistics like Metrix and Millstones.&lt;br /&gt;&lt;br /&gt;There are many other reasons why organization should have automation testing, we will discuss later on. One other thought I have in my mind if organization does not have fund to purchase expensive license for tools (like qtp, silktest winrunner..)&lt;br /&gt;then what qa people can do? In this scenarios, It is a good opportunity to use freeware tools. My past articles can help you guys to evaluate freeware tools&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://web-qa.blogspot.com/2007/09/automation-test-plan-strategies_09.html"&gt;Automation Test Strategies&lt;/a&gt;" -- find tool selection quality parameters&lt;br /&gt;"&lt;a href="http://web-qa.blogspot.com/2007/09/tools-evaluation_05.html"&gt;Tool Evaluation&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;You can find freeware tools on http://www.opensourcetesting.org/ which sure be helpful for qa process in your organization, couple of good tools I like to recommend are as below&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Functional \ Regression Automation test tools&lt;/b&gt;&lt;br /&gt;In my past projects experience, I have successfully established an automation framework with freeware tools – WebTest Canoo and Selenium.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webtest.canoo.com/webtest/manual/WebTestHome.html"&gt;WebTest Canoo&lt;/a&gt; is on XML\Ant based tool understands HTTP request and response of the site. Everything is xml based; your test-cases, test-driver and even it produces result in xml file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openqa.org/selenium/"&gt;Selenium&lt;/a&gt; is also a good tool available as freeware.It comes with browser extension; It has its own api function library; record/play utility in built. Selenium tests run directly in a browser, just as real users. It has in built script language conversion utility that can currently support writing tests in Java, .NET, Perl, Python and Ruby.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Test Management Tools&lt;/b&gt;&lt;br /&gt;TestLink(http://testlink.org/wordpress),&lt;br /&gt;QA Track(http://www.qatrack.org/),&lt;br /&gt;Bugzilla Test Runner(http://sourceforge.net/projects/testrunner/)&lt;br /&gt;I like TestLink tool most as it offers functionalities such as&lt;br /&gt;# Test Case history/ versioning&lt;br /&gt;# Unlimited structure of Test Specification&lt;br /&gt;# Support for other databases (SQL standard, generalized DB interdace)&lt;br /&gt;# Improved user management (editable)&lt;br /&gt;# Attachments&lt;br /&gt;# Revision of Standard terminology&lt;br /&gt;# Enhanced reports&lt;br /&gt;# XML import/export&lt;br /&gt;# Custom fields for Test Cases&lt;br /&gt;# Get Traceability Metrix and Milestones&lt;br /&gt;# Can create suites like regression suite or smoke suite for the test&lt;br /&gt;and then create build in testlink that allow us to attach testcases&lt;br /&gt;in qa, we can also assign to team for execution and testlink gives&lt;br /&gt;statistics for testing progress as well.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Defect Tracking Tools&lt;/b&gt;&lt;br /&gt;Bugzilla(www.bugzilla.org/),&lt;br /&gt;BugNet(http://www.bugnetproject.com/),&lt;br /&gt;Jira(http://www.atlassian.com/software/jira/)&lt;br /&gt;Jira is an award winner professional issue tracking web tool. Although&lt;br /&gt;it is not freeware tool but it is less expensive.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Miscellaneous tools&lt;/b&gt;&lt;br /&gt;&lt;a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page"&gt;FreeMind&lt;/a&gt; is a premier free mind-mapping software written in Java. You can create test-scenarios in more easy way and publish them into hierarchical presentation in XML/HTML format.&lt;br /&gt;&lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; to compare files.&lt;br /&gt;&lt;a href="http://www.httpwatch.com/?gclid=CPWo7639_Y4CFQRvHgodSgJctw"&gt;HTTPWatch&lt;/a&gt; tool can read HTTP headers, cookies, caching and POST data.&lt;br /&gt;&lt;a href="http://www.nirsoft.net/utils/iecookies.html"&gt;IECookiesView v1.70&lt;/a&gt; can read IE cookies details.&lt;br /&gt;&lt;a href="http://validator.w3.org/"&gt;Markup Validation W3 Service&lt;/a&gt; checks the markup validity of Web documents in HTML, XHTML, SMIL, MathML, etc.&lt;br /&gt;&lt;a href="http://validator.w3.org/checklink"&gt;Link Checker&lt;/a&gt; - Checks anchors (hyperlinks) in a HTML/XHTML document. Useful to find broken links, etc.&lt;br /&gt;&lt;br /&gt;In my future post, I will share my customized automation tools that made to satisfy more specific testing task.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-87297078844986726?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/87297078844986726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=87297078844986726' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/87297078844986726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/87297078844986726'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/increase-roi-in-organization-with.html' title='Increase ROI in your organization with Automation Testing'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-257640644841186568</id><published>2007-09-11T20:50:00.001-07:00</published><updated>2008-06-11T18:16:57.623-07:00</updated><title type='text'>Testing Priciples &amp; Vocabulary</title><content type='html'>The principles can be defined as &lt;br /&gt;1. a rule or code of conduct;&lt;br /&gt;2. a general or fundamental, law, doctrine or assumption;&lt;br /&gt;&lt;br /&gt;In software domain, these principles focus lights to test engineers on software systems, how suppose to  build them and how they expect to behave.&lt;br /&gt;&lt;br /&gt;Principle #1&lt;br /&gt;Testing is the process of exercising a software component using a selected set of test cases, with the intent of &lt;br /&gt; (a) revealing defects,&lt;br /&gt; (b) evaluating quality.&lt;br /&gt;&lt;br /&gt;The term “defects” used in this and in subsequent principles represents any deviations in the software that have negative impact on its functionality, performance, reliability, security and or any other of its specified quality attributes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Principle #2&lt;br /&gt;When the test objective is to detect defects, then a good test case is one that has a high probability of revealing a yet undetected defect(s).&lt;br /&gt;&lt;br /&gt;The test engineer expects to work as scientist does like he creates hypotheses to prove or disprove them; that is determine if the specific defect is present or absent. Base on hypotheses, tester must select specific inputs; determines correct outputs and then they will be executed. Test results are analyzed to prove / disprove the hypotheses.&lt;br /&gt;&lt;br /&gt;Principle #3&lt;br /&gt;The test results should be inspected meticulously.&lt;br /&gt;Get more detail from article.&lt;br /&gt;&lt;br /&gt;Principle #4&lt;br /&gt;A test case must contain the expected output or result.&lt;br /&gt;Expected outputs allow the tester to determine&lt;br /&gt;(1) whether a defect has been revealed, and&lt;br /&gt;(2) pass/fail status for the test. It is very important to have a correct statement of the output so that needless time is not spent due to misconceptions about the outcome of a test. The specification of test inputs and outputs should be part of test design activities.&lt;br /&gt;&lt;br /&gt;Principle #5&lt;br /&gt;Test cases should be developed for both valid and invalid input conditions.&lt;br /&gt;This principle opens room for negative testing. Tester should create positive as well as negative test cases; he or she must not assume that the software under test will always be provided with valid inputs. Inputs may be incorrect for several reasons. The developer of the software component may be biased in the selection of test inputs and specify only valid inputs in the test cases to demonstrate that the software works correctly but good tester is one who is more apt to select invalid inputs as well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Principle #6 The probability of the existence of additional defects in a software component is proportional to the number of defects already detected in that component.&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-4671269-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-257640644841186568?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/257640644841186568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=257640644841186568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/257640644841186568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/257640644841186568'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/text-demo.html' title='Testing Priciples &amp; Vocabulary'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-2164454089497513948</id><published>2007-09-10T08:40:00.000-07:00</published><updated>2009-07-27T09:23:51.633-07:00</updated><title type='text'>QA Process implemented in 0 leveled organizations</title><content type='html'>&lt;iframe src="http://docs.google.com/present/embed?id=dc3f9x9g_81dtxp39wr&amp;interval=5" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-2164454089497513948?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/2164454089497513948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=2164454089497513948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/2164454089497513948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/2164454089497513948'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/qa-process-implemented-in-0-leveled.html' title='QA Process implemented in 0 leveled organizations'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-3050011340853197189</id><published>2007-09-10T03:23:00.001-07:00</published><updated>2009-07-27T09:19:41.696-07:00</updated><title type='text'>Test Plan IEEE 829-1983 explained by me</title><content type='html'>&lt;iframe src="http://docs.google.com/present/embed?id=dc3f9x9g_73ft3r93fr&amp;autoStart=true" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-3050011340853197189?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/3050011340853197189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=3050011340853197189' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3050011340853197189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3050011340853197189'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/tp-ieee-829-1983.html' title='Test Plan IEEE 829-1983 explained by me'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-3376555506695066109</id><published>2007-09-09T22:18:00.000-07:00</published><updated>2009-07-27T09:22:20.091-07:00</updated><title type='text'>Automation Test Plan Strategies</title><content type='html'>&lt;iframe src="http://docs.google.com/present/embed?id=dc3f9x9g_59g97d2fct&amp;interval=5&amp;autoStart=true" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-3376555506695066109?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/3376555506695066109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=3376555506695066109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3376555506695066109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/3376555506695066109'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/automation-test-plan-strategies_09.html' title='Automation Test Plan Strategies'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8818847880387079064.post-4801429108412395921</id><published>2007-09-05T18:38:00.001-07:00</published><updated>2009-10-27T10:54:00.756-07:00</updated><title type='text'>Tools Evaluation</title><content type='html'>Hello Guys,&lt;br /&gt;&lt;br /&gt;This is my first post on this blog; hoping you all enjoy.&lt;br /&gt;&lt;br /&gt;Freeware Test Tool Evaluation for Functional\Regression Testing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e6fIGqe5Dc8/SucyoZZygdI/AAAAAAAAEig/BHByFe-hNDU/s1600-h/Capture2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 259px;" src="http://1.bp.blogspot.com/_e6fIGqe5Dc8/SucyoZZygdI/AAAAAAAAEig/BHByFe-hNDU/s400/Capture2.JPG" alt="" id="BLOGGER_PHOTO_ID_5397338348022038994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(a = Active featured)&lt;br /&gt;&lt;br /&gt;Freeware Test Tool for Web Content Accessibility Testing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e6fIGqe5Dc8/SucyIDRwa4I/AAAAAAAAEiY/yWEh2i19-Qc/s1600-h/Capture.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 315px;" src="http://2.bp.blogspot.com/_e6fIGqe5Dc8/SucyIDRwa4I/AAAAAAAAEiY/yWEh2i19-Qc/s400/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5397337792326953858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(a = Active featured)&lt;br /&gt;&lt;br /&gt;* Above evaluation is an personal evaluation based on my experience and practices.&lt;br /&gt;&lt;br /&gt;Thank you &amp;amp; Enjoy Testing;&lt;br /&gt;~NV.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8818847880387079064-4801429108412395921?l=web-qa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web-qa.blogspot.com/feeds/4801429108412395921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8818847880387079064&amp;postID=4801429108412395921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/4801429108412395921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8818847880387079064/posts/default/4801429108412395921'/><link rel='alternate' type='text/html' href='http://web-qa.blogspot.com/2007/09/tools-evaluation_05.html' title='Tools Evaluation'/><author><name>NV - Nimeshkumar Vadgama</name><uri>http://www.blogger.com/profile/07987206583351749581</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SqZ68PXM3wI/AAAAAAAAEdg/dA_STYofcys/S220/AIbEiAIAAABECOzwg-OHv5ms9QEiC3ZjYXJkX3Bob3RvKig4MWVmMjFiNDg3YmFjNTJlMGY0M2E5MWZhY2U5YTBiY2Y2Y2RkODQzMAEHQo0rkyyZwU6LHSF9Qq8iKcxK4Q.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e6fIGqe5Dc8/SucyoZZygdI/AAAAAAAAEig/BHByFe-hNDU/s72-c/Capture2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
