<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Agile Testing with Lisa Crispin &#187; Uncategorized</title>
	<atom:link href="http://lisacrispin.com/wordpress/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://lisacrispin.com/wordpress</link>
	<description>Providing Practical Agile Testing Guidance</description>
	<lastBuildDate>Mon, 23 Aug 2010 17:12:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tool Review: FitNesse, in Methods and Tools Magazine</title>
		<link>http://lisacrispin.com/wordpress/2010/07/21/tool-review-fitnesse-in-methods-and-tools-magazine/</link>
		<comments>http://lisacrispin.com/wordpress/2010/07/21/tool-review-fitnesse-in-methods-and-tools-magazine/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 19:49:05 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=503</guid>
		<description><![CDATA[The summer issue of Methods and Tools has my tool review of FitNesse. Please check it out, and if you have more questions about it I&#8217;m happy to help.
]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">The summer issue of <a href="http://methodsandtools.com" target="_blank">Methods and Tools</a> has my <a href="http://methodsandtools.com/PDF/mt201002.pdf" target="_blank">tool review of FitNesse</a>. Please check it out, and if you have more questions about it I&#8217;m happy to help.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2010/07/21/tool-review-fitnesse-in-methods-and-tools-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Norwegian Developers Conference</title>
		<link>http://lisacrispin.com/wordpress/2010/05/25/norwegian-developers-conference/</link>
		<comments>http://lisacrispin.com/wordpress/2010/05/25/norwegian-developers-conference/#comments</comments>
		<pubDate>Wed, 26 May 2010 00:48:27 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile testing training]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=462</guid>
		<description><![CDATA[I&#8217;ll be speaking at the Norwegian Developer Conference June 16 &#8211; 18 in Oslo. The conference puts out a free magazine which includes my article about Learning for Testers, along with lots of great articles from other speakers such as Jurgen Appelo, Roy Osherove and Chris Sells. The speaker lineup includes lots more exciting practitioners [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">I&#8217;ll be speaking at the <a href="http://www.ndc2010.no/" target="_blank">Norwegian Developer Conference</a> June 16 &#8211; 18 in Oslo. The conference puts out a free <a href="http://www.ndc2010.no/ndc10.pdf  " target="_blank">magazine</a> which includ<a href="http://www.ndc2010.no"><img class="alignleft size-full wp-image-463" title="dotnetrocks_NDC" src="http://lisacrispin.com/wordpress/wp-content/uploads/2010/05/dotnetrocks_NDC.png" alt="Norwegian Developers Conference" width="230" height="90" /></a>es my article about Learning for Testers, along with lots of great articles from other speakers such as Jurgen Appelo, Roy Osherove and Chris Sells. The speaker lineup includes lots more exciting practitioners and experts: Mike Cohn, Brett Schuchert, Uncle Bob Martin to just name a few. If you plan to attend, please let me know, I&#8217;d love to see old friends and meet new people there!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2010/05/25/norwegian-developers-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thinking, and Communities</title>
		<link>http://lisacrispin.com/wordpress/2009/12/07/a-community-of-thinkers/</link>
		<comments>http://lisacrispin.com/wordpress/2009/12/07/a-community-of-thinkers/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 02:42:45 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[commuinty of thinkers]]></category>
		<category><![CDATA[community]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=353</guid>
		<description><![CDATA[Eric Willeke, Liz Keogh and Jean Tabaka have inspired me (and many others, I am sure) with the following, which they produced when they got together in Boulder last Friday.
I&#8217;m currently reading some draft chapters of Jurgen Appelo&#8217;s upcoming book. His work is affirming my belief that successful software projects are the result of getting [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;"><a href="http://manicprogrammer.com/cs/blogs/willeke/" target="_blank">Eric Willeke</a>, <a href="http://lizkeogh.com/" target="_blank">Liz Keogh</a> and <a href="http://www.rallydev.com/agileblog/" target="_blank">Jean Tabaka</a> have inspired me (and many others, I am sure) with the following, which they produced when they got together in Boulder last Friday.</span></p>
<p><span style="color: #333399;">I&#8217;m currently reading some draft chapters of <a href="http://www.noop.nl/" target="_blank">Jurgen Appelo</a>&#8217;s upcoming book. His work is affirming my belief that successful software projects are the result of getting good people and letting them do their best work. There are so many aspects to this &#8211; reading Jurgen&#8217;s work, I am starting to understand that people are the most complex component of any project! Everything hinges on our ability to innovate, to be creative. So, we must be a community of thinkers.</span></p>
<p><span style="color: #333399;">One item in this list urges us to embrace newcomers. I was welcomed into the agile community 9+ years ago. I work hard to pay that nurturing forward, so that others may experience gaining knowledge that in turn drives their creativity. And besides all that &#8211; why not always be nice to each other? I feel another blog post coming on.<br />
</span></p>
<h3><span style="color: #333399;"><a id="bp___ctl00___RecentPosts___postlist___EntryItems_ctl00_PostTitle" href="http://manicprogrammer.com/cs/blogs/willeke/archive/2009/12/06/a-community-of-thinkers.aspx">A Community of Thinkers</a></span></h3>
<p><span style="color: #333399;">I am a member of a community of thinkers. </span></p>
<p><span style="color: #333399;">I believe that communities exist as homes for professionals to learn, teach, and reflect on their work.</span></p>
<p><span style="color: #333399;">I challenge each community in the software industry to:</span></p>
<ul>
<li><span style="color: #333399;">reflect and honor the practitioners who make its existence possible; </span></li>
<li><span style="color: #333399;">provide an excellent experience for its members; </span></li>
<li><span style="color: #333399;">support the excellent experience its members provide for their clients and colleagues in all aspects of their professional interactions; </span></li>
<li><span style="color: #333399;">exemplify, as a body, the professional and humane behavior of its members; </span></li>
<li><span style="color: #333399;">engage and collaborate within and across communities through respectful exploration of diverse and divergent insights; </span></li>
<li><span style="color: #333399;">embrace newcomers to the community openly and to celebrate ongoing journeys; and </span></li>
<li><span style="color: #333399;">thrive on the sustained health of the community and its members through continual reflection and improvement. </span></li>
</ul>
<p><span style="color: #333399;">I believe that leaders in each community have a responsibility to exhibit these behaviors, and that people who exhibit these behaviors will become leaders.</span></p>
<p><span style="color: #333399;">I am a member of a community of thinkers. If I should happen to be a catalyst more than others, I consider that a tribute to those who have inspired me.</span></p>
<p><span style="color: #333399;"><em><span style="font-size: small;">”A Community of Thinkers” by Liz Keogh, Jean Tabaka and Eric Willeke is licensed under a <a href="http://creativecommons.org/licenses/by-sa/3.0/us/" target="_blank">Creative Commons Attribution-Share Alike 3.0 License</a>. Please attribute to the distributor of your copy or derivative.</span></em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/12/07/a-community-of-thinkers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beautiful Testing!</title>
		<link>http://lisacrispin.com/wordpress/2009/12/02/beautiful-testing/</link>
		<comments>http://lisacrispin.com/wordpress/2009/12/02/beautiful-testing/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 02:26:04 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Publications]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[beautiful testing]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=349</guid>
		<description><![CDATA[Beautiful Testing, with a wide variety of fascinating chapters contributed by leading software professionals, is available. Not only will it inspire you and your team to improve your testing and your product, but all royalties go to a good cause. I&#8217;m honored to have written a chapter. Please see the page on my site for [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;"><a href="http://lisacrispin.com/wordpress/beautiful-testing/" target="_self">Beautiful Testing</a>, with a wide variety of fascinating chapters contributed by leading software professionals, is available. Not only will it inspire you and your team to improve your testing and your product, but all royalties go to a good cause. I&#8217;m honored to have written a chapter. Please see the <a href="http://lisacrispin.com/wordpress/beautiful-testing/" target="_blank">page</a> on my site for more details and a free copy of my chapter &#8211; to whet your appetite for the rest of the book!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/12/02/beautiful-testing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Learning Culture</title>
		<link>http://lisacrispin.com/wordpress/2009/11/12/a-learning-culture/</link>
		<comments>http://lisacrispin.com/wordpress/2009/11/12/a-learning-culture/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 00:14:04 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[learning culture]]></category>
		<category><![CDATA[retrospectives]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=337</guid>
		<description><![CDATA[I love conferences &#8211; I get to meet so many smart practitioners and come home bursting with new ideas. I&#8217;m back from Agile Development Practices and I learned a ton. One thing that&#8217;s on my mind both from the conference and other reading I&#8217;ve done this week is the importance of a culture that enables [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">I love conferences &#8211; I get to meet so many smart practitioners and come home bursting with new ideas. I&#8217;m back from Agile Development Practices and I learned a ton. One thing that&#8217;s on my mind both from the conference and other reading I&#8217;ve done this week is the importance of a culture that enables and even promotes learning.</span></p>
<p><span style="color: #333399;"><br />
It&#8217;s easy to forget that failure is good &#8211; if you can fail fast enough. That&#8217;s one reason agile works so well &#8211; short iterations and work transparency let us fail fast, and everyone knows when we fail. But failure shouldn&#8217;t only be seen as negative. We learn a lot more when we fail.</span></p>
<p><span style="color: #333399;"><br />
I recently read a great post titled &#8220;<a href="http://pillartechnology.com/blog/?p=63" target="_blank">Are you building a learning suppression system</a> by Daryl Kulak from his upcoming book. Here&#8217;s an excerpt.</span></p>
<p><em>What happens in organizations is that people get punished for committing sins of commission but they do not get punished for sins of omission. This shapes the mind of a person into saying “No, we better not try that,” attempting to avoid the nasty results of commission errors while ignoring the problems of omission errors, which don’t seem to cause as much havoc.</em></p>
<p><span style="color: #333399;">We don&#8217;t want to suppress innovation. Mistakes should be tolerated, not punished. We want a learning organization so our teams can always adapt to change, and thrive.</span></p>
<h4><span style="color: #333399;">More on Learning from Linda Rising</span></h4>
<p><span style="color: #333399;"><a href="http://www.lindarising.org/" target="_blank">Linda</a> gave an enlightening talk Wednesday at ADP about retrospectives, and she talked a lot about having time for thinking and learning. These are my notes on her talk, so I hope I haven&#8217;t misinterpreted anything she said. You can find more material direct from her on her site.</span></p>
<p><span style="color: #333399;">When confronted with practices such as pair programming or retrospectives, some managers have this reaction: &#8220;We don&#8217;t have time for thinking&#8221;.</span></p>
<p><span style="color: #333399;">But we aren&#8217;t trying to stop, analyze the root cause of all of our problems, and fix them all. We need to do little experiments to see if they solve some problem we&#8217;re having. If the solution works, we don&#8217;t even have to know why, we can just use it. Linda compared this to tuning a musical instrument &#8211; we can make tiny changes, and these give us lots of value.</span></p>
<p><span style="color: #333399;">Linda quoted Tom DeMarco&#8217;s book, <span style="text-decoration: underline;">Slack</span>. You can&#8217;t learn or change if you have no slack. Linda cited research showing that not being able to express feelings and thoughts in the normal course of business weighs us down, slows us down. It sounded a lot like technical debt to me! We fret about things that aren&#8217;t going well, and if we don&#8217;t get a chance to experiment with ways to improve them, we become less and less productive, more and more unhappy.</span></p>
<p><span style="color: #333399;">Going back to that idea that we must tolerate failure, it&#8217;s important that we don&#8217;t criticize or blame our teammates. Every team member should feel safe to raise issues and propose ideas. Linda cited Norm Kerth&#8217;s prime directive for retrospectives: We must believe that everyone did the best job he or she could, given what was known at the time. Everyone used their skills and abilities, the available resources, to their best advantage, given the situation at hand. When we start from there, we can avoid pointing fingers, and simply try to learn: what&#8217;s going well? What&#8217;s not going so well? How can we improve? What still puzzles us?</span></p>
<p><span style="color: #333399;">Linda advises us to watch for stereotypes: &#8220;These people are just no good at&#8230;&#8221; She was talking in the context of retrospectives, but this is good advice for everyday work. We even stereotype ourselves. We have to believe, instead, that we can get better. Then we will.</span></p>
<p><span style="color: #333399;">Focus on experiments. Identify the next experiment, and ask the three questions about it at the next retrospective. Share knowledge. Look for patterns. </span></p>
<h4><span style="color: #333399;">Time to Learn<br />
</span></h4>
<p><span style="color: #333399;">As Linda noted, everyone says they want to learn, but few take the time to do so. Take some time to learn something new today. See what you can do to promote a learning culture within your organization. Show your manager the <a href="http://www.google.com/support/jobs/bin/static.py?page=about.html&amp;about=eng" target="_blank">Google 20% rule</a>, and the value that Google has derived from that! Lots of companies, big and small, have something similar: Wiki Wednesdays, Engineering Sprints, one hour per day devoted to professional growth. People on agile teams love learning, and it makes us happy. When we&#8217;re happy, and when we are always learning and experimenting, we can do our best work. To me, that&#8217;s what agile is all about.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/11/12/a-learning-culture/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Respect the Tests</title>
		<link>http://lisacrispin.com/wordpress/2009/11/03/respect-the-tests/</link>
		<comments>http://lisacrispin.com/wordpress/2009/11/03/respect-the-tests/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:19:07 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[agile testing days]]></category>
		<category><![CDATA[test automation]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=327</guid>
		<description><![CDATA[Last month I had the great pleasure to participate in Agile Testing Days. I did a tutorial on using the Agile Testing Quadrants for test planning, and a keynote on 7 key success factors for agile testing success. More importantly, I got to attend a lot of great sessions by leading agile testing practitioners.
There were [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">Last month I had the great pleasure to participate in Agile Testing Days. I did a tutorial on using the Agile Testing Quadrants for test planning, and a keynote on 7 key success factors for agile testing success. More importantly, I got to attend a lot of great sessions by leading agile testing practitioners.</span></p>
<p><span style="color: #333399;">There were so many good sessions and I&#8217;ll only mention a few here. Mark your calendars for next year&#8217;s Agile testing Days, Oct. 4 &#8211; 6.</span></p>
<p><span style="color: #333399;">My slogan after this conference comes from Dave Evans (and from Mike Scott &#8211; not sure which one of them coined the phrase but they both talked about it): Respect the Tests. More about that in a minute.</span></p>
<p><span style="color: #333399;"><a href="http://www.testobsessed.com" target="_blank">Elisabeth Hendrickson</a> always inspires me, and her keynote didn&#8217;t let me down. I&#8217;ve heard her definition of agile before, but it bears repeating: Delivering value in the form of releasable software at frequent, regular intervals at a sustainable pace, while adapting ot the changing needs of business. She quoted <a href="http://poppendieck.com">Mary Poppendieck</a> as saying, if you want to go very fast, you have to be very disciplined. Sustainable pace means that we keep technical debt down so that the code doesn&#8217;t impede us.</span></p>
<p><span style="color: #333399;">Elisabeth presented her four sources of technical risk: Ambiguity, assumptions, dependencies and capacity, and her 7 key testing practices: TDD, ATDD, Exploratory Testing, Automated System Tests, Collective Test Ownership, CI, and one more that I think is automated unit tests (I can&#8217;t read my notes!)</span></p>
<p><span style="color: #333399;">Elisabeth also quoted Tobias Mayer, who refers to the Product Owner as the Voice of the What, and the dev team as the Tribe of the How. I like this, but I take issue with it a bit. The Poppendiecks have influenced me to experiment with having the dev team learn the business inside out, so the dev team itself can help the business prioritize and even think of features. This worked well for my team at ePlan, and I have to agree that funneling all the business requirements through the Product Owner has a lot of drawbacks.</span></p>
<p><span style="color: #333399;">What was new to me in this talk was something that several of us had talked about a night or two before, the idea of Collective Test Ownership. This ties in with the Whole Team Approach. Everyone on the team takes responsibility for quality, testing, and test automation.</span></p>
<p><span style="color: #333399;">Another great session, again from someone whose work I&#8217;m familiar with, was <a href="http://www.computerworlduk.com/toolbox/software-quality-testing/blogs/index.cfm?blogid=20" target="_blank">David Evans</a>&#8216; talk. One big takeaway for me was this: If a test is worth writing, it&#8217;s worth automating, and it must always pass in the future. I often see teams that ignore failures in their CI tests because &#8220;We have to get these new stories out, this is the PO&#8217;s priority.&#8221; So the PO doesn&#8217;t care whether what she prioritized in previous sprints still works or not? When the CI breaks, the team should stop the line and get it green.</span></p>
<p><span style="color: #333399;">Dave pointed out that if all tests pass, you don&#8217;t need extra metrics. Defects are evidence of missing tests. So don&#8217;t call it a defect &#8211; call it a failing test, write the failing test and fix it right away. If the customer really doesn&#8217;t want it fixed now, write a story for later.</span></p>
<p><span style="color: #333399;">Dave recommend fixing time and quality, but don&#8217;t fix functional scope. If time is running out, thin the requirements. It&#8217;s not like leaving a wheel off or leaving out the engine. <strong>Respect the tests</strong> &#8211; any test worth writing is worth running all the time.</span></p>
<p><span style="color: #333399;">Dave presented his Agile Quality Framework. I won&#8217;t go into all the details, but one of my favorite parts is applying <strong>balloon patterns</strong>. An empty balloon is still a balloon, but if you don&#8217;t have the rubber outside, it&#8217;s hard to have the air and then add the rubber later. Do the rubber first &#8211; the CI, the test framework.</span></p>
<p><span style="color: #333399;">Mike Scott elaborated on the balloon pattern in his demo of <a href="http://code.google.com/p/testifywizard/" target="_blank">Testify Wizard</a>. In one hour, Mike went from zero to a full CI process, including the project two continuous builds, one running unit tests, and one running FitNesse tests. It even generated code coverage reports! I think he did this with both Java and .Net during the same session. He did this with a couple of pushes of the button,some minor configuration and a wave of his crutch.</span></p>
<p><span style="color: #333399;">This shows how easy it is to respect the tests. It&#8217;s not that hard to build a framework to integrate our code and run our automated tests so that we get quick feedback all the time.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/11/03/respect-the-tests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile 2009 &#8211; AA-FTT Workshop &amp; more</title>
		<link>http://lisacrispin.com/wordpress/2009/08/30/agile-2009-aa-ftt-workshop-more/</link>
		<comments>http://lisacrispin.com/wordpress/2009/08/30/agile-2009-aa-ftt-workshop-more/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 01:13:58 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[aa-ftt]]></category>
		<category><![CDATA[Agile 2009]]></category>
		<category><![CDATA[test frameworks]]></category>
		<category><![CDATA[test tools]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=301</guid>
		<description><![CDATA[There&#8217;s so much swirling around in my brain from a whole week in Chicago at Agile 2009. Let me start with my recollections of the Agile Alliance Functional Test Tools workshop. Jennitta Andrea chairs this effort, and Elisabeth Hendrickson facilitated this meeting.
The facility was great, plenty of room and good connectivity, and had a nice [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">There&#8217;s so much swirling around in my brain from a whole week in Chicago at Agile 2009. Let me start with my recollections of the Agile Alliance Functional Test Tools workshop. Jennitta Andrea chairs this effort, and Elisabeth Hendrickson facilitated this meeting.</span></p>
<p><span style="color: #333399;">The facility was great, plenty of room and good connectivity, and had a nice view of the Sears (Willis) Tower and a sliver of lake!<br />
</span></p>
<p><span style="color: #333399;">The workshop was all Open Space, so we started out by planning the sessions. 3 timeslots, 4 locations, though there ended up being only 11 sessions. One of the first sessions was lightning talk demos of various tools &#8211; Canoo <a href="http://webtest.canoo.com" target="_blank">WebTest</a>, <a href="http://studios.thoughtworks.com/agile-test-automation" target="_blank">Twist</a>, <a href="http://cukes.info/" target="_blank">Cucumber</a>, <a href="http://code.google.com/p/robotframework/" target="_blank">Robot Framework</a> and <a href="http://ulti-swat.wikispaces.com/" target="_blank">SWAT</a>. (Not to say that Watir and Selenium were ignored &#8211; we were just already familiar with those). I was impressed by Robot Framework, an open source tool whose developer is Pekka Klark. It has a lot of flexibility. It uses a tabular format similar to FitNesse except there is only one type of table. You can do keyword driven, data driven and even BDD style tests. It also takes command line arguments. It lets you have internal and external libraries such as Swing.</span></p>
<p><span style="color: #333399;">Mike Longin (who works for the same company I do) did a great job demo-ing both SWAT and UltiFit (the latter is not open source, but as there was interest in it, Mike may undertake that task). There was a lot of interest in SWAT, nobody had seen it before and I think they were particularly impressed by the IDE.</span></p>
<p><span style="color: #333399;">One of the other morning sessions was how to get Cucumber to work with .Net. Of course you can run Cucumber tests on the browser no matter what your app language, but if you want to test in the same process as your app code, you need some bridge. After a lot of discussion of things like Iron Ruby, someone had the idea to use the Slim protocol between Cucumber and .Net. Aslak Hellesoy, the Cucumber developer, thinks this idea may have legs. I have some photos of the diagrams they drew and will upload them here when I get time.</span></p>
<p><span style="color: #333399;">Paul King, one of the WebTest contributors as well as the main Groovy developer, proposed doing more mixing and matching of testing frameworks/drivers/utilities/tools. He had a nice graphic showing what is available. We all agreed there are enough test runners, and the developer community should focus on solving new problems. Gerard Meszaros created a <a href="http://spreadsheets.google.com/ccc?key=0Apag_J97l3CTdHR0WS1sZGFVaFA0dEpXYWRqLXBxV3c&amp;hl=en" target="_blank">spreadsheet</a> showing all the tools along with the features and requirements people might have for their test framework/drivers. Some of us got together in an afternoon session to tweak the tools spreadsheet and Gerard posted it on Google docs so that tool developers/users can add to it and fill it out. This is the start of a great resource both for users looking for the right tool to developers who want to know what they might be able to build on or adapt.</span></p>
<div id=":1bx" class="ii gt"><span style="color: #333399;"> One of the afternoon sessions was about how to make browser tests run faster. I didn&#8217;t sit through the whole session (I was trying to get a little of all the sessions, I couldn&#8217;t pick just one) but Aslak explained how neural networks work and how that might be applied to running tests. The idea is to &#8220;train&#8221; tests to be smart about what tests to run first. For example, if File XYZ is checked in, the tests know that the last two times that file was checked in, tests A, B and G broke, so it runs those tests first. Built-in risk mitigation.</p>
<p>A theme throughout the day was whether test frameworks/drivers should include a capture/playback feature. Capture/playback, as the SWAT editor has, can be a great way to help learn a new tool, and also can be helpful in debugging test scripts or figuring out the right statements to use in a particular test. However, people shouldn&#8217;t get bogged down in only using capture/playback. Jason Huggins, the Selenium developer, came up with a metaphor that capture/replay is like the little &#8220;trainer&#8221; airplane that jet pilots train on first. The pilots can learn a lot from the trainer, but eventually they have to move up to a real jet. Mike Longin (I think it was Mike) had the idea that a tool such as Selenium could have a dial on the console showing when the user has achieved a certain level of expertise and needs to move away from capture/playback and into good OO test design.</p>
<p>After the workshop, some of us got together a group of 15 people and went out for pizza. I had the pleasure of sitting with Jurgen Appelo, author of the top blog in Europe and an expert in complex design theory, chaos theory and the like. He is so smart, and also very friendly and down to earth. Another dining neighbor was Ellen Gottesdiener, an expert in business analysis, process, systems thinking and organizational culture, and author of two books. I got a lot of ideas from her that I think we can use. Like Jurgen, she&#8217;s extremely smart and extremely nice. Abby Fitchner aka &#8220;HackerChick&#8221; also sat with us, she is very fun and has a lot of creative ideas. She and Nate Oster did a super session during the conference on &#8220;where does developer testing end and tester testing begin&#8221;.</p>
<p></span></div>
<div class="ii gt"><span style="color: #333399;"><br />
</span></div>
<div class="ii gt"><span style="color: #333399;">More of what I learned at Agile 2009 later, watch this space!<br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/08/30/agile-2009-aa-ftt-workshop-more/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Different Approach to FitNesse &#8220;Macros&#8221;</title>
		<link>http://lisacrispin.com/wordpress/2009/07/28/a-different-approach-to-fitnesse-macros/</link>
		<comments>http://lisacrispin.com/wordpress/2009/07/28/a-different-approach-to-fitnesse-macros/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 02:46:09 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[whole team approach]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=288</guid>
		<description><![CDATA[My teammates Maykel Suarez, J.P. Erkelens and  Eddy Lara ought to be the ones blogging about this as they come up with these cool ideas, but I have the time and the inclination so I will. I hope they&#8217;ll read this and correct any errors I make.
I&#8217;ve used FitNesse since 2003 and obviously have not [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">My teammates Maykel Suarez, J.P. Erkelens and  Eddy Lara ought to be the ones blogging about this as they come up with these cool ideas, but I have the time and the inclination so I will. I hope they&#8217;ll read this and correct any errors I make.</span></p>
<p><span style="color: #333399;">I&#8217;ve used FitNesse since 2003 and obviously have not learned enough up to now!</span></p>
<p><span style="color: #333399;">We want our FitNesse tests to be DRY (Don&#8217;t repeat yourself), easy to maintain and easy to read and understand. Maykel and I were pairing on some FitNesse/SWAT tests this morning and found we needed the same test steps in more than one place. Maykel created this page under our &#8220;HelperMacro&#8221; area. Each FitNesse variable contains a SWAT test table.</span></p>
<p><span style="color: #0000ff;">!define NavigateToRatingScale (<br />
!|SWAT |<br />
|StimulateElement|Expression|</span></p>
<div id=":2y1" class="ii gt"><span style="color: #0000ff;">innerHtml:Performance Management;onclick:USGPM|</span><span style="color: #0000ff;">onclick|A|<br />
|StimulateElement|Expression|</span><span style="color: #0000ff;">innerHtml:Rating Scale |onclick|A|<br />
)</p>
<p>!define NavigateToAddChangeRatingScale (${NavigateToRatingScale}<br />
!|SWAT|<br />
|StimulateElement|Expression|</p>
<p></span><span style="color: #0000ff;">innerHTML:Overall Review|onclick|A|<br />
)</p>
<p>!define InputNumberOfLevels (<br />
!|SWAT|<br />
|SetElementAttribute|</p>
<p></span><span style="color: #0000ff;">Expression|Id:txtLevelNums|</span><span style="color: #0000ff;">value |${NumberOfLevels}|INPUT|<br />
|StimulateElement   |Expression|Id:txtLevelNums|</span><span style="color: #333399;"><span style="color: #0000ff;">onchange|INPUT|<br />
)</span></p>
<p>These are &#8216;macros&#8217; defined as variables. Cool, huh? Notice that the second one, NavigateToAddChangeRatingScale, uses the first one, NavigateToRatingScale.</p>
<p></span><span style="color: #333399;"></p>
<p>Here are examples of how we used these in test pages. First we include the page at the top of the test page;</p>
<p><span style="color: #0000ff;">!*&gt; includes<br />
!include -c &lt;SuiteBookworms.HelperMacro.</span></p>
<p></span><span style="color: #0000ff;"> </span><span style="color: #333399;"><span style="color: #0000ff;">RatingScales<br />
*!</span></p>
<p>Then we can use whichever of the macros within RatingScales that we need at any time.</p>
<p><span style="color: #0000ff;">Navigate to add/change rating scale page<br />
${</span></p>
<p></span><span style="color: #0000ff;">NavigateToAddChangeRatingScale</span><span style="color: #333399;"><span style="color: #0000ff;">}</span></p>
<p>When you view the test page in the browser, you see:<br />
<a href="http://lisacrispin.com/wordpress/wp-content/uploads/2009/07/navigate1.tiff"><img class="aligncenter size-medium wp-image-292" title="navigate1" src="http://lisacrispin.com/wordpress/wp-content/uploads/2009/07/navigate1.tiff" alt="Browser rendering of navigate steps" /></a></p>
<p></span></div>
<div class="ii gt"><span style="color: #333399;"></p>
<p>It&#8217;s easy to understand what the test is doing, but we only have to maintain those steps on one page.</p>
<p>Here&#8217;s an example of setting the number of levels in a rating scale:</p>
<p><span style="color: #0000ff;">!define NumberOfLevels {5}<br />
${InputNumberOfLevels}</span></p>
<p>In the browser view, this looks like:</p>
<p><a href="http://lisacrispin.com/wordpress/wp-content/uploads/2009/07/setratingscale.tiff"><img class="aligncenter size-medium wp-image-293" title="Set Rating Scale example" src="http://lisacrispin.com/wordpress/wp-content/uploads/2009/07/setratingscale.tiff" alt="Browser view of set rating scale steps" /></a></p>
<p>We have the kind of macros I&#8217;ve always been used to as well for example, a login macro:</p>
<p><span style="color: #0000ff;">{HomeUr}!*&gt; login to $ with ${UserName} and ${Password}<br />
!|SWAT|<br />
|NavigateBrowser|${HomeUr\l}|<br />
|SetElementAttribute|Id|ctl00_</span></p>
<p></span> <span style="color: #0000ff;">Content_Login1_UserName|value|</span><span style="color: #0000ff;">${UserName}|INPUT|<br />
|SetElementAttribute|Id|ctl00_</span><span style="color: #0000ff;">Content_Login1_Password|value|</span><span style="color: #0000ff;">${\Password}|INPUT|<br />
|StimulateElement|Id|ctl00_</span><span style="color: #0000ff;">Content_Login1_LoginButton|</span><span style="color: #333399;"><span style="color: #0000ff;">onclick|INPUT|<br />
*!</span></p>
<p>which are included in a test in the way to which I am accustomed:</p>
<p><span style="color: #0000ff;">!define UserName {hobbest}<br />
!include &lt;SuiteBookworms.HelperMacro.LoginMacro</span></p>
<p></span><span style="color: #333399;">I can&#8217;t articulate why I like the first, different approach, using variables to hold the macros, better than the way I&#8217;ve done it for years. It seems more streamlined to me, while retaining the ease of maintenance and understandability. Say sometimes you want to navigate to Page A, and other times you need to get to Page 2 which requires first going to Page A. If you&#8217;re including a bunch of one-line macros &#8211; one to navigate to Page A, one to navigate to Page 2 &#8211; your test gets real clunky looking.</p>
<p></span></p>
<h2><span style="color: #333399;">Something Really Slick</span></h2>
<p><span style="color: #333399;">Maykel, J.P. and Eddy used a similar technique so that a test could iterate through the same steps with different inputs each time. A variable is defined with a SWAT FitNesse table as its contents, including both a variable for the input value and a variable for the assert. Then it&#8217;s quick and easy to have multiple test cases using the same table. It took me a little while wo work out what they&#8217;re doing, but I love it.</span></p>
<p>!<span style="color: #0000ff;">define AssertValidInputNumberOfLevels (<br />
${InputNumberOfLevels}<br />
!|SWAT|<br />
|@AssertElement\${Exists}|</span></p>
<p><span style="color: #333399;"><span style="color: #0000ff;">Expression|innerHtml:Invalid numeric value. Value should be a number from 1 to 99.;id:ctl00_errMsg|div |<br />
)</span></span></p>
<p>This test expects an error message to come up, since 5.3 is an invalid value.</p>
<p><span style="color: #0000ff;">!define NumberOfLevels {5.3}<br />
!define Exists {Exists}<br />
${ </span><span style="color: #0000ff;">AssertValidInputNumberOfLevels</span><span style="color: #0000ff;">}</span></p>
<p>The next test expects that no error message will appear, as 42 is a valid value.</p>
<p><span style="color: #0000ff;">!define NumberOfLevels {42}<br />
!define Exists {DoesNotExist}<br />
${ AssertValidInputNumberOfLevel}</span></p>
<p>(there are several more of these with different values, some which expect an error message, some which expect no error message)</p>
<p>In the browser these look like this, so they&#8217;re perfectly easy for POs or anyone to read.</p>
<p><a href="http://lisacrispin.com/wordpress/wp-content/uploads/2009/07/slick1.tiff"><img class="aligncenter size-medium wp-image-295" title="slick1" src="http://lisacrispin.com/wordpress/wp-content/uploads/2009/07/slick1.tiff" alt="Slick way to use variable to iterate different inputs, expected results" /></a></p>
<p><span style="color: #333399;">Is this something everyone does and I just didn&#8217;t run across it before?</span><span style="color: #333399;"><br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/07/28/a-different-approach-to-fitnesse-macros/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>So How&#8217;s the Big Agile Working So Far?</title>
		<link>http://lisacrispin.com/wordpress/2009/07/10/so-hows-the-big-agile-working-so-far/</link>
		<comments>http://lisacrispin.com/wordpress/2009/07/10/so-hows-the-big-agile-working-so-far/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 23:34:35 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile testing]]></category>
		<category><![CDATA[big agile]]></category>
		<category><![CDATA[big agile testing]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=281</guid>
		<description><![CDATA[I&#8217;ve been working in this large agile setting (28 Scrum teams, 2 week sprints, 4 production releases per year) about 6 weeks now. It has confirmed my past experiences that success depends on having good people, and letting them do their best work.
In this short time, my 5-person team (3 programmers, 2 testers) has implemented [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">I&#8217;ve been working in this large agile setting (28 Scrum teams, 2 week sprints, 4 production releases per year) about 6 weeks now. It has confirmed my past experiences that success depends on having good people, and letting them do their best work.</span></p>
<p><span style="color: #333399;">In this short time, my 5-person team (3 programmers, 2 testers) has implemented a CI and build process in Hudson, which build our code as well as the full product, runs our automated unit and FitNesse/SWAT tests, deploys to our sandboxes, and reports results. We&#8217;ve finished several stories. We&#8217;ve had one sprint review, which went well. We&#8217;ve shaved a lot of yaks, which is to be expected for a new team and new employees (especially yours truly. The combination of telecommuting and lack of Windows and network expertise isn&#8217;t good). We work in pairs and trios, and stay in constant communication via Skype, chat, webcam and shared desktops.</span></p>
<p><span style="color: #333399;">Something new to me is having to depend on other teams for certain tasks. If we need something added to the database, we have to put a request into Jira and wait, though the turnaround is fairly quick. In order to get data changes into our own environments, we sometimes have to do a db refresh process that can take hours. We even had to wait a few days for another team to provide the new error message we needed. Before we can get final approval from our PO on a story, we have to request that the official company-wide build be deployed on one of our environments. I was frustrated by this, but we seem to be adjusting our rythym so that we fill in the delays with productive work. </span></p>
<p><span style="color: #333399;">To give you an idea what my job is like now, here&#8217;s a typical day in my work life:</span></p>
<p><span style="color: #333399;">Before 8:00 AM Mountain time &#8211; Get on group chat with rest of team. I&#8217;m the last one on &#8211; 3 are on Eastern time, and 1 is just faster at getting to work than I am.<br />
</span></p>
<p><span style="color: #333399;">8:00 AM &#8211; Attend Scrum of Scrums by conference call. This consists of general news that affects all teams, such a build problems, and polling each of 28 teams for impediments. It&#8217;s usually over in 10 minutes, amazingly.</span></p>
<p><span style="color: #333399;">8:15 &#8211; Join Skype call and webcam videos with rest of team. Pair with fellow tester (<a href="http://chrismcmahonsblog.blogspot.com/" target="_blank">Chris McMahon</a>) to write automated GUI/functional tests in FitNesse/Skype. We use VNC to share desktops.<br />
</span></p>
<p><span style="color: #333399;">9:30 &#8211; Standup meeting. We have an app that brings up a photo of &#8220;The Usual Suspects&#8221; with our heads on random bodies. I look good with a tattoo.</span></p>
<p><span style="color: #333399;">9:45 -10:00 &#8211; Watch the developers work on some unit tests, using LiveMeeting to see their desktop.<br />
</span></p>
<p><span style="color: #333399;">10:00 &#8211; 11:30 &#8211; Catch up on emails, maintenance tasks, and the like, and eat lunch.</span></p>
<p><span style="color: #333399;">11:30 &#8211; we&#8217;re all back on Skype, chat, webcam and desktop sharing. </span></p>
<p><span style="color: #333399;">11:30 &#8211; 12:00 One of the developers helps me with an issue I&#8217;m having with my local test environment, using VNC to take control of my desktop.<br />
</span></p>
<p><span style="color: #333399;">12:00 &#8211; 12:30 We discuss our acceptance tests with the PO. The other teams he works with put acceptance tests in spreadsheets and attach them to the story &#8220;card&#8221; in Jira. We are writing the acceptance tests together in sprint planning, in BDD style, directly onto the FitNesse wiki pages where we&#8217;ll also write the automated tests. Then Chris and I automate the tests. The PO is fine with our approach, he can easily understand the tests, and has found some test cases that we missed. However he&#8217;s concerned that we&#8217;re deviating from the &#8220;standard&#8221;. So far, nobody has objected to our writing tests in the FitNesse wiki, and it works so well for us, we&#8217;re going to continue.</span></p>
<p><span style="color: #333399;">12:30 &#8211; 1:30 Pair with Chris again to update the narrative acceptance tests for the stories based on the PO&#8217;s input, and write additional automated tests.</span></p>
<p><span style="color: #333399;">1:30 &#8211; 3:00  The database change needed for the story the developers finished yesterday is ready. Chris and I update our local databases, deploy the new code, run the FitNesse/SWAT tests, and do exploratory testing of the new functionality. Whenever we run across an issue, we show it to the developers using VNC desktop sharing.</span></p>
<p><span style="color: #333399;">3:00 &#8211; 5:00 Everyone else is done at 3:00, so I&#8217;m on my own. I update the wiki with notes about how to use the system that allows us to add test users. Then I do some additional exploratory testing on the story we worked on earlier. Next, I look into a problem we were having in a SWAT test. I had emailed the internal user group about it, and had some responses with suggestions to try. I&#8217;m able to get this working, and check the test in. I make sure our task board is up to date. </span></p>
<p><span style="color: #333399;">As time goes by, I spend less time on things like getting my environment working or solving network problems, and more time doing productive work. I&#8217;m also starting an internal company testing community, so we can all share ideas. My teammates and I are blogging internally about how we are writing and designing tests, and how we&#8217;ve implemented our CI and build process. We hope the ideas that work for us will spread to other teams, and we&#8217;re also looking at what other teams to and adopting their good ideas.</span></p>
<p><span style="color: #333399;">So far, so good!<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/07/10/so-hows-the-big-agile-working-so-far/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Review of _Agile Testing_ from Agile Journal</title>
		<link>http://lisacrispin.com/wordpress/2009/05/15/review-of-_agile-testing_-from-agile-journal/</link>
		<comments>http://lisacrispin.com/wordpress/2009/05/15/review-of-_agile-testing_-from-agile-journal/#comments</comments>
		<pubDate>Fri, 15 May 2009 15:45:32 +0000</pubDate>
		<dc:creator>lcrispin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lisacrispin.com/wordpress/?p=265</guid>
		<description><![CDATA[If you&#8217;re wondering whether our book is for you, read this comprehensive review by Brad Appleton in the Agile Journal. Janet and I are so excited that so many readers understand what we have tried to do with the book. We wanted to give pragmatic, practical help for agile testers and teams, and that&#8217;s what [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #333399;">If you&#8217;re wondering whether our book is for you, read this comprehensive <a title="Agile Journal" href="http://www.agilejournal.com/articles/columns/articles/1633-featured-book-agile-testing-a-practical-guide-for-testers-and-agile-teams  " target="_blank">review</a> by Brad Appleton in the Agile Journal. Janet and I are so excited that so many readers understand what we have tried to do with the book. We wanted to give pragmatic, practical help for agile testers and teams, and that&#8217;s what people say they are finding. Yay! </span></p>
<p><span style="color: #333399;">If you have read our book, please review on Amazon or your blog, and help other potential readers decide if it&#8217;s the right book to help with their issues.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://lisacrispin.com/wordpress/2009/05/15/review-of-_agile-testing_-from-agile-journal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
