Gotta start this up again…
May 13, 2013
A Smattering of Selenium #148
March 25, 2013
Curious to know how we picked speakers for the 2013 SeConf? Read on…
This is a guest post by Marcus Merrell, one of the organizers of the 2013 Selenium Conference.
Selenium/Webdriver has kept my family fed since 2007. Since I’ve never committed a line of code to this magical project, I thought the least I could do was spend a few hours helping put SeConf 2013 together. When they asked for a volunteer to put the speaker program together, I was thrilled to step forward!
Ultimately, I decided on a more conventional approach than straight-up dictatorship–and I can only credit the 5 awesome people on the committee and their ruthless adherence to the principle that “data wins”. I wanted a mix of hard-core browser techs, language-binding mavens, and people who ultimately made their living keeping a large variety of clients happy. And Simon–always Simon. I left myself out of the voting, because these are the experts’ experts: I figured the best thing I could do was ensure a smooth process and remove the burdens of book-keeping.
Here they are, the People You Can Blame:
- Dave Hunt, Mozilla
- Jim Evans, Salesforce.com
- Santiago Suarez-Ordoñez, Sauce Labs
- Jari Bakken, The Matrix
- Simon Stewart, Mt Olympus
I don’t know if it was beginner’s luck, but there was zero drama. These folks are all pros, and we’ve put together a hell of a great conference for Boston.
We had 24 slots to fill, but only ~45 submissions, and without the variety of topics we wanted. Specifically, we were dismayed by the low number of submissions from female presenters. Given a high proportion of female testers in the industry, we believed their voice was under-represented. The call was extended in part to attempt to correct this, and ended up netting us ~20 more submissions in total.
With the proposals all gathered in one place (thanks, Ashley!), I then set about trying to find “themes” in the submissions. Several leapt out immediately–lots of case studies showed up from large household-name companies that I knew people would find interesting. Some deep-dives appeared, describing the inner workings of browser implementations or talking about a new tool-set people might find interesting.
Another theme I saw, a blend of the previous two, were the Best Practices–people who wanted to talk about processes for applying disparate tool sets to the problems we face every day. I believe these talks have the broadest appeal, and are a primary driver of attendance. We also had enough mobile offerings to put together a “bloc”, which will consume a whole afternoon.
Simon suggested “blind auditions” for the selection process, and everyone loved the idea. Voting would take place not knowing anything about the speaker outside of hints left in their abstract. Since we had extended the call to invite submissions from female presenters, we therefore believed this would “correct” for that bias. It should at least remove all doubt that any speaker was chosen specifically for their gender.
I created a Google spreadsheet with a separate tab for each of these themes. Each tab contained only a few columns–the title, abstract, “notes to organizers” (if it was relevant), and one column for each person on the committee to vote. I did not include author bios, and if someone’s name showed up in anywhere else, I redacted it. I *did*, however, leave in speaker’s company. I figured if I saw two talks, “Success and Failure at Google” and, “Continuous Integration with Selenium at Bob’s House of HTML and Gumbo”, it would be completely reasonable to make the decision based on the company.
My thinking was, rather than have each person go through each talk individually, all these folks would have to do is read a paragraph and assign a number 1-5 (1=want, 5=don’t want). That way they would rank the talks in terms of the best subjects for that particular theme, thereby making sure just about anyone would have a good “path” through the conference. The committee was given a short deadline (1 week!) to fill out the voting columns, after which we’d sync up on the phone.
Somehow we managed to get people from California, Texas, Florida, the UK, and Norway into the same Google Hangout at the same time. We averaged the scores into a column in the spreadsheet, and Simon expertly sorted, manipulated, and color-coded the rows. As I said, we had 24 slots to fill, so Simon just drew a line: every talk in every theme that scored below a 2 was “in”. This left us with around 10 talks–we all agreed on two points: a) those talks were awesome, and b) we needed more.
So we cut in the talks with a score between 2 and 3. This put us up to 23 talks, so we had to begin some horse-trading. We started to have some difficult conversations when I realized that I had somehow not scored one talk at the bottom of one tab. I applied the formula to that cell, and it had one of the best scores of all–so we had 24! Huzzah!Where does this leave us? With 2 days of Track A and one day of Track B. Given 8 presentations per track per day, that leaves us with an entire day of “open” talks for Track B. Be sure to sign up right when you get there–these slots went really fast last year, and will probably go fast again. We also will have a day of workshops on four different topics, with two in the morning and two in the afternoon.
We’d like people’s feedback on how the conference “flows” this year. As I said, we wanted someone with just about any background and interest to be able to find a path through this conference, so I’d like to hear whether or not we achieved it.
…and I hope to see you all in Boston! (PS: Tickets are going fast!).
March 14, 2013
A Smattering of Selenium #147
My. Get. Productive. I know! I’ll push out a smattering. Oh. …
- Python for Ruby Programmers is a pretty good deck, with the requisite snark at the end that you can safely ignore.
- Me @ Selenium Camp 2013 is Ivan’s mini-experience-report from SeCamp and has his slides on GhostDriver
- Using pip in production? pip install : Lightspeed and Bulletproof is a useful trick which I know I’ve done variants of with java and ruby in the past
- SeConf speakers are up — and the list looks really good
- Interfaces or Abstract Classes? is marketing fodder, but its the best kind of fodder since its actually useful. For those of us still working through PHP.
- I forgot about this semantic war in the whole three weeks since it happened…
- Android UI Design Pattern in practice is not only useful, but I like the format…
- Continuous Deployment: The Dirty Details – slide 18, 36, 42, 83, 102 are the killer slides. 102 is the killer-est slide and is where I would enter a semantic debate with the fine folks at Etsy over whether they are doing Continuous Deployment or Continuous Delivery
- Could CSS3 be making sites that are not testable? – New standards making the life of automators more incredibly hard? Never!
- Python – verify a PNG file and get image dimensions
March 11, 2013
A Smattering of Selenium #146
Happy ‘productivity destructive week’ — otherwise known as March break.
- How to Accept Self-Signed SSL Certificates in Selenium 2 — or you could use ‘real’ certificates that are trusted by the browser by default. If you are using self-signed certificates to ‘save money’ and you spend 3 hours making it work, you are not saving money anymore
- JockeyJS seems like it could be useful
- Dear every-js-widget-library-author, You can’t create a button
- If you are using PHP, then The Grumpy Programmer’s PHPUnit Cookbook should be added to your reading pile. Thankfully he doesn’t touch on the built-in WebDriver stuff but the ToC still looks relevant to what we do
- WordPress Performance Optimization is just cool — and could provide tricks for your non-WordPress apps too
- Single-Session Development is something I don’t do — but can appreciate the geek-ness of this
- JUnit’s evolving structure shows what the, erm, evolving structure of JUnit and has the killer line of ‘Programmers should be forced to wear their systems’ package-structures on their tee-shirts.’
- Basic Authentication With the BrowserMob Proxy, wow, that’s an annoying edge-case
- Breaking Down Amazon’s Mega Dropdown – ugh, because mouse events weren’t hard enough without menus tracking and rendering based on its position
- If you are intro RSpec, then RSpec Next Steps is going to be for you. Even if it does use a horrid html-based deck format (use the left/right arrow keys to navigate)
March 4, 2013
A Smattering of Selenium #145
Alice Finch builds massive LEGO Hogwarts from 400,000 bricks starts out at awesome and goes somewhere further down the scale when you get to the photo that shows scale.
- Models of Automation — really, who reading this hasn’t had the conversation described in there in one of its variants
- Stop Moving So I Can Click You Dammit! – illustrates the only acceptable place for Thread.sleep()
- Using Realistic Data in Unit Testing and AngelaSmith: Creating Test Data is a two-for for the C# crowd — though the ideas resonate with everyone else
- How to handle common components with Page Object Model? — I tend to use Inheritance, though am experimenting with Composition. The right solution is likely ‘both’
- Dear Nic, Should we log directly? illustrates the good and bad of unix pipes
- How foreach actually works was found via a snarky tweet, but is great
- Introducing the HTML5 Hard Disk Filler&tm; API is hilarious. And the next salvo in the WebKit vs mono-culture battle
- HTML’s New Template Tag – Standardizing Client-Side Templating — look! More HTML5 madness! And no automation suggestions / gotchas. But HTML5 Rocks is a great site anyways
- Why your web app should be responsive — I’m coming to dislike the term ‘responsive’, though agree with the sentiment. Now, how does your WebDriver [or Watir] scripts change in order to handle this?
- Nyan Cat RSpec Formatter is outstandlingly silly. And should be applied to all your RSpec runners. Immediately.
February 25, 2013
A Smattering of Selenium #144
Real Canadians watch curling instead of hockey.
- jsPerf is a performance oriented sandbox
- The Myth Of Convention Over Configuration – hint: its curation over configuration. And since this is how frameworks work…
- sublimetext_indentxml is a sublime text plugin to indent xml — yes, originality counts with plugin naming
- Introducing Boxen – Boxen feels a lot like Vagrant, but for Macs? Maybe?
- Checking for Technical Requirements in a Sign-up Process — woah, this would be a pain to automate
- office_docs looks like it might help parse and inspect ms office docs your app generates. Or not. Dunno.
- The Future of Perl (5) proves that the Se gang isn’t the only one to completely botch naming and versioning.
- Tortoises, Teleporting Turtles, and Iterators is pretty geek
- Don’t Use Automatic Image Sliders or Carousels, Ignore the Fad – and Reason #4 is they are a pain in the ass to automate since the state is always in flux
- The Continuous Delivery Maturity Model has some interesting ideas, but that it is presented as a ‘maturity model’ is fail all the way down.
February 14, 2013
A Smattering of Selenium #143
If you had anything interesting last week I should have seen, you’ll have to resend it to me or @seleniumhq — things were a bit crashy.
- So … Opera switching to WebKit. That doesn’t mean you can write off automation with Opera though. Tragedy of the WebKit Commons
- Introducing ChemistryKit — a Ruby version of Saunter is another self-serving link.
- Automated local accessibility testing using WAVE and WebDriver is a post I had been waiting awhile for
- How Did the Duck Hunt Gun Work? because, you know you wanted to know. Unless you are too young. Kids…
- Start Writing More Classes got lots of twitter love. And an outstanding url.
- I’ve been thinking about documentation recently… The Principled Documentation Manifesto
- Tesla Model S REST API takes WebDriver to a whole new level
- A Browser Automation Standard is kinda amusing that the location is ‘Mountain View’ but David was broadcasting from ~ 8600 km away
- HTML5 Tutorial: Geolocation because this won’t be a pain to deal with…
- I think I like the diagram at Continuous Delivery vs Continuous Deployment but would suggest the top labels should be ‘Auto or Manual’
February 5, 2013
A Smattering of Selenium #142
Its a Wiggle your brain kind of morning…
- Automated Web Testing Is Hard is the launch announcement of ChemistryKit
- Watir-WebDriver with GhostDriver on OSX: headless browser testing — the WebDriver version of this would be very, very similar to this.
- jQuery 1.9.1 Released isn’t interesting from a new jQuery perspective, but the migrate plugin is. Likely old news, but was new to me…
- GRASP (object-oriented design) ‘is really a mental toolset’
- How Not to Design Pairwise Software Tests is even more useful when paired (pun intended) with…
- Using Data Driving Wisely
- The Importance of the DOM has a lot of stuff that my not-in-gear brain is capable of processing, but…
- Postel’s Principle is a Bad Idea. Sacrilege! Oh, wait, there is a patch.
- A brief chronology of SSL/TLS attacks can’t be automated, but good automation is to know what needs to be looked at by a human
- The Framework Superclass Anti-Pattern — for the record, my frameworks ‘require’ you have adapters to prevent lock-in. Oh, and they are Open Source…
February 1, 2013
A Smattering of Selenium #141
Its -12 Celsius plus windchill out. Why the heck is the office air conditioning on. Feel like I need a Mr. Rogers cardigan or something.
- Caret Navigation in Web Applications starts slow and then hurts your brain while reminding you that this automation thing isn’t easy.
- I don’t know NUnit or TeamCity so don’t know if Using TeamCity and NUnit to Start WebServer, Run Selenium Tests and Stop WebServer is useful or just a rehash of common knowledge. But here you are anyways.
- paratest-selenium is another parallel phpunit solution. I really want an official one.
- Why Everyone (Eventually) Hates (or Leaves) Maven is not Maven bashing [he says so in the 3rd last paragraph].
- Writing Testable Frontend Javascript Part 1 – Anti-patterns and their fixes — looking to carve out a niche for the next couple years for yourself? This is it. And Canvas [which is JS...]
- The SeleniumCamp 2013 program is out. Of course, its in Russian but…
- Writing a Neo4j Puppet module for fun and profit is I think how a lot of trial stuff is going to be distributed. And Puppet is fun.
- Have I mentioned that this automation thing is hard? No? How about What is the Execution Context & Stack in JavaScript?. Still think its easy?
- Automated Testing: From “Testing” Activity to “Development” Activity is the sort of epiphany you will see more and more I think. Unsure whether this is a good, bad or just factual trend.
- About building a framework? Its in! How to make a basic test framework in C#
January 25, 2013
A Smattering of Selenium #140
Buckets!
- I suspect that scanner-backed-by-selenium belongs in the ‘with great power comes great responsibility’ bucket
- ios-driver is in the ‘wouldn’t it be nice if Apple provided this’ bucket
- Selenium WebDriver utility for determining when page has finished rendering is in the ‘ADF specific’ bucket’
- I suspect JSErrorCollector is in the ‘already indirectly linked to’ bucket. If not then its in the ‘FF only’ bucket
- Using a business readable language for browser automation is in the ‘bdd/atdd hype’ bucket. But is also in Haskell which is kinda interesting for an Se article
- reality is expensive: a better way of thinking about mock objects – Yup. ‘Fake bucket implementation’ bucket.
- The bits in Android’s tablet quality page would be even nicer if Android wasn’t in the ‘openly hostile to automate’ bucket.
- Data Attributes Rock – As Both Css and Javascript Know Them — HTML5′s data attributes are firmly in the ‘raindrops on roses and whiskers on kittens’ bucket.
- Stop Using Story Points gets added to the ‘read the comments as well’ bucket. Also the ‘this is how we accrue automation debt, kids’ bucket.
-
. Oh, and the ‘woohoo! I already do this stuff’ bucket.