<?xml version="1.0" encoding="iso-8859-1"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
  <title>Testing Hotlist Update</title>
  <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/" />
  <modified>2009-06-18T19:47:17Z</modified>
  <tagline>by Bret Pettichord</tagline>
  <id>tag:www.io.com,2009:/~wazmo/blog//4</id>
  <generator url="http://www.movabletype.org/" version="2.661">Movable Type</generator>
  <copyright>Copyright (c) 2009, bret</copyright>
  <entry>
    <title>After WatirCraft</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2009_06.html#000295" />
    <modified>2009-06-18T19:47:17Z</modified>
    <issued>2009-06-18T14:47:17-06:00</issued>
    <id>tag:www.io.com,2009:/~wazmo/blog//4.295</id>
    <created>2009-06-18T19:47:17Z</created>
    <summary type="text/plain">As I&apos;ve announced elsewhere earlier this month, Pete Dignan and I are shutting down WatirCraft LLC. We&apos;ve each decided to go our separate ways. For several months now Pete has been focussing his attentions on his other business, ProtoTest. Next...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[As I've announced elsewhere earlier this month, Pete Dignan and I are shutting down WatirCraft LLC. We've each decided to go our separate ways. For several months now Pete has been focussing his attentions on his other business, <a href="http://www.prototest.com/">ProtoTest</a>. Next month, I will begin a full-time position at <a href="http://www.convio.com/">Convio</a> as a QA engineer.
<p>
Both of us will probably continue to be involved with the <a href="http://wtr.rubyforge.org/">Watir</a>. Prototest has projects that are using Watir and the WatirCraft framework, and Convio has recently standardized on using Watir internally. 
<p>
WatirCraft funded my work with Watir last year. There is certainly more work that needs to be done, but it will happen, as it had before, as a result of volunteer labor. I'm not sure how much time I will have for this going forward, but we have a lot of contributors and volunteers, so I have confidence that Watir will continue as an active project regardless of my own involvement.
<p>
The <a href="http://wiki.github.com/bret/watircraft">watircraft framework</a> is a bit more up in the air. The original idea was to build a pretty good framework as open-source and then offer additional products and services that built on that. A lot of people like what we've developed so far, but it clearly could use more work. I'm not sure what is actually going to happen. I think its a good start and would certainly use it as a basis for any Watir test suites that I develop personally (e.g. at Convio). Convio also has been mostly using the <a href="http://rasta.rubyforge.org/">Rasta framework</a>, so I am looking at integrating that with the watircraft framework. Needless to say, the watircraft framework is open-source and <a href="http://github.com/bret/watircraft/tree/master">hosted on github</a>, so anyone is free to fork it and add features.
<p>
We set up <a href="http://watirbuild.com/">Watirbuild.com</a> to host continuous integration of the Watir project. This was originally set up by WatirCraft, but i'm now paying for the hosting of this site personally, as part of my personal commitment to the Watir project.
<p>
WatirCraft also developed Watir-based training. Over the past couple of months, I've taught this a couple of times, and have had good feedback from it. Both Pete and I have retained the rights to deliver training based on these materials, but I don't have any immediate plans, nor as far as I'm aware does Pete.
<p>
I'm trying to take a break from Watir right now -- from development of the driver and frameworks, from training and consulting. This is hard because there is so much momentum, and it pains me to risk losing that. We're ready to make a new release of Watir shortly. I have a roadmap for the watircraft framework based on all the feedback we've gotten. And I have leads for consulting. But I can only do so much, and I fear that too much of what I have been doing has been done out of inertia or a sense of obligation.
<p>
What I really want to do right now is write about Watir: why it has been important to me, the vision I've had for it, and the challenges that lie ahead. Stay tuned.
]]>
      
    </content>
  </entry>
  <entry>
    <title>Books for Startups</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2009_06.html#000294" />
    <modified>2009-06-15T21:05:39Z</modified>
    <issued>2009-06-15T16:05:39-06:00</issued>
    <id>tag:www.io.com,2009:/~wazmo/blog//4.294</id>
    <created>2009-06-15T21:05:39Z</created>
    <summary type="text/plain">Over the past year, I&apos;ve been working on a startup software business. We&apos;re in the process of shutting it down now, actually, but that&apos;s a different story. During the past year, I&apos;ve learned a lot about startups and business models....</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[Over the past year, I've been working on a startup software business. We're in the process of shutting it down now, actually, but that's a different story. During the past year, I've learned a lot about startups and business models. Two books have been particularly helpful to me in understanding the challenge of a startup and helping me focus on what's important.
<P>
<a href="http://www.amazon.com/Art-Start-Time-Tested-Battle-Hardened-Starting/dp/1591840562/bretpettichossof">Art of the Start</a>, by Guy Kawasaki. The first few chapters are available for <a href="http://www.guykawasaki.com/books/artprop.pdf">free download</a>, and may be all that you need. This is a great book to help you with your business plan -- or better yet -- with your pitch. I went back to this book several times.
<P>
<a href="http://www.amazon.com/Founders-Work-Stories-Startups-Problem-Solution/dp/1430210788/bretpettichossof">Founders at Work</a>, by Jessica Livingston. Fascinating stories of the early days of technology startups. Based on interviews, there are stories both new companies and old. In several accounts, inside information is revealed about startups you've already read about. Learn about how Jobs ripped off Wozniak in Apple's early days, and how Wozniak feels about it now.
<p>
I strongly recommend these books for any one involved in a software startup.
]]>
      
    </content>
  </entry>
  <entry>
    <title>Three Key Tools for Automated Testing: Language, Driver, Harness</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2009_04.html#000293" />
    <modified>2009-04-24T16:37:23Z</modified>
    <issued>2009-04-24T11:37:23-06:00</issued>
    <id>tag:www.io.com,2009:/~wazmo/blog//4.293</id>
    <created>2009-04-24T16:37:23Z</created>
    <summary type="text/plain">When I started working on Watir, I was pushing a vision for automated testing. This vision still motivates my work with Watir. A couple of years ago, Brian Marick told me open-source developers should share their vision and let the...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    <dc:subject>Automation</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[When I started working on <a href="http://www.watir.com">Watir</a>, I was pushing a vision for automated testing. This vision still motivates my work with Watir. A couple of years ago, Brian Marick told me open-source developers should share their vision and let the community know why they built the tool. Here's the vision.
<p>
There are three essential elements of an automated testing system: language, driver and harness. Your tests need to be written in a language and you need a language to extend your testing system. I've long believed in scripting languages, such as Perl, Python and Ruby. I find that testers are more productive with them and find them easier to understand and use. I have reasons why I prefer Ruby, but there are other good automated testing systems written using other scripting languages. In fact over the years, I have built testing frameworks in Perl, Python and VB, usually building on languages that were already in use at the client. My emphasis on full-featured programming languages was a contrast to the <a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=2326">proprietary languages</a> that had been commonly used in commercial testing tool suites. I had no patience for them.
<p>
There are lots of languages to choose from. Finding a suitable driver, however, was often more difficult. A driver is what you need to drive your application. Watir is an example of a browser driver, suitable for web applications. Often the driver determines the language you use. Years ago, I used Expect as a driver for a command line application. Expect used TCL as its language, so the suite was written in TCL. I developed Watir because I wanted a browser driver in Ruby. Watir was our solution for Web Application Testing in Ruby.
<p>
The third thing you needed for a testing system was a harness. When we started, we all used Test::Unit, a Ruby test harness designed for unit testing. We found that it could be adapted for functional testing. More recently, Watir users have been using Rspec or Cucumber as their test harness. A test harness is responsible for executing tests and collecting and reporting results. Some people like to build their own test harnesses instead of using one of these. 
<p>
I developed this vision while working with commercial testing tool suites like SilkTest and WinRunner. These packages are often referred to as tools, but I found that they actually comprised a collection of integrated tools. They had predefined usage expectations that often didn't match actual tester needs. Data-driven testing, for example, required us to break down the suite and then reassemble it in a more suitable configuration. I wanted testers to be able to identify the individual tools that made up a testing system.
<p>
Many new Watir users have trouble identifying where Watir (the driver) ends and Ruby (the language) begins. But learning this is key to becoming a proficient user. I'm told that some Java teachers don't like their students to use an IDE (such as Eclipse or Netbeans). Instead they want their students to learn to use the required tools separately -- the editor, the compiler. This way they learn the function of each tool. In the same way, I've also wanted testers to understand the functions of the different tools and components used in a testing system.
<p>
We often get questions from new Watir users whose answers are obvious once you understand this. Can Watir read CSV files? Can it do date math? Can it read from a database? The answer to all of these questions is that Watir can't do it, but Ruby can. No browser driver could do these things (it would be like asking whether your compiler supports search and replace), but any full-featured programming language can. It's just a matter of finding the library to do it. These questions are raised in the first place because testers are used to using commercial tool suites that were closed systems. So you only got the ability to do these kinds of things if the vendor added it to the package. Watir is part of an open system, so all the libraries are there already and more are being written all the time, often by people who are not part of the Watir community, per se, but rather part of the larger Ruby community.
<p>
Want to learn more? I am teaching <a href="http://watircraft.com/training">classes </a>on Watir, Ruby and the new <a href="http://wiki.github.com/bret/watircraft">WatirCraft framework</a> that supports both Rspec and Cucumber.]]>
      
    </content>
  </entry>
  <entry>
    <title>A Test Application with Examples</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2009_03.html#000292" />
    <modified>2009-03-03T22:20:16Z</modified>
    <issued>2009-03-03T16:20:16-06:00</issued>
    <id>tag:www.io.com,2009:/~wazmo/blog//4.292</id>
    <created>2009-03-03T22:20:16Z</created>
    <summary type="text/plain">Today, someone wrote me. They need to do a Watir Demo and needed a good test app to use. Did I have something they could use? Of course I do. We&apos;ve been using the &quot;Depot&quot; test application for some time...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[Today, someone wrote me. They need to do a Watir Demo and needed a good test app to use. Did I have something they could use? Of course I do.
<p>
We've been using the "Depot" test application for some time as a sample application for Watir <a href="http://www.watircraft.com/watir-training/">training</a>, demonstrations and framework development. It is a bookstore website, with a retail front end and an administrative back end. There are a lot of great things about it. You can run it on your own machine, so you don't need internet access. It is a non-trivial application. It has session state, a shopping cart and the backend requires login. 
<p>
The "Depot" is part of the <a href="http://github.com/bret/framework-examples/tree/master">framework-examples</a> project. The project also contains lots of examples of how to write Watir tests for it using different frameworks, including Rspec, Cucumber, Rasta and Roo (in a directory called Arc). And the <a href="http://bpettichord.backpackit.com/pub/1648993">WatirCraft framework</a>. Indeed, we used this project to drive the development of the WatirCraft framework. We created examples using several different frameworks and then pulled the best of each into the WatirCraft framework. We stole the most from the Taza framework. Our WatirCraft example actually started as a Taza example (which is why there is no longer a "Taza" example in the project -- it morphed). Right now, in fact, this example amounts to the best documentation we have for the WatirCraft framework.
<p>
But any one looking to learn about any of these testing frameworks will probably find this to be pretty helpful.]]>
      
    </content>
  </entry>
  <entry>
    <title>The WatirCraft Framework</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2009_02.html#000291" />
    <modified>2009-02-06T17:19:00Z</modified>
    <issued>2009-02-06T11:19:00-06:00</issued>
    <id>tag:www.io.com,2009:/~wazmo/blog//4.291</id>
    <created>2009-02-06T17:19:00Z</created>
    <summary type="text/plain">It still seems much too early to talk about it. I&apos;ve been developing a testing framework for Watir users. We have one customer and some friends have been using it. It feels like a small twig fire that needs tending....</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[It still seems much too early to talk about it. I've been developing a testing framework for Watir users. We have one customer and some friends have been using it. It feels like a small <a href="http://www.threeriversinstitute.org/blog/?p=22">twig fire</a> that needs tending. I worry that too much attention will be like a big wind, blowing it out.
<p>
If you want to see it, you can look at a <a href="http://bpettichord.backpackit.com/pub/1648993">small page</a> that I've put together about it for our customers. You can also take a look at the <a href="http://github.com/bret/watircraft/tree/master">code </a>. It is based on the <a href="https://github.com/bret/taza/tree">Taza project </a>, which Charley Baker leads. This framework is extracted from their projects at the Gap. (He works for the division that handles their websites, which are doing better than their stores.) I've also built several application-specific frameworks for previous employers am incorporating ideas from them into WatirCraft.

<p>
It seems early because most of my vision for this is still in my head and not yet in the code. And because I'm at a point where it feels easier to develop the features than to describe them. So talking about it, documenting it, writing about all seem like ways to delay creating it. But a little more feedback would be good, especially in a few more weeks and, of course, it will take time for people to try it out before they can provide feedback.

<p>
We also are looking for <a href="http://www.watircraft.com/customer-wanted/">sponsors</a>, people who would be willing to pay us to continue development on it. And I'm teaching classes next month (in <a href="http://www.squadco.com/conference.html">Denver</a> and <a href="http://www.watircraft.com/watir-training/">Austin</a>) to people who want to learn first hand about it.

<p>
It seems early, because I still don't have a proper homepage for this project, and I haven't really shared my vision. But, today, it's time for me to get back to the code. If you would like to sponsor this work, please contact <a href="mailto:bret@watircraft.com?subject=Sponsorship">me </a>or <a href="http://www.watircraft.com/contact/">Pete</a>, my business partner in Denver. Or sign up for one of my classes. Thanks.
]]>
      
    </content>
  </entry>
  <entry>
    <title>AWTA Notes are Available</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2009_01.html#000290" />
    <modified>2009-01-25T23:47:38Z</modified>
    <issued>2009-01-25T17:47:38-06:00</issued>
    <id>tag:www.io.com,2009:/~wazmo/blog//4.290</id>
    <created>2009-01-25T23:47:38Z</created>
    <summary type="text/plain">Last weekend I hosted the Eight Austin Workshop on Test Automation. We have a better record of this workshop than any previous. Notes from most of the sessions were recorded on our wiki, which also has links to photos, blog...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    <dc:subject>AWTA</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[Last weekend I hosted the <a href="http://awta.wikispaces.com/Notes+from+AWTA+2009">Eight Austin Workshop on Test Automation</a>. We have a better record of this workshop than any previous. Notes from most of the sessions were <a href="http://awta.wikispaces.com/Notes+from+AWTA+2009">recorded on our wiki</a>, which also has links to photos, blog posts and podcasts. These were being posted daily during the workshop, along with a <a href="http://search.twitter.com/search?q=%23awta">twitter stream</a>, which had comments from several people who weren't able to join us. At the end of each day, I reviewed these discussions to get freedback on the day. People who were quiet in the room were speaking up online. I felt like an actor reading reviews of my opening night.
<p>
Since then, I've seen participants twittering more. There has also been a marked rise in discussion on the <a href="http://wiki.openqa.org/display/WTR/The+IRC+Channel">#watir IRC channel</a> (although it was quiet during the workshop itself), as well as the watir mailing lists.
<p>
I'm really happy with the workshop. A lot of people helped in a lot of different ways. It's helped me frame my thoughts about frameworks: what people are doing, how the different frameworks can share more components, what people really need. I also got a chance to meet with many key contributors to the Watir project. The feedback overall has been very positive.
<p>
Next: Watir Frameworks]]>
      
    </content>
  </entry>
  <entry>
    <title>AWTA Workshop will focus on Watir in January</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_12.html#000289" />
    <modified>2008-12-04T20:59:08Z</modified>
    <issued>2008-12-04T14:59:08-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.289</id>
    <created>2008-12-04T20:59:08Z</created>
    <summary type="text/plain">In January, Charley Baker, Pete Dignan and I will be hosting the eighth Austin Workshop on Test Automation. We&amp;#8217;ve explored some aspects of Watir at past workshops, but this will be the first dedicated to it. Specifically, we seek to...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    <dc:subject>AWTA</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>In January, Charley Baker, Pete Dignan and I will be hosting the eighth <a href="http://awta.wikispaces.com">Austin Workshop on Test Automation</a>. We&#8217;ve explored some aspects of Watir at past workshops, but this will be the first dedicated to it. Specifically, we seek to understand the role that Watir is playing in organizations.</p>


	<p>This aspect interests me because I&#8217;ve observed for many years that test automation efforts struggle with the traditional testing/development relationship. The traditional approach has been for testers to develop and maintain and run the tests on their own (or with a supporting automation person or team). I&#8217;ve <a href="http://www.stickyminds.com/se/S2084.asp">observed</a> that automation provides more value to the team and is easier to develop when developers are involved. They get value from being able to run the tests themselves or as part of an automated build, and they are motivated to improve testability and reduce maintenance costs. Maximizing team value is key because it helps ensure that the automation gets the time and effort it needs to be successful. But making this work has required challenging the traditional black-box relationship between testers and developers by encouraging closer collaboration.</p>


	<p>Before I&#8217;d thrown my hat in the open-source arena, I&#8217;d been critical of commercial testing tools because they were ill suited for this kind of tester/developer collaboration. Their licensing structure discouraged sharing tests with everyone on the team, and their <a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&#38;ObjectType=COL&#38;ObjectId=2326">crap languages</a> were an insultto any self-respecting CS grad. I spent a couple of years sharing this critique, but with limited impact&#8212;the languages became slightly less crappy, but the licensing remained anti-team.</p>


	<p>Since words were making much impact, it was time for a demonstration. I worked on the precursor to Watir primarily to help people understand, in detail, what a better approach to automation looked like. Even then I assumed that the commercial tool vendors would learn from this &mdash; all my work was public &mdash; and we&#8217;d soon see better tools. Instead, Watir has become one of the leading open-source testing tools and testers all over the world are using it successfully. What started as project for advocacy and education has surprised me by turning into a something that people use everyday to accomplish production testing.</p>


	<p>I was a QA Partner/SilkTest expert for most of the 90&#8217;s. During that time, I found the need to build my own frameworks with the tool. Experts with other tools came to the same conclusions. We were all building frameworks: data-driven frameworks, keyword frameworks, and even nascent domain specific languages. But the languages that came with the tools were ill-suited for framework development, which made it difficult. Because the tools came pre-wired with their own frameworks that made overly simplistic assumptions about our testing needs. The tool vendors thought limited languages were acceptable because they didn&#8217;t think you&#8217;d need to write much code.</p>


	<p>Knowing that effective frameworks needed to be designed and customized for each testing context, I focussed on developing Watir simply as a browser driver&#8212;a library for automating browser actions. Ruby was a great language for developing frameworks, and many of us started off by using Test::Unit as the core of our functional testing frameworks. On the other hand, many of us were also using Watir for concurrency/load testing or for spidering a site and validating links and for this Test::Unit wouldn&#8217;t do. So instead we built frameworks  with different structures. As such, Watir has been less of a &#8220;testing tool&#8221; and more of a kit for building a testing tool. And our users have had to assemble their own frameworks.</p>


	<p>This has been good, because it has allowed us to develop experience in building testing frameworks, but it also has limited Watir&#8217;s reach. New users quickly face a number of momentous decisions. Should they use use Test::Unit or Rspec or something else? How do they initialize the browser and where should this code be put? Should they use global variables? We often see such questions on the Watir General list <link>. The community is always very helpful, and many have shared <link> the frameworks they&#8217;ve built, but still I&#8217;m sure these daunting issues steer many potential users away.</p>


	<p>When I first worked on Watir, I was an independent consultant. Working on an open-source project was good business. It gave me something to talk about and demo, it provided a context to collaborate and learn from others, and it provided the basis for my training classes. Previously, I taught a lecture-based class on test automation. Watir allowed me to teach automation concepts hands-on and this was much more effective. More recently, I&#8217;ve worked as a QA manager and test architect for software companies and as such I&#8217;d been less active on the Watir project, mostly focussing on the features I needed to test my companies&#8217; products.</p>


	<p>My involvement with Watir increased when Pete Dignan and I founded WatirCraft earlier this year. Our goal is to provide commercial support for Watir. When we looked at the commercial opportunities, we realized that two things needed to be done first. First, we needed better support for cross-browser testing. This is why we developed Watir 1.6, with its improved FireWatir integration. And the second thing we needed was a standard framework. The way things are today, it would be difficult to develop a line of add-on products or services because every one is using a different framework.</p>


	<p>In other words, the Watir community needs a standard framework to grow, and WatirCraft needs a standard framework to be profitable. So I am developing a standard framework for Watir. I would like to share my work in progress at AWTA and learn from others about the frameworks they've built and the important organization needs that frameworks must satisfy.</p>


	<p>We already have a lot of <a href="http://awta.wikispaces.com/Attendees+2009">great people</a> planning to join us at <span class="caps">AWTA</span>, but we still have a few slots open. We ask people planning to attend to write a letter of introduction. This is mine.</p>]]>
      
    </content>
  </entry>
  <entry>
    <title>Watir Released with Improved Support for Firefox</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_11.html#000288" />
    <modified>2008-11-11T20:56:47Z</modified>
    <issued>2008-11-11T14:56:47-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.288</id>
    <created>2008-11-11T20:56:47Z</created>
    <summary type="text/plain">Last week we released Watir 1.6.2. This is a big release with a lot of new features and fixes, but the focus has been integrating the Watir and FireWatir code bases and improving our support for Firefox. Earlier this year...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>Last week we released Watir 1.6.2. This is a big release with a lot of new features and fixes, but the focus has been integrating the Watir and FireWatir code bases and improving our support for Firefox. Earlier this year we put both projects under the same umbrella. This release significantly improves compatibility. Many of our users are finding that they can now run all or nearly all of their tests on both IE and Firefox.

<p>We've also provided other features and fixes that will be of interest to users who don't care about Firefox (if such people exist). It is backwards compatabible, so we expect all Watir users will be upgrading to this release. 
<a href="http://wtr.rubyforge.org/install.html">Install or upgrade to this release.</a>

<p>And the end of this note, we mention a few issues that people have encountered when upgrading to this version.

<h3>Firefox Support</h3>

<p>We've fixed many of the reported compatibility issues. FireWatir now supports nearly all off of the elements supported by Watir. Also both implementations now support being able to specify page elements using multiple attributes (e.g. <tt>browser.button(:name =&gt; 'Purchase", :index =&gt; 2).click</tt>). Lots of other issues, detailed in the <a href="http://wiki.openqa.org/display/WTR/2008/11/06/Watir+and+FireWatir+1.6.2+are+Released">release notes</a>, have also been fixed.

<p>Both Watir and FireWatir users can simply upgrade and continue to run their existing tests. But they can also make use of our new generic browser interface.
<pre>require 'watir'
browser = Watir::Browser.new
</pre>Once you have changed your tests to use this instead of Watir::IE.new, then you can <a href="http://wiki.openqa.org/display/WTR/Browser.new">configure</a> which browser will be used at runtime.

<h3>Modal Dialog Support</h3>
<p>We have updated Watir's modal dialog support to work with Ruby 1.8.6. Previously, users who needed to work with the showModalDialog had to use Ruby 1.8.2, but this restriction is no longer in place. We now recommend that all Watir users use the latest version of Ruby 1.8.6.

<h3>Speed Improvements on IE</h3>
<p>We made some speed improvements in early version of Watir 1.5 that stopped working with version 1.5.4 - 1.5.6. These speed improvements are now working again. Users who had not upgraded to 1.5.6 because of performance concerns should upgrade to this release of Watir.

<p>We've also added unit tests that will alert us if we happen to break this functionality in the future. Sorry about that.

<h3>Multiple Attribute Support for All Page Elements</h3>
<p>I mentioned this above, but it bears repeating. Previously, Watir allowed you to access some page elements using multiple attributes, but you could only use a single attribute to access input elements such as buttons or text fields or select lists. Now you can use multiple attributes to access any of these elements. There is no limit to the number of attributes you can use. In other words, multiple attribute support has been improved for both IE and Firefox

<h3>Don't use "include Watir" at Toplevel</h3>
<p>For some time, we've been telling people to avoid using "include Watir" in their scripts because it had the potential to cause unforeseeable problems. With this release, it causes conflicts with one of the other libraries that Watir uses. If you have been using "include Watir" in your scripts please read our <a href="http://wiki.openqa.org/display/WTR/include+Watir">detailed advice</a> on this topic.

<h3>Builder Error is Benign</h3>
<p>When installing Watir 1.6.2, some users will see this error.

<pre>ERROR:  While generating documentation for builder-2.1.2
... MESSAGE:   Unhandled special: Special: type=17, text="&lt;!-- HI --&gt;"
... RDOC args: --ri --op e:/ruby/lib/ruby/gems/1.8/doc/builder-2.1.2/ri --title
Builder -- Easy XML Building --main README --line-numbers --quiet lib CHANGES Ra
kefile README doc/releases/builder-1.2.4.rdoc doc/releases/builder-2.0.0.rdoc do
c/releases/builder-2.1.1.rdoc
</pre>It is harmless and can be ignored. All it means is that the documentation for the Builder gem could not be generated. Everything else will work.

<h3>Unit Tests Won't Run from Gems</h3>
<p>You can no longer run Watir's unit tests from within a gem. This is because we have started integrating our Watir/FireWatir test suites and they have cross dependencies. They still run fine from source. You and run them <a href="http://wiki.openqa.org/display/WTR/Running+Unit+Tests+in+Development">yourself</a>. We also run them everyday and publicly post <a href="http://watirbuild.com/">results</a>.
]]>
      
    </content>
  </entry>
  <entry>
    <title>Two Ruby Books for Watir Testers</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_10.html#000287" />
    <modified>2008-10-17T21:48:00Z</modified>
    <issued>2008-10-17T16:48:00-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.287</id>
    <created>2008-10-17T21:48:00Z</created>
    <summary type="text/plain">Many Watir users want to learn more Ruby so that they can build out their frameworks and libraries. When we created Watir, we knew that testers needed an easy-to-use full-featured language for their automation. Ruby allows most testers to quickly...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    <dc:subject>Ruby</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>Many Watir users want to learn more Ruby so that they can build out their frameworks and libraries. When we created Watir, we knew that testers needed an easy-to-use full-featured language for their automation. Ruby allows most testers to quickly write simple Watir scripts. But as their tests grow and they need to add features and organization to their test suites, they are looking for more Ruby techniques. I pulled together several <a href="http://www.io.com/~wazmo/blog/archives/2007_07.html#000255">recommendations for ruby books</a> some time ago. Today, I'd like to focus on the two books that I think Watir testers would benefit from the most.</p>

<p>After teaching Watir/Ruby scripting to dozens of testers, I've found that testers -- even those who insist they are not developers -- can learn effective programming techniques and concepts. But they need to be presented in concrete, practical contexts. Most programming manuals, on the other hand, use artificial examples assume an understanding of abstract concepts, such as exception handling or object-oriented programming. That's why they don't work for many testers.</p>

<p>If you are tester who knows some programming -- but not object-oriented -- and strongly prefers concrete, practical examples, then these recommendations are for you.</p>

<p>Testers looking to better organize their code and better understand how to use classes, modules and libraries will benefit from studying <a href="http://www.pragmaticprogrammer.com/titles/bmsft/">Everyday Scripting with Ruby</a> by Brian Marick. It has a tutorial format, walking you through a series of increasingly richer examples. Previously, I said:</p>

<blockquote>In Everyday Scripting with Ruby, Marick teaches the Ruby language by working through a series of practical scripts. These scripts accomplish everyday tasks that every tester can relate to: comparing file lists, monitoring code changes, scraping web pages, and using a notification framework. The book covers not only the Ruby language, including an excellent chapter on regular expressions, but also provides detailed advice on how to develop reusable libraries, something that Watir users are always asking for help with. If you are a serious Watir user, don&#8217;t hesitate to get this book.</blockquote>Although this book only touches on Watir explicitly for a few pages, it actually has a deep connection. Back in 2002, Marick and I started teaching a class together called "Scripting for Testers". This class was based on our mutual conviction that testers needed to learn the fundamentals of scripting. Watir was one spin off from this class. The other is this book. Watir grew from a small library we used in the class to show how to use scripting to automate a browser. And Marick poured his commitment to teaching testers scripting into this book. As such, the book doesn't just teach Ruby, but rather is really focussed on teaching good development practices, such as when to use global variables and how to do test-driven development.

<p>Marick's book has a tutorial format suitable for serious study. Another good book for testers is the <a href="http://www.amazon.com/gp/product/0596523696/bretpettichossof">Ruby Cookbook</a>, By Carlson and Richardson. It consists of over 300 recipes, each only a few pages, that can be read in any order. Here's a quick selection of items from the table of contents:</p>

<pre>1.19  Validating an Email Address
3.7   Converting Between Time Zones
4.9   Sorting an Array by Frequency of Appearance
5.11  Choosing Randomly from a Weighted List
9.6   Automatically Loading Libraries as Needed
11.13 Extracting All the URLs from an HTML Document
14.5  Sending Mail
</pre>]]>
      
    </content>
  </entry>
  <entry>
    <title>Watir Status Update</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_10.html#000286" />
    <modified>2008-10-01T14:54:40Z</modified>
    <issued>2008-10-01T09:54:40-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.286</id>
    <created>2008-10-01T14:54:40Z</created>
    <summary type="text/plain">I&apos;ve been busy lately working on the next release of Watir, coming out later this month. It will be a combined Watir/FireWatir release. I discuss this work in detail in this podcast. Our work on supporting Firefox is drawing contributors...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    <dc:subject>Watir</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>I've been busy lately working on the next release of <a href="http://wtr.rubyforge.org/">Watir</a>, coming out later this month. It will be a combined Watir/FireWatir release. I discuss this work in detail in this <a href="http://watirpodcast.com/bret-pettichord-on-firewatir/">podcast</a>. Our work on supporting Firefox is drawing contributors from the community. This prompted me to write up <a href="http://wiki.openqa.org/display/WTR/Submitting+Code">guidelines</a> on making contributions.</p>

<p>At <a href="http://www.watircraft.com/">WatirCraft</a>, we are currently <a href="http://www.watircraft.com/customer-wanted/">looking for customers</a>, particularly those interested in a Watir-based framework. </p>

<p>One of the reasons that I've been posting here less is that I've been posting on <a href="http://twitter.com/bpettichord">twitter</a> and on something I call my <a href="http://feeds.feedburner.com/bretshotlist">miniblog</a>. I've also been frequenting the <a href="http://wiki.openqa.org/display/WTR/The+IRC+Channel">#watir IRC channel.</a></p>]]>
      
    </content>
  </entry>
  <entry>
    <title>Agile is All About Feedback</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_08.html#000285" />
    <modified>2008-08-16T22:51:40Z</modified>
    <issued>2008-08-16T17:51:40-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.285</id>
    <created>2008-08-16T22:51:40Z</created>
    <summary type="text/plain">Agile methods allow your team to get feedback regarding the software you are building. That&amp;#8217;s the point. The feedback works on several levels. Pair programming gives developers instant feedback on their code. Stories represent units of work where testers and...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    <dc:subject>Agile</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[Agile methods allow your team to get feedback regarding the software
you are building. That&#8217;s the point. The feedback works on several
levels. Pair programming gives developers instant feedback on their
code. Stories represent units of work where testers and analysts can give feedback to developers. Iteration releases facilitate feedback from outside the team. Most agile practices are valuable because they create feedback
loops that allow teams to adapt.
<p>
	
A lot of teams adopt Agile with a grab-bag approach without quite realizing
the point of the practices. They pair-program without discussion or
changing drivers. They send code to QA that the testers can&#8217;t test
because the story boundaries are arbitrary; they can&#8217;t tell whether they found a bug or just the end of the story. Iterations become schedule milestones rather than real opportunities to improve alignment and adjust objectives.
<p>
	
The reason Agile teams can do with less planning is because feedback allows you to make sure that you are on course. If you don&#8217;t have
meaningful feedback then you&#8217;re not agile. You&#8217;re just in a new form of chaos.
<p>
	
On my last project, we defined our stories so that they made sense to
everyone on the team. Our analysts, testers and developers could all
understand and review individual stories. But we found that we had to
create a larger grouping, which we called features, to facilitate meaningful
review from outside our team. We made sure all the stories in a feature were complete before soliciting feedback from outside the team.
<p>
	
Being able to give and receive meaningful feedback is often a challenge for people. Yet it is crucial to success with Agile.
<p>
	
Agile teams get into terrible binds when executives or clients hand
them a list of requirements at the start, tell them to use Agile
(because its faster), and then don&#8217;t want to participate in the
feedback process.
<p>
	
Agile isn&#8217;t faster all by itself. Agile is only a benefit in a world
that acknowledges the value of adapting. And that adaptability needs
to go all the way to whoever is funding the project. It is not enough for the team to be Agile. The sponsors need to be Agile too. Are all of the
requirements really required? Do we know exactly what the software needs to
look like from the start?
<p>
	
Agile is faster because feedback allows you to find and focus on the
most valuable features. If you are certain you know what needs to be built, don&#8217;t use Agile. If you don&#8217;t
have time to gather <em>and act</em> on feedback from customers, then don&#8217;t
use Agile. If you are sure that everyone understands exactly what
needs to be done from the start, then don&#8217;t use Agile.
<p>
	
Agile practices build a technical and organizational infrastructure to
facilitate getting and acting on feedback. If you aren&#8217;t going to
adapt to feedback, then this infrastracture is waste that will only
slow you down.

Previous: <a href="http://www.io.com/~wazmo/blog/archives/2008_07.html#000283">Lessons Learned in Agile Development
</a>
Next: Agile Mostly Means Something Between Scrum and XP
]]>
      
    </content>
  </entry>
  <entry>
    <title>FireWatir 1.2.1 is Released</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_08.html#000284" />
    <modified>2008-08-15T22:27:27Z</modified>
    <issued>2008-08-15T17:27:27-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.284</id>
    <created>2008-08-15T22:27:27Z</created>
    <summary type="text/plain">We have a released a new version of FireWatir. This includes some fixes related to Firefox 3. It also marks the merger of the FireWatir and Watir projects. Unlike Watir, FireWatir works on Windows, Mac and Linux. To install: &quot;gem...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>We have a released a new version of FireWatir. This includes some fixes related to Firefox 3. It also marks the merger of the FireWatir and Watir projects. Unlike Watir, FireWatir works on Windows, Mac and Linux.</p>

<p>To install:<br />
<ol><li>"gem install firewatir"</li><li>Install the <a href="http://wiki.openqa.org/display/WTR/FireWatir">plugin for Firefox</a>.</ol></p>]]>
      
    </content>
  </entry>
  <entry>
    <title>Lessons Learned in Agile Development</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_07.html#000283" />
    <modified>2008-07-29T19:57:27Z</modified>
    <issued>2008-07-29T14:57:27-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.283</id>
    <created>2008-07-29T19:57:27Z</created>
    <summary type="text/plain"> This begins a series of short essays on Agile development. I am writing these for several reasons. We are using many Agile methods in the development of Watir. We are using such methods as continuous integration and emergent architecture...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[	<p>This begins a series of short essays on Agile development. I
am writing these for several reasons.</p>


	<p><strong>We are using many Agile methods in the development of Watir.</strong> We are
 using such methods as continuous integration and emergent
 architecture in our development. Many Watir users are curious about
 our development, but unfamiliar with some of our methods. I want them
 to understand.</p>


	<p><strong>Many Watir users and other testers are trying to understand Agile.</strong>
  Many are on teams that have recently begun using Agile methods, and
  are wondering whether it works. It does, but there are also lots of
  ways to fail. Testers, always quick to find faults, have a hard time
  with much of the Agile literature, written as it is with developers
  or managers in mind. I&#8217;m always thinking about the testers.</p>


	<p><strong>WatirCraft is also using Agile methods.</strong> Explaining Agile gives me a
 chance to explain to the current and future WatirCraft team some of
 the rationale behind our methods.</p>


	<p>I began studying Agile testing six years ago and for the past four
years have worked exclusively with talented, high-performing Agile
teams. In the past few years, I&#8217;ve also been coaching my collegues on
Agile methods in areas beyond testing. In that time, I&#8217;ve compiled
quite a pile of notes on the topic, including key ideas and common
misunderstandings. I&#8217;m happy to have this chance to share them.</p>


	<p>Next: <a href="http://www.io.com/~wazmo/blog/archives/2008_08.html#000285">Agile is all about feedback.</a></p>

]]>
      
    </content>
  </entry>
  <entry>
    <title>Private Blogs</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_07.html#000282" />
    <modified>2008-07-26T13:41:28Z</modified>
    <issued>2008-07-26T08:41:28-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.282</id>
    <created>2008-07-26T13:41:28Z</created>
    <summary type="text/plain"> Yesterday, I spent yet another evening researching private blogging options. Several months ago, I started a private blog to share with the people who are helping us launch WatirCraft. I&apos;ve had these before at previous companies. I think I...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>
Yesterday, I spent yet another evening researching private blogging options. Several months ago, I started a private blog to share with the people who are helping us launch WatirCraft. I've had these before at previous companies. I think I was the first to start an internal blog at ThoughtWorks. At Dovetail, many people already had them when i arrived. Some used it as a training ground to get more comfortable with the format before blogging publicly. I liked it as a way to publish essays in a way that encouraged a public discussion. Something similar can be done with email, but there are a few drawbacks.
</p><p>
Invariably, email discussions leave someone important out, and can be difficult to add people to the discussion later. Internal blogs don't have this problem: any one in the company who finds out about the discussion can join in, sometimes even months later. I also find myself reluctant to send out emails because they can be so interrupting. With a blog, it seems easier to write something that is important but not urgent, and you'll get more thoughtful replies because people know that they replies will be archived.
</p><p>
I remember pushing the idea that QA people should be called &#8220;Testers&#8221; (and not &#8220;QA&#8221;) on my ThoughtWorks blog. We had pretty much come to agree on this point in the Context-Driven community before I joined ThoughtWorks, but I came to see that ThoughtWorks, like the industry at large, still labelled the role &#8220;QA&#8221;. Because I was then in a position of some standing (Director of Testing Practice), making an issue of this on my public blog would have been a positional move, likely polarizing both me and those who disagreed. By publishing my position internally, I essentially acknowledged that I wanted feedback from my collegues on this topic. I remember Rebecca Parsons suggested &#8220;QA/Tester,&#8221; which, though awkward, didn't run into the various objections I had laid out against QA, and since then I've been more comfortable with the &#8220;QA&#8221; term, even though I still usually prefer &#8220;Testers&#8221;.
</p><p>
At both ThoughtWorks and Dovetail, we made our blogs private simply by publishing regular blogs on our internal networks. You either had to be in our offices or connect over the VPN to see them. Web-based feedreaders (like Google Reader) wouldn't work, but you could use any client-based feedreader (Outlook has one) when you were connected to the company network.
</p><p>
I looked closely at Blogger and WordPress and also more generally across the field and was not able to find any ready-to-use blog engine that supported private blogs and provided a feed. It is possible for feeds to be password protected. For example, we use Highrise and it provides a password-protected feed containing recent changes. But i could not find such a thing for any blogs.
</p><p>
Apparently several blog engines added support for private blogging a couple of years ago, but left public feeds on them. These were crawled by search engines and people were finding their private posts on Google! The quick fix was to remove the feeds, and apparently the issue hasn't been addressed since. One option that might work for some would be to have a blog that isn't strictly private, but is protected from search engines, so you'd have to know the URL to read it. This option is offered by WordPress.
</p><p>
At WatirCraft, we have not yet set up a VPN, so that is not an option for us. For now, it seems the best way to run an internal blog is to make one private and then to set up an accompanying mailing list that you post to when there are updates on the blog.
</p>]]>
      
    </content>
  </entry>
  <entry>
    <title>Setting up Watir with Cruise Control</title>
    <link rel="alternate" type="text/html" href="http://www.io.com/~wazmo/blog/archives/2008_07.html#000281" />
    <modified>2008-07-15T06:22:02Z</modified>
    <issued>2008-07-15T01:22:02-06:00</issued>
    <id>tag:www.io.com,2008:/~wazmo/blog//4.281</id>
    <created>2008-07-15T06:22:02Z</created>
    <summary type="text/plain"> Last week I set up Watir so that its unit tests are run automatically whenever any changes are committed (&amp;#8220;checked in&amp;#8221;) to the development repository. This is done with Cruise Control, a tool which watches repositories, runs tests and...</summary>
    <author>
      <name>bret</name>
      <url>http://www.pettichord.com</url>
      <email>bret@pettichord.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.io.com/~wazmo/blog/">
      <![CDATA[<p>
Last week I set up <a href="http://wtr.rubyforge.org">Watir</a> so that its unit tests are run automatically whenever any changes are committed (&#8220;checked in&#8221;) to the development repository. This is done with Cruise Control, a tool which watches repositories, runs tests and posts results. The Watir tests are run at watirbuild.com and you can <a href="http://watirbuild.com">check the latest test results</a> yourself. Indeed, the page has a button called &#8220;build now.&#8221; Click it and the tests will be run immediately on the server.
</p><p>
The general term for this process is <em><a href="http://martinfowler.com/articles/continuousIntegration.html">continuous integration</a></em>&#8212;a common practice with Agile teams. I&#8217;ll write more about why this practice is important for the Watir project another day. Today&#8217;s post is about what I did to set this up.
</p><p>
First, I got a server, a virtual private server (VPS) running Windows from <a href="http://vpsland.com/">VPSLAND</a>. I would have preferred a machine running XP, since most Watir users use that, but the closest I could get was 32-bit Windows 2003 Server. Cost: $19 a month, courtesy of <a href="http://www.watircraft.com">WatirCraft</a>. This VPS is named watirbuild.com.
</p><p>
Next I installed the Google Toolbar, because I can&#8217;t find anything without it. I also had to loosen up security on IE so that I could use it to download the software I needed. (The server VPSland provided came with security really locked down.)
</p><p>
I then installed <a href="http://rubyforge.org/frs/?group_id=167&amp;release_id=17128">Ruby 1.8.6-26</a>. The next step was to do a &#8220;<code>gem update --system</code>&#8221; to update the gem installer to the latest version (which Watir needs), but this command failed with this error.
</p><pre>c:/ruby/1.8/yaml.rb:133: [BUG] Segmentation fault
</pre><p>
A little research showed that this was a common problem on  RAM-constrained VPS&#8217;s. Apparently the pre-update gem installer is a memory hog and the VPS&#8217;s don&#8217;t have any swap space. The common workaround has been manually download the gems before installing them. (Only the remote gem installer runs into memory problems.) But I used a different approach.
</p><p>
I wanted our test environment to match, as much as possible, the environments that other people are using for testing, so I really wanted to have the latest gem installer. I also knew that it had better memory handling. So what I did was install Ruby on one of my own systems with more RAM, and then did a &#8220;<code>gem update --system</code>&#8221; on it. Then I zipped up the resulting &#8220;ruby&#8221; directory (using <a href="http://www.7-zip.org/">7zip</a>), uploaded it to watirbuild.com and then unzipped it there over the original installation. I was then able to do remote gem installs without any further trouble.
</p><p>
Because Watir now depends on several other gems. I did a &#8220;<code>gem install watir</code>&#8221; and then uninstalled the Watir gem itself. This left all the dependent gems installed.
</p><p>
Watir uses Subversion (SVN) as its development repository, so we needed a client to access that code. I installed the <a href="http://www.collab.net/downloads/subversion/">command line client.</a>
</p><p>
The next step was to install the continuous integration tool itself. I chose <a href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl.rb</a> because it is Ruby-based and easy to configure. Pre-deployment testing had shown, however, that the latest release (1.3.0) did not work on Windows (After starting the server, it would get repeated "Access is denied." errors from SVN.) Instead I needed to use the latest from its development repository. They recently migrated that project from Subversion to Git, so that meant I needed to install a <a href="http://code.google.com/p/msysgit/downloads/list">Git client.</a> Once it was installed, installing Cruise was simply a matter of doing
</p><pre>
git clone git://rubyforge.org/cruisecontrolrb.git
</pre><p>
With Cruise installed, I added the Watir project:
</p><pre>
cruise add watir https://svn.openqa.org/svn/watir/trunk/watir
</pre><p>
I also needed to add a &#8220;cruise&#8221; target to Watir&#8217;s rakefile. Which I did with the following code:
</p><pre>
desc 'Run unit tests'
task :test do
  load 'unittests/core_tests.rb'
end

task :cruise =&gt; :test
</pre><p>
(This code is now part of the Watir project, so you wouldn't need to provide this code if you were running Watir. But you will need something similar if you are setting up your own project with CruiseControl.rb.)
</p><p>
Then I started Cruise using &#8220;<code>cruise start -p 80</code>&#8221;, and this immediately kicked off Watir&#8217;s unit tests. Some failed on first run, and I had to <a href="http://wiki.openqa.org/display/WTR/Run+the+Watir+Unit+Tests" title="http://code.google.com/p/msysgit/downloads/list">modify a couple of IE&#8217;s security settings</a> to fix this.
</p><p>
To test everything, I checked in a minor documentation change to Watir and verified that the unit tests were automatically kicked off.
</p>]]>
      
    </content>
  </entry>

</feed>