<?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-15214480</id><updated>2011-11-27T16:21:48.288-08:00</updated><category term='GA'/><category term='Automation in agile projects'/><category term='Agile Testing Process'/><category term='Twist'/><category term='Tester on Agile project'/><category term='Twist Testing tool'/><category term='Twist GA'/><category term='Webdriver'/><category term='PPT'/><category term='Twist V1.0'/><category term='Twist Thoughtworks'/><category term='Selenium Testing'/><category term='Agile Testing'/><category term='Selenium interview questions'/><category term='Twist beta'/><category term='Automation'/><category term='Twist proxies'/><category term='QTP Agile testing'/><category term='QTP in Agile'/><category term='Testing'/><title type='text'>Pankaj Nakhat's Blog about Testing, Automation and Agile Testing</title><subtitle type='html'>Agile Testing, Testing, QTP, Twist, AUtomation Testing, Selenium</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15214480.post-1244116278080148870</id><published>2009-08-12T11:35:00.000-07:00</published><updated>2009-08-12T11:36:10.795-07:00</updated><title type='text'></title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_Wzmu4gkZDx4/SoMLloWQoJI/AAAAAAAACWs/ZUmboHlDtLU/s1600-h/DSC00084.JPG"&gt;&lt;img style="CLEAR: both; FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://4.bp.blogspot.com/_Wzmu4gkZDx4/SoMLloWQoJI/AAAAAAAACWs/ZUmboHlDtLU/s320/DSC00084.JPG" border="0" /&gt;&lt;/a&gt;&lt;div style='clear:both; text-align:LEFT'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-1244116278080148870?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/1244116278080148870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/08/blog-post.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/1244116278080148870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/1244116278080148870'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/08/blog-post.html' title=''/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Wzmu4gkZDx4/SoMLloWQoJI/AAAAAAAACWs/ZUmboHlDtLU/s72-c/DSC00084.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-1167591833006765667</id><published>2009-08-12T11:27:00.000-07:00</published><updated>2009-08-12T11:28:24.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tester on Agile project'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing Process'/><title type='text'>A Tester’s perspective on agile projects</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS'; color: rgb(51, 51, 51); font-size: 12px; line-height: 18px; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Agile is no longer a buzzword or an unknown territory in the industry. Agile has come forward leaps and bounds since last few years and has seen a great transition from a newbie to a widely accepted methodology.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Testing on agile project was a paradigm shift for the traditional testing roles.  It needed a change in tester’s attitude from a laid back relay race oriented approach to an upfront involved role.  No longer had QAs needed to get something over the line to know the quality, as approach was rather to do the things right first time. But it’s easier said than done, how does it happen in reality? Does it actually happen?&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Agile is a philosophy which believes in delivering constant value to customers incrementally and frequently, which is based on simple values of communication and feedback.  These two ingredients are the ingredients of a successful agile recipe.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;A tester has an important role to play in agile projects throughout different phase of iterations. Iteration is generally a two week long activity where small requirements are analysed, coded and tested.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;What QAs needs to do? I am outlining few of the basic QA activities in agile projects. Let’s simply break the QA activities in three phases in agile projects. However, this is no golden rule and it can be flexible according to the project situation. Agile QAs role is not limited to set of pre defined processes, as the methodology they are expected to play an agile role as per the situation.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;&lt;span style="text-decoration: underline; "&gt;Pre iteration : &lt;/span&gt;&lt;/strong&gt;This is the time where requirements are analysed in detailed by the BAs and acceptance criteria are detailed out for that story. As QAs are immediate consumers of those requirements, so it is really important to verify these requirements early and often.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;&lt;span style="text-decoration: underline; "&gt;Story verification :&lt;/span&gt;&lt;/strong&gt; Agile testing is all about giving feedback early, not necessarily only by testing the requirements, but doing &lt;strong&gt;&lt;em&gt;requirements testing&lt;/em&gt;&lt;/strong&gt; early on. &lt;em&gt;What should one be focusing on while doing requirements testing?&lt;/em&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Looking at requirements for &lt;strong&gt;Clarity &lt;/strong&gt;and &lt;strong&gt;Testability  - &lt;/strong&gt;QAs really need to look at the requirement / stories upfront to figure out that requirement are &lt;em&gt;&lt;span style="text-decoration: underline; "&gt;unambiguous&lt;/span&gt;&lt;/em&gt; and &lt;em&gt;&lt;span style="text-decoration: underline; "&gt;testable&lt;/span&gt;&lt;/em&gt;.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;Unambiguous- &lt;/strong&gt;I think unambiguous in agile has little different context compared to typical waterfall project.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;- Requirement should be small enough to make sense in the context.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;- Acceptance criteria (Stories are generally broken in to acceptance criteria) should not be duplicate or overlapping from different stories.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;However, doing that can be really difficult and can only be achieved with really good communication between Dev/BA/QA.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;Testable: &lt;/strong&gt;Testability aspect of the story requires QA to scan through the story to see what needs to be done to test the story. These factors can generally be.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;- Finding hidden requirements&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;- Environment&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;- Test data&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;- Dependency on other requirement.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Getting these details early helps the story to be prioritised accordingly in the backlog, and allows smooth execution of the story in the iteration.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;QAs also do participate in the iteration planning meeting to help estimating and giving testing perspective to the team to come up with developer estimate. QAs have big role to play in the iteration planning, as some of the implicit requirements gets escalated by&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;QAs.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;a) &lt;/strong&gt;&lt;strong&gt;&lt;span style="text-decoration: underline; "&gt;QA Activities In  The Iteration&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Once QAs are happy with the acceptance criteria of the story they can work towards defining the acceptance tests for the story. Acceptance tests are requirements in terms of a test, so that it can be executed before hand to know what is expected out of requirements. These acceptance tests are generally automated and used by developers to drive development,  Acceptance tests should not be covering too many corner case scenarios as this would create unnecessary delay in getting the story done by the developers and may end up in producing too many similar automated tests.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;People often fail to understand that acceptance testing in agile projects is different from traditional projects, as in agile projects it happens before the software is delivered unlike traditional project where it happens at end of the software lifecycle. In agile projects acceptance tests are generally automated so that it can be run as regression tests.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Automation testing is really important for any agile project as frequent builds requires a short feedback cycle hence regression testing needs to be quick and accurate. Automation testing is different from traditional automation testing. In agile projects automation testing is practised by all levels be it Developers, QAs or BAs. It does not necessarily mean that everyone needs to be writing the test code. Involvement from everyone on automation testing increases the relevance of the tests and often helps in finding and implementing the right tests.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;It’s always been debatable as who owns the automation tests in agile projects? And for me it’s more of a responsibility then a role.  In my experience most effective automation tests are achieved when Dev/QAs work together on it.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;&lt;em&gt;Use Automation to the advantage not for sake of doing it&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Automation in agile is quiet controversial, as people try to automated everything and end up in a trap of having a long feedback cycle. Automation is meant for giving early feedback on the latest code, and automation should be limited to what is worth Automating and what is not. Every automation test written has a cost against it. The cost can be seen as&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;Cost of continuously running it (Increased feedback cycle).&lt;/strong&gt; This cost of automation should be compared against cost of not running it. So, a question needs to be asked what if a test is not automated. What we going to lose, what would be the cost of fixing the stuff around the code for which we are losing the coverage? Is it cheaper to test manually?&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;And it might not be straight forward finding the worth of a test. It’s a contextual decision and also depends on size of the project and number of people involved in it. Simply putting this in other words mean Longer feedback cycle = More people losing time in getting instant feedback.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;&lt;span style="text-decoration: underline; "&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;The typical QA activities in the iteration are to continuously measure the Quality of the software. QAs participate in the story handover to the developers to make them understand the testing requirements of the story, so that developers are enabled for &lt;strong&gt;Test Driven Development&lt;/strong&gt;(TDD) for their code, which is a backbone for agile development practices. Also handing over the acceptance tests and making developers understand about the testability aspect of the story often catches the most common defects even before they are delivered to QAs.  These activities require a high level of communication with the developer and BAs to clarify things on the fly and making sure we are building the product right first time. QAs may also have to pair with developers work together on the story or tests for the story to get the better understanding of the requirements.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;QAs try to resolve as much issue before hand by actively participating in the overall process.  It also becomes imperative that once the story is delivered, it is tested properly with all the aspects and ideally on a proper environment.  Once the QAs are happy with the stories/requirements, they sign off that piece of work in a typical manufacturing way and hand it over for further process in the line which generally a showcase to the business.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;As a QA it is also important to think beyond the written requirements and to have a desire to break attitude, and that’s where QAs do &lt;strong&gt;exploratory testing&lt;/strong&gt; to execute ‘out of the box’ scenarios and also do negative testing to make sure software is really robust. Exploratory testing is a not at all about executing a pre defined testing scenarios, it is more of exploring of software beyond test cases but at the same time keeping the focus around some specific requirements.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;I have tried covering most of the aspects of the basic QA activities of a QA in an agile project, however it is not limited to these activities and QAs should play more collaborative role as and when needed to be able to provide more visible and transparent feedback.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-1167591833006765667?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/1167591833006765667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/08/testers-perspective-on-agile-projects.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/1167591833006765667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/1167591833006765667'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/08/testers-perspective-on-agile-projects.html' title='A Tester’s perspective on agile projects'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2474345329883490833</id><published>2009-07-19T04:47:00.000-07:00</published><updated>2009-07-19T04:48:35.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QTP Agile testing'/><category scheme='http://www.blogger.com/atom/ns#' term='QTP in Agile'/><category scheme='http://www.blogger.com/atom/ns#' term='Automation in agile projects'/><title type='text'>Why QTP is anti agile?</title><content type='html'>&lt;span class="Apple-style-span"   style=" color: rgb(51, 51, 51);  line-height: 18px; font-family:'Trebuchet MS';font-size:12px;"&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;I want to make few points quickly in favor of that.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;1) No support for programming languages like Java, .Net so that it allows it to be used as an acceptance testing tool.&lt;br /&gt;2) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VBSCript&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;doesn&lt;/span&gt;’t help in everyone’s participation in the automation process, which is a key in agile projects.&lt;br /&gt;3) No &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;IDE&lt;/span&gt; support : &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;QTP&lt;/span&gt;’s &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;IDE&lt;/span&gt; is no way near Ideal hence makes maintainable a tough battle.&lt;br /&gt;4) NO support for standard &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;IDE&lt;/span&gt; like eclipse //&lt;br /&gt;5) Multi browser support is limited/&lt;br /&gt;6) Cant execute scripts on Linux and Mac platforms.&lt;br /&gt;7) No continuous integration support, makes it rally tough to be used as an acceptance testing tool.&lt;br /&gt;&lt;img src="http://www.pankajnakhat.com/wp-includes/images/smilies/icon_cool.gif" alt="8)" class="wp-smiley" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(211, 234, 243); border-right-color: rgb(211, 234, 243); border-bottom-color: rgb(211, 234, 243); border-left-color: rgb(211, 234, 243); padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; " /&gt; And last but not the least : Bloody expensive &lt;img src="http://www.pankajnakhat.com/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(211, 234, 243); border-right-color: rgb(211, 234, 243); border-bottom-color: rgb(211, 234, 243); border-left-color: rgb(211, 234, 243); padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; " /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-2474345329883490833?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2474345329883490833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/07/why-qtp-is-ati-agile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2474345329883490833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2474345329883490833'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/07/why-qtp-is-ati-agile.html' title='Why QTP is anti agile?'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3572417959692402351</id><published>2009-04-29T07:23:00.001-07:00</published><updated>2009-04-29T15:05:46.509-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twist V1.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist Testing tool'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist GA'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist Thoughtworks'/><title type='text'>Twist GA V1.0 - First look</title><content type='html'>I had a first &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;look&lt;/span&gt; at Twist V1.0 and it looks impressive and stable.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are my findings.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) After I installed, I tried installing the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;subclipse&lt;/span&gt; (After little bitof  struggle, I figured out that you need to de select the 'Revision graph module' from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;subclipse&lt;/span&gt;, and then you can move ahead &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;successfully&lt;/span&gt; with the installation&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) As soon as I checked out my old Test suite ( created from Twist beta), it asked me to upgrade the project.  It has a backup projecy feature now. But I didn't do any backup and moved ahead with the upgrade, process was quick and smooth.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Executed&lt;/span&gt; one of the scenarios and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;worked&lt;/span&gt; smoothly.  so far so great.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One quick &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;noticeable&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;change&lt;/span&gt; is speed of execution of tests and it looks much faster and smoother in V1.0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4) The Tag management featured is quiet good, now I can manage tags of multiple tests in one go.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5) Now it preserves the test execution history if tests are executed from the editor, which was really lacking in the previous versions. A Great feature to have.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Features I  have not tried so f&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;ar&lt;/span&gt;  :  Recording, Rules table and Context but I am sure it must be good.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But overall I am delighted.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3572417959692402351?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3572417959692402351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/04/twist-ga-v10-first-look.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3572417959692402351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3572417959692402351'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/04/twist-ga-v10-first-look.html' title='Twist GA V1.0 - First look'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-6454261782082209033</id><published>2009-04-24T11:37:00.000-07:00</published><updated>2009-04-24T11:39:11.362-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GA'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><category scheme='http://www.blogger.com/atom/ns#' term='Automation in agile projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><title type='text'>Twist GA - Update</title><content type='html'>Twist is going GA on 27th April.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Waiting eagerly for this release as it should be a much stable release. More feedback , once I give it a go..&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-6454261782082209033?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/6454261782082209033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/04/twist-ga-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6454261782082209033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6454261782082209033'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/04/twist-ga-update.html' title='Twist GA - Update'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3521295340243843056</id><published>2009-04-08T14:18:00.000-07:00</published><updated>2009-04-08T14:19:37.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='PPT'/><title type='text'>Agile Testing a basic guide</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); font-family: Arial; font-size: 12px; white-space: pre; "&gt;&lt;div style="width:425px;text-align:left" id="__ss_1266268"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/pnakhat/agile-testing-1266268?type=presentation" title="Agile Testing"&gt;Agile Testing&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=agiletesting-090408161547-phpapp01&amp;amp;stripped_title=agile-testing-1266268"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=agiletesting-090408161547-phpapp01&amp;amp;stripped_title=agile-testing-1266268" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/pnakhat"&gt;pnakhat&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3521295340243843056?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3521295340243843056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/04/agile-testing-basic-guide.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3521295340243843056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3521295340243843056'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/04/agile-testing-basic-guide.html' title='Agile Testing a basic guide'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2345705046807071167</id><published>2009-04-04T16:11:00.000-07:00</published><updated>2009-04-08T14:01:02.797-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Automation in agile projects'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><title type='text'>Modern day webapps - How to approach automation testing</title><content type='html'>&lt;div&gt;&lt;div&gt;Web apps are getting complex with browsers getting rich in behavior at the same time diverse from diff browsers. Technologies like Ajax and J-query has given a new dimensions to web apps. But at the same time automation testing getting difficult with rich javascript pages . &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How do one cope up with this. Multiple browser, different behaviors and rich client specific technologies to write and maintain tests.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Web automation needs to be maintainable and scalable, but how does one keep these factors in mind coping up with browser's incompatibility.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Select a tool which behaves with different browsers naively.&lt;/div&gt;&lt;div&gt;2) Write scripts driven by user behavior.&lt;/div&gt;&lt;div&gt;3) Avoid using browser specific object identification. (e.g&gt; X- Path)&lt;/div&gt;&lt;div&gt;4) Keep scripts modular and small, so that its easy to write and maintain.&lt;/div&gt;&lt;div&gt;5) Don't hack the stuff to make something work (E.g&gt; using javascript to do stuff - like cookie editing), I would rather avoid doing that, as brittle scripts may lead to serious disaster, especially in agile environment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-2345705046807071167?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2345705046807071167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/04/modern-day-webapps-how-to-approach.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2345705046807071167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2345705046807071167'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/04/modern-day-webapps-how-to-approach.html' title='Modern day webapps - How to approach automation testing'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-503828334182542816</id><published>2009-04-02T21:48:00.000-07:00</published><updated>2009-04-04T14:02:00.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Selenium Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdriver'/><title type='text'>Selenium Vs Webdriver</title><content type='html'>&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WebDriver&lt;/span&gt; is a java based libraries to write automation tests for web applications.&lt;div&gt;&lt;a href="http://code.google.com/p/webdriver/"&gt;http://code.google.com/p/webdriver/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;This an awesome driver to test application for various reasons. This is also a better alternative for selenium. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Webdriver&lt;/span&gt; works on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Principal&lt;/span&gt; of talking to browser &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;naively&lt;/span&gt;, unlike selenium which works through proxy using javascript. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One thing is obvious immediately is 'speed', &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;webdriver&lt;/span&gt; tests run much faster then selenium, reason explained above.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Selenium         &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;                  &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;             &lt;/span&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebDriver&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Works on proxy                                       Works &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;natively&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; with Browser&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Supports Major browsers                       Supports IE, &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Firefox&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; , &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;HtmlUunit&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; and &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Iphone&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;API&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  is quiet complex                               Simple &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;API&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Supports multiple language                     Only Java at the moment&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;to write tests&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  -                                                                    Supports &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;HtmlUnit&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; driver to run tests faster&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Webdriver&lt;/span&gt; is going to become Selenium 2.0 eventually. I personally think, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;webdriver&lt;/span&gt; is next big thing in web functional testing after selenium.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks to Simon Stewart for this awesome tool.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-503828334182542816?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/503828334182542816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/04/selenium-vs-webdriver.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/503828334182542816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/503828334182542816'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/04/selenium-vs-webdriver.html' title='Selenium Vs Webdriver'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2918509504092669672</id><published>2009-03-31T13:32:00.000-07:00</published><updated>2009-04-01T01:16:30.703-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Selenium Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Selenium interview questions'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><title type='text'>Selenium Interview - A basic guide</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:'Times New Roman';"&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;div&gt;One of my friend recently had to attend an interview for a company for a selenium - tester job profile. Then he asked me, what should I prepare for? Then I thought of putting together this post, as selenium is now an industry accepted tool.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; -webkit-text-decorations-in-effect: underline; "&gt;Simple explanations&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; -webkit-text-decorations-in-effect: underline; "&gt;What is Selenium  ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Its a web testing tool.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; -webkit-text-decorations-in-effect: underline; "&gt;How it works?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It works through a proxy, using javascript to driver the tests.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; -webkit-text-decorations-in-effect: underline; "&gt;What browsers does it support?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Firefox&lt;/span&gt; - 3.0/2.0&lt;/div&gt;&lt;div&gt;IE         - 7/8&lt;/div&gt;&lt;div&gt;Safari&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; -webkit-text-decorations-in-effect: underline; "&gt;What programming languages can you use to write the tests?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; font-weight: bold; -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span"   style="  font-weight: normal; line-height: 16px; font-family:verdana;font-size:13px;"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style="text-align: left;   font-family:verdana, sans-serif;font-size:small;"&gt;Language&lt;/th&gt;&lt;th   style="text-align: left;   font-family:verdana, sans-serif;font-size:small;"&gt;Selenium &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IDE&lt;/span&gt;&lt;/th&gt;&lt;th face="verdana, sans-serif" size="small" style="text-align: left;   "&gt;Selenium Remote Control&lt;/th&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;Selenium Core&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;C#&lt;/th&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Generate code&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Library ("driver") support&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;n/a&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;Java&lt;/th&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Generate code&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Library ("driver") support&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;n/a&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;Perl&lt;/th&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Generate code&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Library ("driver") support&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;n/a&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;&lt;/th&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Generate code&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Library ("driver") support&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;n/a&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;Python&lt;/th&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Generate code&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Library ("driver") support&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;n/a&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th style="text-align: left; font-family: verdana, sans-serif; font-size: small; "&gt;Ruby&lt;/th&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Generate code&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;Library ("driver") support&lt;/td&gt;&lt;td style="font-family: verdana, sans-serif; font-size: small; "&gt;n/a&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; font-weight: bold; -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; font-weight: bold; -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="text-decoration: underline; font-weight: bold; -webkit-text-decorations-in-effect: underline; "&gt;Preparing for Interview&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; text-decoration: underline;"&gt;Tips :&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Understand the basics right :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-  Basics of Web testing&lt;/div&gt;&lt;div&gt;-  How selenium works?  -  &lt;a href="http://seleniumhq.org/about/how.html"&gt;http://seleniumhq.org/about/how.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;-  Selenium &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;API&lt;/span&gt;  - &lt;a href="http://seleniumhq.org/documentation/core/reference.html#actions"&gt;http://seleniumhq.org/documentation/core/reference.html#actions&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) How selenium &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Indentifies&lt;/span&gt; web element on the page?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- By Id or Name or Using an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Xpath&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Different&lt;/span&gt; Flavours of selenium&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Selenium Core&lt;/div&gt;&lt;div&gt;- Selenium RC&lt;/div&gt;&lt;div&gt;- Selenium Grid&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4) Selenium  - How to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;IDE&lt;/span&gt;?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5) Is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;IDE&lt;/span&gt; good enough to automate your tests?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6) What are the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;practical&lt;/span&gt; issues, while using selenium?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7) Selenium Vs Other tools (Like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;QTP&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8) &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;Multi browser&lt;/span&gt; testing with selenium (Or Selenium Grid)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-2918509504092669672?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2918509504092669672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/03/one-of-my-friend-recently-had-to-attend.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2918509504092669672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2918509504092669672'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/03/one-of-my-friend-recently-had-to-attend.html' title='Selenium Interview - A basic guide'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-5603373494791314413</id><published>2009-03-30T12:46:00.001-07:00</published><updated>2009-03-30T13:16:47.534-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Automation in agile projects'/><title type='text'>Automation Testing - Traditional to Agile</title><content type='html'>I always wonder, how the face of automation testing has changed over the years.  Automation testing has always been perceived as post development, costly activity to be done by specialists.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Agile methodology has broken all the barriers/Myths of automation testing. From a heavy weight , System level , Regression oriented  process to Acceptance oriented, all level light weight process.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In traditional projects, automation is only used as regression testing tool, and always perceived as to be done after "Stabilisation of the product"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Automation in agile projects becomes inevitable as its a mean to reduce the feedback cycle. it reduced the regression cycle, and helps producing quality code with higher pace. it also helps system to be robust all the time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unlike traditional project automation, which is only participated by specialist, in agile projects automation is practiced at all levels (Unit, System, Integration) by all stake holders of the project in one form or another. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Agile methodology,  automation tests are treated and take care as part of the overall &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;source&lt;/span&gt; code. It needs the same love and care as any other piece of code in the project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Automation in agile project is not just about automating the test cases, but automation is any mean to convert manual process to reduce the time waste or to add value in overall process.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&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/15214480-5603373494791314413?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/5603373494791314413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/03/automation-testing-traditional-to-agile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/5603373494791314413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/5603373494791314413'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/03/automation-testing-traditional-to-agile.html' title='Automation Testing - Traditional to Agile'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3276440986378078661</id><published>2009-03-20T09:44:00.000-07:00</published><updated>2009-03-23T09:03:18.067-07:00</updated><title type='text'>Testing - When, Where and How on agile projects....</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I think this question haunts most of the agile &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;QA's&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; mind. I am going to wrote something in this post from my previous experience.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;As agile is not a fixed set of processes, so its is imperative to be agile in testing as well. However, some practices help..but again everything is contextual.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;1) Adding value early&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; : Agile testing is all about giving feedback early, not necessarily only by testing the software, but in different ways as well.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;  a) Looking at requirements for &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Clarity &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;and &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Testability  - &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;QAs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; really need to &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;look&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; at the requirement / stories upfront to figure out that requirement are  &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;unambiguous &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;and &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;testable&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Unambiguous &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.  &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I think unambiguous in agile has little different context compared to typical waterfall project.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- Requirement &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;should&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; be small enough to make sense in the context&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- Acceptance &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;criteria&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; (Stories are generally broken in to acceptance &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;criteria&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;) should not be duplicate or overlapping from different stories.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;However, doing that can be really difficult and can &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;only&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; be achieved with really good communication between Dev/BA/&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Testable : &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Testability&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; aspect of the story requires &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;QA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; to scan through the story to see what needs to be done to test the story. These factors can &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;generally&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; be.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- Finding hidden requirements&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- Environment&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- Test data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;- Dependency on other requirement.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Getting these details early helps the story to be &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;prioritised&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; accordingly in the backlog, and allows smooth execution of the story in the iteration.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;2) Use Automation to the advantage not for sake of doing it&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Automation in agile is quiet controversial, as people try to automated everything and end up having a long feedback cycle.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Automation is meant for giving early feedback on the latest code, and automation should be limited to what is worth Automating and what is not.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Every &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;automation&lt;/span&gt;&lt;/span&gt; test written has a cost &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;against&lt;/span&gt;&lt;/span&gt; it. The cost can be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;seen&lt;/span&gt;&lt;/span&gt; as&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Cost of continuously running it (Increased feedback cycle). &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; This cost should be compared against cost of not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;runing&lt;/span&gt;&lt;/span&gt; it. So, a question needs to be asked what if a test is not written? what we gonna lose, what would be the cost of fixing the stuff around the code for which we are losing the coverage?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;And this might not be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;straight&lt;/span&gt; forward finding the worth of a test. Its a contextual decision and also depends on size of the project and number of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;people&lt;/span&gt; involved in it. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Simply putting this in other words mean : &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(153, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Longer feedback cycle = More people losing time in getting instant feedback.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I will write posts on - How to write automated acceptance tests in my future posts.....&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;This post to be continued&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3276440986378078661?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3276440986378078661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/03/testing-when-where-and-how-on-agile.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3276440986378078661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3276440986378078661'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/03/testing-when-where-and-how-on-agile.html' title='Testing - When, Where and How on agile projects....'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-1555810753755097081</id><published>2009-03-20T09:43:00.000-07:00</published><updated>2009-03-20T09:44:14.149-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><title type='text'>Twist - Still waiting for GA</title><content type='html'>I am still waiting for Twist GA to continue my series on Twist features.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Till then I want to keep my mouth shut...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&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/15214480-1555810753755097081?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/1555810753755097081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/03/twist-still-waiting-for-ga.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/1555810753755097081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/1555810753755097081'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/03/twist-still-waiting-for-ga.html' title='Twist - Still waiting for GA'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-5186755654231068466</id><published>2009-03-10T14:02:00.000-07:00</published><updated>2009-03-10T14:12:26.141-07:00</updated><title type='text'>How much to test?</title><content type='html'>That's a question needs to be answered very early in any agile project. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Testing costs time and money, and no doubts adds value. Then how do we get a balanced approach on testing the user stories..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These questions should be answered while writing automated test for Acceptance critera&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Is it too low level of testing...?&lt;/div&gt;&lt;div&gt;  - Do I really need to check a particular link is present or not...?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) Are there repeating tests with some diversity?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Can it be compromised over quick turnaround of the build?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) How do we mitigate the risk of writing less tests?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Can we make tests precise ?&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Can we not automate unit level tests in Accpetance test.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To be continued...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-5186755654231068466?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/5186755654231068466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/03/how-much-to-test.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/5186755654231068466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/5186755654231068466'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/03/how-much-to-test.html' title='How much to test?'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3141749324053354835</id><published>2009-03-02T14:17:00.000-08:00</published><updated>2009-03-02T14:21:04.270-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><title type='text'>Twist - Using other drivers</title><content type='html'>Twist can be used with other available drivers in Java for web .  W ehave recently tried using webdriver to migrate some of our tests and effort was painless. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Twist allows injection of other drivers using spring. So, that means without changing the definition of the scenario the underlying code can be chaned.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, Selenium 2.0 is going to be webdriver primarily, so seems twist will be even powerful in coming days.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3141749324053354835?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3141749324053354835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/03/twist-using-other-drivers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3141749324053354835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3141749324053354835'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/03/twist-using-other-drivers.html' title='Twist - Using other drivers'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2768270984576821802</id><published>2009-01-23T23:59:00.000-08:00</published><updated>2009-01-24T00:17:52.664-08:00</updated><title type='text'>Using your customised messages in Twist assertions.</title><content type='html'>I am sure many of you would have felt the need of what I am going to write. Since, Twist uses Junit assertions methods for the assertions, so as it is dependent on Junit to pass on the error messages in case of failures.&lt;br /&gt;&lt;br /&gt;Take an  example where I am verifying a value of textbox name  "Username" and use a Jnunit assertion like&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;assertEquals (Expected, seleneium.getText("Username"));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In case this step fails, it is going to show like ..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;"Expected ['xyz']&lt;/span&gt;&lt;xyz&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt; but was  ['yxz']"&lt;/span&gt;&lt;yxz&gt;, but this does not give me any information of the application context.&lt;br /&gt;&lt;br /&gt;This becomes even more difficult, when we have a large test suite of big tests and looking at error message it is dificult to figure out, what failed exactly?&lt;br /&gt;&lt;br /&gt;So, I would like to see an error message for the above example like -&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;"Username text expected &lt;/span&gt;&lt;xyz,&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;[xyz], but was [yxz]"&lt;/span&gt;, and this can be achieved by passing a context (String parameter), to the assertEquals method and then it will generate an error message with the context (Sring parameter). SO, I change the above bit of code to look like this....&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;assertEquals ("Username text", Expected, seleneium.getText("Username"));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And when this assertion fails, it will generate the error message in more meaning way, and also Twist HTML report will also change accordingly.&lt;br /&gt;&lt;br /&gt;This is the simplest way we could do it so far, but I am sure Twist team is working on having its own assertion libraries and I am looking forward to that.&lt;/xyz,&gt;&lt;/yxz&gt;&lt;/xyz&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-2768270984576821802?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2768270984576821802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/01/using-your-customised-messages-in-twist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2768270984576821802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2768270984576821802'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/01/using-your-customised-messages-in-twist.html' title='Using your customised messages in Twist assertions.'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-692074822110737372</id><published>2009-01-23T23:56:00.001-08:00</published><updated>2009-01-23T23:59:26.954-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist beta'/><title type='text'>Project Migration in new Twist Beta</title><content type='html'>If you are using an older version of Twist Beta and want to migrate your test, you need not worry too much about it.&lt;br /&gt;&lt;br /&gt;As soon as you open your project in the new Twist Beta, it will ask you to migrate the project. However, there is a manual option also available to migrate the project. (Right click on Twist project -&gt; Migrate ).&lt;br /&gt;&lt;br /&gt;It will update applicationcontext-suite.xml and twist.properties files, also it will add a folder names twist-conf with three configuration files in it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-692074822110737372?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/692074822110737372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/01/project-migration-in-new-twist-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/692074822110737372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/692074822110737372'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/01/project-migration-in-new-twist-beta.html' title='Project Migration in new Twist Beta'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2294401481488372468</id><published>2009-01-13T08:19:00.000-08:00</published><updated>2009-03-30T13:19:41.410-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist beta'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><title type='text'>New Twist Beta Update</title><content type='html'>We have upgraded &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ourselve&lt;/span&gt; to the new Twist Beta.&lt;br /&gt;&lt;br /&gt;And this comes with some cool features.&lt;br /&gt;&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Inline&lt;/span&gt; Reporting&lt;br /&gt;&lt;br /&gt;- Proxy settings&lt;br /&gt;&lt;br /&gt;I have already spoken about this in my  previous posts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-  Automatic variable assignment to an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;UI&lt;/span&gt; object while recording.&lt;br /&gt;               &lt;br /&gt;&lt;br /&gt;The way we have Incorporated the object repository concept in Twist by creating a single Java file to hold all the object information.&lt;br /&gt;&lt;br /&gt;Rather then using object definitions directly in the script, which makes them brittle and hard to manage, we use the objects from the repository.  If something changes about that object, we know where exactly  to find that object, and also that avoids making thousand changes if that particular object is being used quiet a lot.&lt;div&gt;&lt;br /&gt;And last not the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;least, recorder&lt;/span&gt; seems to be improved in the new Beta version and its really stable so far.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-2294401481488372468?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2294401481488372468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/01/new-twist-beta-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2294401481488372468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2294401481488372468'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/01/new-twist-beta-update.html' title='New Twist Beta Update'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-8488814445920780985</id><published>2009-01-08T08:35:00.000-08:00</published><updated>2009-01-08T08:36:27.356-08:00</updated><title type='text'>Twist - Bits - How  to check selected value of a dropdown?</title><content type='html'>assertEquals(value, selenium.getSelectedLabel(locator));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-8488814445920780985?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/8488814445920780985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2009/01/twist-bits-how-to-check-selected-value.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/8488814445920780985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/8488814445920780985'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2009/01/twist-bits-how-to-check-selected-value.html' title='Twist - Bits - How  to check selected value of a dropdown?'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-8271622849336768384</id><published>2008-12-19T07:37:00.000-08:00</published><updated>2008-12-19T07:50:57.551-08:00</updated><title type='text'>Twist creating a Generic Checkpoint Method</title><content type='html'>public void applyCheckpoint(String propname, String locator,String valueToVerify)&lt;br /&gt;    {&lt;br /&gt;       &lt;br /&gt;        String locatorWithAttribute =locator+"@"+propname;&lt;br /&gt;       &lt;br /&gt;        Assert.assertEquals(selenium.getAttribute(locatorWithAttribute), valueToVerify);&lt;br /&gt;       &lt;br /&gt;       &lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-8271622849336768384?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/8271622849336768384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-creating-generic-checkpoint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/8271622849336768384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/8271622849336768384'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-creating-generic-checkpoint.html' title='Twist creating a Generic Checkpoint Method'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3520344819777539686</id><published>2008-12-18T09:04:00.000-08:00</published><updated>2009-01-21T07:37:22.508-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twist proxies'/><title type='text'>Twist can now talk to Proxies</title><content type='html'>May be little early to post as official build is not GA yet.&lt;br /&gt;&lt;br /&gt;But I got to test the latest build, and now Twist can work on external proxies. :)&lt;br /&gt;&lt;br /&gt;However, there are few changes needs to be mad &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;eto&lt;/span&gt; &lt;span style="font-weight: bold; font-style: italic;"&gt;twist.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;propeerties&lt;/span&gt; file&lt;/span&gt; and &lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;applicationContext&lt;/span&gt;-suite.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;xml&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;1) Changes to twist.properties&lt;br /&gt;&lt;ul&gt;&lt;li&gt;selenium.server.options = -port 4545 -&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;avoidProxy&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;(Default behavior is, twist works on proxy injection mode. Change that to have above code)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;selenium.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;browserLauncher&lt;/span&gt;=*&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;firefox&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;(Default behavior of Twist is to record on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Firefox&lt;/span&gt; on *&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;pifirefox&lt;/span&gt; mode), change that to have *&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;firefox&lt;/span&gt;.&lt;ul&gt;&lt;li&gt;selenium.browserURL=http://www.xyz.co.uk&lt;/li&gt;&lt;/ul&gt;(Default setting are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;localhost&lt;/span&gt;:4545, however in order to work with proxies enter your application URL here, since twist would not record if you try to change the domain from URL X to URL Y while recording)&lt;br /&gt;&lt;br /&gt;Though I personally &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;beleive&lt;/span&gt; user should not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;worrry&lt;/span&gt; about setting the URL at settings level, as this is contextual thing and I have to switch this setting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;everytime&lt;/span&gt; I need to record on a new application. (Little bit of Pain).&lt;br /&gt;&lt;br /&gt;However, I am happy to take this pain in lieu of having Twist working with proxies at the moment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to set the Proxy settings ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Changes to&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;applicationContext&lt;/span&gt;-suite.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;xml&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Change the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;follwing&lt;/span&gt; bean tags&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bean id="&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;systemproperty&lt;/span&gt;" &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     "entry key="http.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;proxyHost&lt;/span&gt;" value="www.proxy.url""&lt;br /&gt;     "entry key="http.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;proxyPort&lt;/span&gt;" value="8080""&lt;br /&gt;     "entry key="http.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;proxyUser&lt;/span&gt;" value="""&lt;br /&gt;     "entry key="http.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;proxyPassword&lt;/span&gt;" value="""&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Sorry for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;unformatted&lt;/span&gt; XML, as it might not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;appaer&lt;/span&gt; in it's original form)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3520344819777539686?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3520344819777539686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-can-now-talk-to-proxies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3520344819777539686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3520344819777539686'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-can-now-talk-to-proxies.html' title='Twist can now talk to Proxies'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-6331677778442075224</id><published>2008-12-17T05:49:00.000-08:00</published><updated>2008-12-17T06:10:22.935-08:00</updated><title type='text'>Twist - Creating a Google Test</title><content type='html'>- Create a Twist  Project, by clicking on File - New - Twist Project.&lt;br /&gt;- A wizard will be opened, Enter a project name and choose advanced option to  selenium driver. (That's the driver needed for web testing)&lt;br /&gt;&lt;br /&gt;- Leave other options unchanged, if you want selenium server to run on another port change the port number.&lt;br /&gt;&lt;br /&gt;Once Project is created , It will ask you to create a new scenario, enter some name to it and click on Finish.&lt;br /&gt;&lt;br /&gt; To make it a executable test, one need to create a work flow.&lt;br /&gt;&lt;br /&gt;- Click on Work flow button on top of the test, it will add a blank scenario something like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;New Work flow:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A bullet point will also be inserted, specifying that as scenario step.&lt;br /&gt;&lt;br /&gt;- Change the scenario name if needed and then put the cursors on scenario name to make it executable.&lt;br /&gt;- Click "Ctrl+1" to create a workflow (That is java class with the workflow name), after that is done the color and font style of the workflow name will be changed to Black and Normal from Italic respectively. It denotes that workflow has been created, however there are no tests specified in that.&lt;br /&gt;&lt;br /&gt;- Now create test steps - Create one test step each against a bullet point.&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;Open website  "www.google.co.uk"&lt;/li&gt;&lt;li&gt;Enter search criteria "Testing"&lt;/li&gt;&lt;li&gt;Verify Search Result "Testing"&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Once Testing steps are defined, one need to elaborate them to make it executable.&lt;br /&gt;&lt;br /&gt;Sale rule as we did with workflow, put the cursor on the step name and click "Ctrl+1", it will give two options&lt;br /&gt;&lt;br /&gt;1) To create the blank method in the Java class created above.&lt;br /&gt;2) To record the method using "Firefox " (Does not support any other browser for recording at the moment).&lt;br /&gt;&lt;br /&gt;If option 2) is selcted then a browser is  launched and user can perform actions ..&lt;br /&gt;&lt;br /&gt;Lets record out first step - 1) Open website "www.google.co.uk"&lt;br /&gt;&lt;br /&gt;Once the browser is launched, type "www.google.co.uk", and then to mark the recording finished click on "Done" on recording pane (Can be seen on right hand side).&lt;br /&gt;&lt;br /&gt;Now, Twist must  have inserted some code for this methods 1) Open website "xxx"&lt;br /&gt;&lt;br /&gt;Code can be seen by pressing "F3" on the method name, it will then navigate to the specific method , by highlighting the method in the code.&lt;br /&gt;&lt;br /&gt;That's what we get in the code..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    public void openWebsite(String string1) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        selenium.open("www.google.co.uk");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Now, this method can be made reusable by using parameter string1, that is the google url in the test, instead of using hard coded value. So, now the method would look like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;    public void openWebsite(String url) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        selenium.open("url);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;Now, this method can be used to open any URL..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-6331677778442075224?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/6331677778442075224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-creating-google-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6331677778442075224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6331677778442075224'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-creating-google-test.html' title='Twist - Creating a Google Test'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3628708474050733199</id><published>2008-12-11T09:56:00.000-08:00</published><updated>2008-12-11T10:04:39.246-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Automation'/><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Testing'/><title type='text'>Twist - Next Step</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Wzmu4gkZDx4/SUFVoBokkZI/AAAAAAAAABU/vxDdmm5iEng/s1600-h/TwistAutoSuggest.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_Wzmu4gkZDx4/SUFVoBokkZI/AAAAAAAAABU/vxDdmm5iEng/s320/TwistAutoSuggest.JPG" alt="" id="BLOGGER_PHOTO_ID_5278594384376664466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Today we moved our Twist project to SVN, and let me admit that movement to SVN and checking out the  project was pretty smooth.&lt;br /&gt;&lt;br /&gt;However, we did see an issue, we had changed the project name while checking out the project. In that case it would not show the Auto suggestion for already existing methods. (See the Pic..).&lt;br /&gt;&lt;br /&gt;Twist allows you to reuse any existing action from across the tests. For e.g&gt; If i had defined a a method to open a URL for my tests, I can simply reuse it with passing different URL as parameter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In my next post I will explain how to create a basic test in twist.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3628708474050733199?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3628708474050733199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-next-step.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3628708474050733199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3628708474050733199'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-next-step.html' title='Twist - Next Step'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Wzmu4gkZDx4/SUFVoBokkZI/AAAAAAAAABU/vxDdmm5iEng/s72-c/TwistAutoSuggest.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-6852757339074886711</id><published>2008-12-10T09:54:00.000-08:00</published><updated>2008-12-10T10:05:08.223-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twist'/><title type='text'>Twist - Learnings</title><content type='html'>We have started looking out to  use Twist for this project we are currently doing for a client.&lt;br /&gt;&lt;br /&gt;Twist is a tool for Automated acceptance testing by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ThoughtWorks&lt;/span&gt;. The power of Twist  is in the simplicity of the tool. Twist is built upon the Eclipse &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IDE&lt;/span&gt; which is a Java &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;IDE&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;One can write the Tests in English like syntax and then it can be extended to define the logic behind these &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;English&lt;/span&gt; sentences.&lt;br /&gt;It allows you to reuse the previously used &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;sen tenses&lt;/span&gt;/test components in a very easy and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Intuitive&lt;/span&gt; way.&lt;br /&gt;&lt;br /&gt;I will &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;keep&lt;/span&gt; posting my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;leanings&lt;/span&gt; on this..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-6852757339074886711?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/6852757339074886711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-learnings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6852757339074886711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6852757339074886711'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/twist-learnings.html' title='Twist - Learnings'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-5184093269238255502</id><published>2008-12-05T07:03:00.000-08:00</published><updated>2008-12-05T07:08:58.874-08:00</updated><title type='text'>Agile Testing - Few facts</title><content type='html'>&lt;ul&gt;&lt;li&gt;In an agile team Quality is “everyone's responsibility”.&lt;/li&gt;&lt;li&gt;QA team continuously measures the Quality and provide the feedback.&lt;/li&gt;&lt;li&gt;Role of QA changes many times within the life cycle of the Iteration.&lt;/li&gt;&lt;li&gt;Test Automation is used to eliminate the time waste and Increase the Test coverage for “Any time Regression”.&lt;/li&gt;&lt;li&gt;Automation helps QA’s to focus on exploratory testing, as one can focus on other important stuffs. &lt;/li&gt;&lt;li&gt;Quality is not added later, it evolves gradually.&lt;/li&gt;&lt;/ul&gt;&lt;style&gt; &lt;!--tr  {mso-height-source:auto;} col  {mso-width-source:auto;} td  {padding-top:1.0px;  padding-right:1.0px;  padding-left:1.0px;  mso-ignore:padding;  color:windowtext;  font-size:18.0pt;  font-weight:400;  font-style:normal;  text-decoration:none;  font-family:Arial;  mso-generic-font-family:auto;  mso-font-charset:0;  text-align:general;  vertical-align:bottom;  border:none;  mso-background-source:auto;  mso-pattern:auto;} .oa1  {border-top:1.0pt solid white;  border-right:1.0pt solid white;  border-bottom:3.0pt solid white;  border-left:1.0pt solid white;  background:#4F81BD;  mso-pattern:auto none;  vertical-align:top;  padding-bottom:3.6pt;  padding-left:7.2pt;  padding-top:3.6pt;  padding-right:7.2pt;} .oa2  {border-top:3.0pt solid white;  border-right:1.0pt solid white;  border-bottom:1.0pt solid white;  border-left:1.0pt solid white;  background:#D0D8E8;  mso-pattern:auto none;  vertical-align:top;  padding-bottom:3.6pt;  padding-left:7.2pt;  padding-top:3.6pt;  padding-right:7.2pt;} .oa3  {border:1.0pt solid white;  background:#E9EDF4;  mso-pattern:auto none;  vertical-align:top;  padding-bottom:3.6pt;  padding-left:7.2pt;  padding-top:3.6pt;  padding-right:7.2pt;} .oa4  {border:1.0pt solid white;  background:#D0D8E8;  mso-pattern:auto none;  vertical-align:top;  padding-bottom:3.6pt;  padding-left:7.2pt;  padding-top:3.6pt;  padding-right:7.2pt;} --&gt; &lt;/style&gt;  &lt;table style="border-collapse: collapse; width: 377pt;" border="0" cellpadding="0" cellspacing="0" width="503"&gt;  &lt;col style="width: 72pt;" width="96"&gt;  &lt;col style="width: 100pt;" width="133"&gt;  &lt;col style="width: 205pt;" width="273"&gt;  &lt;tbody&gt;&lt;tr style="height: 29.2pt;" height="39"&gt;   &lt;td class="oa1" style="height: 29.2pt; width: 72pt;" width="96" height="39"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: white; font-weight: bold;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa1" style="width: 100pt;" width="133"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: white; font-weight: bold;"&gt;Traditional&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: white; font-weight: bold;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa1" style="width: 205pt;" width="273"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: white; font-weight: bold;"&gt;Agile&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: white; font-weight: bold;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 29.2pt;" height="39"&gt;   &lt;td class="oa2" style="height: 29.2pt; width: 72pt;" width="96" height="39"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt;Change&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa2" style="width: 100pt;" width="133"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Manage &amp;amp; control it&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;(Hard to accommodate)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa2" style="width: 205pt;" width="273"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Change is inevitable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 29.2pt;" height="39"&gt;   &lt;td class="oa3" style="height: 29.2pt; width: 72pt;" width="96" height="39"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt;Planning&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa3" style="width: 100pt;" width="133"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Comprehensive up&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;front design&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa3" style="width: 205pt;" width="273"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Plan as you go&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 29.2pt;" height="39"&gt;   &lt;td class="oa4" style="height: 29.2pt; width: 72pt;" width="96" height="39"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt;Collaboration&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa4" style="width: 100pt;" width="133"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt;Work&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt; alone&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa4" style="width: 205pt;" width="273"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Work with &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Devs&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt; and BAs&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 29.2pt;" height="39"&gt;   &lt;td class="oa3" style="height: 29.2pt; width: 72pt;" width="96" height="39"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt;Hand Offs&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa3" style="width: 100pt;" width="133"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;Formal entrance and&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;exit criteria&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa3" style="width: 205pt;" width="273"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;It’s not a relay race:&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;collaborate&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 29.2pt;" height="39"&gt;   &lt;td class="oa4" style="height: 29.2pt; width: 72pt;" width="96" height="39"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt;Test Automation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa4" style="width: 100pt;" width="133"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;System-level, built by tool specialists,&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;created after the code is “done”&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td class="oa4" style="width: 205pt;" width="273"&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;All levels, built by&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;everyone, an integral&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black; vertical-align: baseline;"&gt;part of the project&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Calibri; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-5184093269238255502?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/5184093269238255502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/agile-testing-few-facts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/5184093269238255502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/5184093269238255502'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/agile-testing-few-facts.html' title='Agile Testing - Few facts'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-6289673479798585379</id><published>2008-12-04T03:19:00.000-08:00</published><updated>2008-12-04T03:23:33.594-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Automation'/><title type='text'>Web Automation - Is as simple as?</title><content type='html'>I have worked on various tools for web automation so far, and I see web automation as a simple mechanism if we break them in to generic actions (Be it any tool/Language).&lt;br /&gt;&lt;br /&gt;I would call them Four basic and only pillars.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;1) Click   - Button, Link, Image&lt;br /&gt;2) Select    Drop down, option, radio etc&lt;br /&gt;3) Navigate  URL&lt;br /&gt;4) Verify   Text (On a page, in a Textbox, in a Table, in a Div , page title)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-6289673479798585379?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/6289673479798585379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/web-automation-is-as-simple-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6289673479798585379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/6289673479798585379'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/web-automation-is-as-simple-as.html' title='Web Automation - Is as simple as?'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-8016013831887382626</id><published>2008-12-03T08:02:00.000-08:00</published><updated>2008-12-04T01:56:02.510-08:00</updated><title type='text'>Mumbai Attacks</title><content type='html'>ऐ दिल हैं मुश्किल जीना यहाँ&lt;br /&gt;ज़रा हट के ज़रा बच के&lt;br /&gt;ये हैं मुंबई मेरी जान&lt;br /&gt;&lt;br /&gt;Means :&lt;br /&gt;&lt;br /&gt;This is really difficult to Live in Mumbai.&lt;br /&gt;Be careful&lt;br /&gt;This is my Mumbai&lt;br /&gt;&lt;br /&gt;Rightly said and it has become increasingly difficult to Live here. Thanks to "resilient" Indian nature (At least that's what we are called by these politicians). &lt;br /&gt;&lt;br /&gt;"Enough is Enough" is the say of the moment and rightly so, we can not keep being mum and letting these politicians play their vote politics.&lt;br /&gt;&lt;br /&gt;People who came on the Boat can be caught, what do we do with these people who came by "Vote".&lt;br /&gt;&lt;br /&gt;"We have proof who these terrorist were", then what are we waiting for, Another attack? I think they lack will power. We definitely don't lack the courage and military power.&lt;br /&gt;&lt;br /&gt;Last few months Mumbai was busy beating Biharis and Bhaiyas. Police was proud of killing Rahul raj (Bihari Youth), same Mumbai police was seen (Not all of them) running around in CST station when these terrorists strike. Mr. Raj thackrey was busy making his vote bank, being "Aamchi Mumbai" well wisher. And on top of that congress was buys proving "Hindu Terrorism" (If at all that exists).&lt;br /&gt;&lt;br /&gt;Mr Thackrey, Please wake up now and think beyond the politics; At least for your "Aamchi Mumbai".&lt;br /&gt;&lt;br /&gt;And I sincerely appeal to Mr Amar Singh to sponsor a advocate for one the live terrorist so that he can add few more votes to his kitty.&lt;br /&gt;&lt;br /&gt;Mr Amitabh bachhan, if you have lost your sleep in Mumbai then I think you should have really commended Mr Amar Singh's act of questioning the Batla house encounter. Don't worry Sir, you will be safe, Lets us worry about common man.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At last I really salute the Army, NSG and Police who did a commendable job fighting the situation out.&lt;br /&gt;&lt;br /&gt;Jai hind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-8016013831887382626?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/8016013831887382626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/mumbai-attacks.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/8016013831887382626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/8016013831887382626'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/mumbai-attacks.html' title='Mumbai Attacks'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2622620875106795705</id><published>2008-12-03T04:57:00.002-08:00</published><updated>2008-12-03T04:59:00.354-08:00</updated><title type='text'>Link to QTP Blog</title><content type='html'>&lt;a href="http://qtpexpert.blogspot.com"&gt;http://qtpexpert.blogspot.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-2622620875106795705?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2622620875106795705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/link-to-qtp-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2622620875106795705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2622620875106795705'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/link-to-qtp-blog.html' title='Link to QTP Blog'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-3085336524165944195</id><published>2008-12-03T04:57:00.001-08:00</published><updated>2008-12-03T04:57:34.784-08:00</updated><title type='text'>QTP for Agile acceptance testing</title><content type='html'>It may sound crazy..but its possible.&lt;br /&gt;&lt;br /&gt;What if you have already got QTP Licenses and you want to use that for Automated acceptance testing.&lt;br /&gt;&lt;br /&gt;There is no second doubt that QTP is a very robust and easy to use, and uses standard VBScript for the scripts.&lt;br /&gt;&lt;br /&gt;QTP support launching of the Testsuite using commoand line and may very well be used for cruise integration, obviously not for regular builds. However, using QTP for nightlt build is not a bad idea at all.&lt;br /&gt;&lt;br /&gt;I have tried it once in a project and it works well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15214480-3085336524165944195?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/3085336524165944195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/qtp-for-agile-acceptance-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3085336524165944195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/3085336524165944195'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/qtp-for-agile-acceptance-testing.html' title='QTP for Agile acceptance testing'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15214480.post-2379691330291048529</id><published>2008-12-03T04:50:00.000-08:00</published><updated>2008-12-03T04:56:32.259-08:00</updated><title type='text'>Scripting language vs Programming language</title><content type='html'>&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;I think this questions would be haunting in lot of mind's.&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 14.25pt;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;But I have my concerns with Programming language used for writing Functional automated tests.&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 14.25pt;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;At first instance I think programming languages like Java and .Net are too object oriented for automated tests, after all our purpose is to make the tests work easily not worrying too much about achieving object oriented design for that. And often reading back the scripts becomes too complicated because we (QAs) tend to follow what programming languages are intended for.&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 14.25pt;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Other problem obviously is the skill you need to develop to write tests in these languages. As an Automated tester I really don't care about a method being declared as Public or Private or Static for that matter, what I really want is way to achieve "Reusability" in a simpler and effective way.&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 14.25pt;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;On the other hand I think scripting languages give you a free hand to use the language in a much simpler way and in a good enough, clean and effective way that you can make your automated testing framework more Robust, Reusable and at the same time easy to maintain for everyone.&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 14.25pt;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;So, I leave this topic for discussion here.&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 14.25pt;"&gt;&lt;span style="font-size: 10pt; color: #000000; font-family: &amp;quot;Lucida Sans Unicode&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Pankaj&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-size: small; font-family: Calibri;"&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/15214480-2379691330291048529?l=pnakhat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pnakhat.blogspot.com/feeds/2379691330291048529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pnakhat.blogspot.com/2008/12/scripting-language-vs-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2379691330291048529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15214480/posts/default/2379691330291048529'/><link rel='alternate' type='text/html' href='http://pnakhat.blogspot.com/2008/12/scripting-language-vs-programming.html' title='Scripting language vs Programming language'/><author><name>Pankaj Nakhat</name><uri>http://www.blogger.com/profile/04780132362413596463</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_Wzmu4gkZDx4/SUqIXZK3fSI/AAAAAAAAAB4/N94u47ba3Vg/S220/PankajNakhat.JPG'/></author><thr:total>0</thr:total></entry></feed>
