05 Aug 2008 Speaking at Agile 2008 Conference, August 6 2:45 PM
This week I am attending the Agile 2008 conference in Toronto. It promises to be a lot of fun and a great opportunity to discover the newest techniques, technologies, ideas, experiences and perspectives in the Agile community.
On Thursday, at 2:45 PM I will be presenting a session on best practices in the field of automated web acceptance testing. I will share the experience of my ThoughtWorks team which turned a 3 hours web acceptance build that was mostly red, into a build that stays green an run under 10 minutes!
I hope this talk will be a great opportunity to learn about your experiences in this field too. Automated acceptance testing is a cornerstone of Extreme Programming and Agile practices. Yet automated web acceptance testing still routinely “sucks” for most projects, so sharing our successes and setbacks will help our community move automated web acceptance testing forward.
Improving the state of automated web acceptance testing is a worthy cause, so much so that Ward Cunningham was kind enough to send me quote reminding us why:
“Whenever we apply more than the most superficial effort programming anything, we will be wasting time unless some of that effort is turned back on the work itself so as to convince ourselves that the whole is sound.” – Ward Cunningham
If quick feedback and high R.O.I web acceptance testing matters to you too, I would love to meet up with you, hear your stories and feedback. Ping me and we’ll figure out the best way to meet while we’re all in the same place!
2 comments25 Mar 2008 Speaking at MountainWest RubyConf 2008, March 28 and 29
I will be speaking at Mountain West RubyConf 2008 on March 28 and 29, in Salt Lake City, Utah.
Mountain West RubyConf is a great Ruby conference, one that manages to have an intimate environment, not to mention a great panel of speakers, so I feel very honored to have been selected to present a session there. Big thanks to the MountainWest RubyConf organizers and especially to Pat Eyler of On Ruby and On Erlang fame.
My talk will introduce and demonstrate some key system diagnostic tools and techniques in the context of Ruby and Ruby on Rails development. I learnt the hard way on the field, a collection of troubleshooting techniques which are not widely documented nor well-known within the Rails community. During the session, I will demonstrate some techniques already covered in my Addison-Wesley shortcut, Troubleshooting Ruby Processes, as well as others strategies and tools which are new, or lack sufficient documentation.
Hope to see you in Salt Lake City!
add a comment26 Feb 2008 Time to Upgrade your Web Acceptance Testing: New Selenium Grid Release Available!
Selenium Grid adoption is accelerating and I am excited to announce a new release! Based on your helpful user feedback, I fixed a few bugs, improved documentation, provided better examples and ensured seamless integration with the upcoming release of Selenium Remote Control.
Main highlights for this 1.0 release include:
-
Amazon EC2 Integration and Automation
Selenium Grid now comes with out-of-the-box support for EC2. There is an official EC2 image which bundles all the tools you need to establish a Selenium Grid cluster on Amazon Elastic Compute Cloud (including a VNC server). Selenium Grid 1.0 also comes with Capistrano tasks to automate deployment and management of the Selenium Grid on EC2 (in the
examples/ec2directory). Check out the Selenium Grid Website for more details on the EC2 instrumentation and how to run Selenium Grid Demo on EC2. -
A new example demonstrating how to run in parallel Selenium tests written in Ruby (RSpec)
See the
examples/rspecdirectory. The current solution (spawning multiple processes) is basic but works great and is used daily on professional projects. The plan is to evolve the current solution to an actual RSpec test runner based on Rinda/DRb, Memcache or a flavor a MapReduce. Of course contributions are welcome. Make sure that you also have a look in thereportsdirectory after running the tests: You will see some nice test reports including screenshots of the application under test. The screenshot formatter used in Selenium Grid Ruby example is based on Spec::UI code by Aslak, just tweaked a little bit to make it work with RSpec 1.1.3. -
Selenium Grid demo is now powered by TestNG (in lieu of Parallel JUnit)
TestNG provides the best and the more scalable solution to run tests in parallel for Selenium tests written in Java. The demo now demonstrates best practices in the field. Feel free to use it as a starting point when instrumenting your Selenium test suite for Selenium Grid.
-
Additional parameters can be passed to Selenium remote controls at startup
Just set the
seleniumArgsJava property when launching the remote control. For instance, to start a remote control in multi window and debug mode you would use:ant -DseleniumArgs="-multiWindow -debug" launch-remote-control
Ruby dudes can use:
rake hub:start SELENIUM_ARGS="-multiWindow -debug"
-
Selenium Grid now works with 0.9.3 Remote Controls
Just replace the
lib/selenium-server-0.9.2.jarlibrary packaged in Selenium Grid distribution with a 0.9.3 snapshot of Selenium Remote Control if you want to try it out. Selenium Remote Control 0.9.3 branch changed the way the session IDs are set and is now using GUIDs. -
Better handling of massive text field values
Selenium Grid was choking when testing fields with big chunks of text. Selenium Grid now uses HTTP POST to relay Selenese commands to the remote controls and everything works like a charm.
-
Support for web pages including international characters
Selenium Grid was also misbehaving for web pages with international characters. Not anymore! Selenium Grid now speaks whatever language you speak. Since Selenium Remote Control does not explicitly set the charset in HTTP request headers, we changed our
HttpClientwrapper to assume UTF-8.
Thanks to Vinay Tota, Maria Elisa Sanchez, Sam Chen, Miles, Shiang Luong, Daniel Stironek, Adrian Gan, Mattias, Sem Adou, Joel and David Burns for reporting bugs, suggesting interesting new features or helping me improve the documentation in the Selenium Grid Forums. Thank you also to Clint Bishop who helped convert some test to JRuby, and to Patrick Lightbody who is always here to help me with OpenQA infrastructure.
Enjoy, and don’t forget to provide feedback!
11 comments20 Feb 2008 Monday, Feb 25: Get The Latest Scoop on Selenium and Meet the Core Team!
Google will be hosting the world’s first Selenium Users Open Evening in Mountain View, CA on Monday, February 25 from 6:30PM to 9:00PM. The event will feature a panel session and a series of lightning talks by representatives from all the major Selenium projects.
Come join us for this unique opportunity to meet the Selenium core team, get the latest scoop on web testing, discuss Selenium vision and future, share your ideas or finally ask the questions that you’ve been dying to ask!
So what is Selenium? For the uninitiated, Selenium is a collection of Open Source tools for functional testing of web application. Selenium technology is cross-browser (IE, Firefox and Safari), cross-platform (Windows, Linux, and Mac) and language-agnostic – You can write your tests in Ruby, Java, C#, Python, Perl, PHP or even plain HTML! In fact, if you’re really not in the mood to write any tests at all, the Selenium IDE can record, save and play back any browsing session in Firefox. Quite handy, especially if your business analyst use this feature to communicate the hard-to-reproduce bug that he just discovered! Last but not least, Selenium is free and enjoy wide community support.
I will be participating in the Selenium Users Open Evening as the author and principal developer of Selenium Grid, a tool that transparently distribute Selenium infrastructure on multiple machines so that you can run your web tests in parallel – without changing a single line of your existing Selenium tests. Selenium Grid can dramatically speed up web testing by leveraging your existing computing infrastructure, and it has been used to bring builds that used to take hours down to a couple of minutes. Be ready for some announcements and exciting demos on Selenium Grid during ”Selenium Users Open Evening”.
Hope to see you there. Don’t forget to sign up.
add a comment08 Nov 2007 Just Published a New Book: "Troubleshooting Ruby Processes: Leveraging the Unix Platform When the Usual Ruby Tricks Stop Working"
I am excited to announce the publication of a PDF short cut with Addison-Wesley, part of Obie Fernandez’s awsome Professional Ruby Series: “Troubleshooting Ruby Processes: Leveraging the Unix Platform When the Usual Ruby Tricks Stop Working”
In this electronic book, I share some of my experiences troubleshooting production problems while deploying Ruby on Rails applications in the field. In the course of delivering large Ruby on Rails projects, my teammates and I at ThoughtWorks encountered complex issues that could not be resolved employing the standard Ruby tricks (i.e. raising exceptions, irb, script/console, log file, breakpointer, debugger, etc.). Often some of our Mongrel servers would hang, offering no real clue as to the exact source of the problem or how to solve it. Resolving these problems required leveraging not only my Ruby skills but also a good understanding of the underlying operating system. System tools such as lsof, strace, DTrace or gdb proved to be key to the success of our projects.
This book also provides concrete examples that illustrate how to use these tools to solve real-life problems in Ruby development. The content is not specific to Ruby on Rails and will be useful for troubleshooting problems with any Ruby process. Developing expertise in this area is key if you are developing professional Ruby applications. In this way, should your production Mongrel cluster freeze and stop serving HTTP requests, it will not take you 2 days to figure out why! ;-)
add a comment08 Mar 2007 Getting started with Autotest
Why manually run your tests, when the computer can do it for you! Autotest is a great tool to speed up test-driven development with Ruby or Ruby on Rails.
Autotest makes your coding session even more
productive as it automatically runs a subset of your test suite each time you change a file.
Autotest is smart — it figures out which subset to run based on the files you've changed.
Think of it as Continuous Testing
.
Autotest source code is well-documented (rdoc) but finding a high level overview online is a little more challenging. This article will get you up and running in no time, so that you may concentrate on writing code. Let's get started!
40 comments