Monday, April 4, 2011

Selenium Conference: Day 1

from seleniumconf import *
tweet("#SeConf is awesome!")

Greeting and welcome from the First* Selenium Conference (the asterisk is because this was the first "planned" one, but some enterprising Selenium nerds in Kiev apparently held one before this one was scheduled to go live).

The conference is totally sold out, there's not an empty seat anywhere, and that's even for Monday which is the "workshop day". Note, at most conferences, attendees pay extra for the workshops, and because of that, there's usually a much lower attendance. Selenium Conference offered their workshops as part of the conference payment, so everyone who wanted to attend the conferences could do so.

What happens when you offer free workshops to all conference attendees? All conference attendees attend the workshops, which is an otherwise unheard of proposition. Don't get me wrong, I think it's great to see so many people here, but so many users definitely overloads the network! Downloading the files needed has been a challenge for several of the workshops, but if you are quick, you can get them before the rush :). In addition, I had wonderful company by having Marlena Compton, Dawn Cannan and Patrick Wilson-Welsh sitting with me; during the day we received the nick name of the "table of trouble"or as we referred to ourselves, the MST 3000 of SE Conf ;).

The first workshop covered creating and modifying Selenium IDE plug-ins. There were several examples offered, and the examples ranged from very basic to significantly advanced enough to be interesting to a few coders in the audience. Another cool thing is that the sample version of Selenium IDE used works with Firefox 4 (whereas the official released version does not, so as a bonus, I now have a working version of selenium IDE for Firefox 4. Nice :)!

The second workshop  dealt with FlexPilot. From the GitHub description, " FlexPilot is a library for doing easy testing automation of Flash and Flex applications. Includes a locator/lookup mechanism, eventing, and an AS3 test-runner". Again, this is a application that works with the Selenum IDE as well, so that users who want to get familiar with the tools can do so easily by using the Selenium IDE.

The third workshop talk covered creation and coding of page object models. Adam Goucher and Patrick Wilson-Welsh covered the strange and unusual world where transactions are getting ever more strange and requiring more details (such as jQuery and CSS as a way to avoid having to use Xpath) which goes way beyond the expected HTTP transactions of yore. This was an engaging and entertaining talk, but as has been observed by a number of people, the potted plant behind them fell over, prompting them to quote that "their talk was so boring that the potted plants went to sleep"... it's not true, it was actually an engaging conversation and helped by the fact that two people were covering it.  The tweet stream for the conference has been active and varied, and has been well covered under the #SeConf hash tag. If you go there, you will see several links to the source code used in the workshops.

After lunch, we focused a bit of attention on watir-webdriver with  Jari Bakken (he's also the maintainer of the Ruby plug-in for Selenium). It's interesting to compare the syntax and the implementations for selenium-webdriver and watir-webdriver. As the implementations are comparing Java to Ruby, the watir-webdriver code displayed is more terse and more compact. the examples displayed looked interesting, but were hindered by the fact that the network was working overtime to support the number of conections. Jari waled through the examples for us to watch but the "table of trouble" had some additional ideas (I'll let Marlena Compton say what we all said ;) ):

Marlena Compton
At the table of trouble we've decided to use the Selenium Conference website as example for the workshop.
We had a chance to focus on the webdriver API with Eran Messeri, and the details provided gave us a good feel how to make calls to the Selenium API. OF course, there are some challenges, too, and needless to say, the Table of Trouble figured out where and what at times:

Dawn Cannan
Table of Trouble is harsh! RT @: If you provide 20 ways to shave a yak, expect badly-shaved yaks.
Be that as it may, it was helpful to see some concrete examples of how to use the API in the wild (note: update this section with the link of the actual slides and source code when it is posted).

Simon Stewart kept the ball rolling with more WebDriver focus and updating to WebDriver. The internet issues had become so much of an issue, both internal and external, that the workshops became more along the line of peer demos, with the explanation of the tests, the tech behind them and a Q&A to go along with it. While there is of course a lot of attention focused on WebDriver, since it is the next generation of Selenium, there also seems to be a feeling of unease as to what WebDriver is missing, and that, while the technology is impressive, it's missing enough to not be seen yet as a complete replacement for Selenium. From my perspective, I don't have enough invested in WebDriver yet to really say one way or another.

The final talk of the day was given by David Burns, and focused on client-side profiling testing. This was also related to Selenium 2,  and this demo was approached from the idea of piecing a number of things together. Client-side profiling means basically looking at everything a user would download in the process of their user experience. Lots of steps come together to get a clear picture of how much stuff is being downloaded for each transaction or page view. PageSpeed and Yslow are some of the (manual) tools for looking at performance data at client side that can help to build a profile and effetively build up scripts to help gather data an report data.

Lots of great information today, and lots of interesting new ideas and avenues to explore. Glad I was able to attend today... even with the technical hiccups (cool thing is, 'm going to be able to say years in the future "yep ,I was there at the very beginning of Selenium Conference, when the organizers expected 50 for workshop day and 300+ came!)

As a final note... You all may be wondering what that little snippet of code at the top of my screen is. It's a challenge that was made to encourage people to post to twitter using a Selenium or WebDriver script. Many people made similar posts, but someone went a little overboard (or perhaps that was the whole point...):

is awesome x 59! @-WebDriver is even more awesome!
(note, the times 59 is a reference to how many individual tweets the script made. Hey I appreciate enthusiasm as much as anyone, but  59 times?!)

Now it's off to the Cigar Bar in Jackson Square for the official "kickoff" of the conference. I won't have Internet access there, so I'll have to tell you more tomorrow about hoe that all goes, but I'm looking forward to seeing what the "Table of Trouble" gets into after hours (LOL!). All in all a good start to what promises to be an enlightening few days.

No comments: