I have been receiving training in automation since the somewhere around fall 1998 / spring 1999 and been teaching formally in some capacity for about 5. Here is a list of things I think someone should consider when looking at training (and how I decide whether I am interested in it). And in a practice-what-you-preach approach, is how I teach it.
- Language – It is darn near impossible to separate Selenium training from the course that is being offered. Yes, some things are generic, like locators, but the rest is about idiomatic, language specific implementations of the API. If you are going to be writing your automation in PHP, you could take training in Java, but you are not going to receive the full amount of value for it. (And I can tell you right now that the implementations in PHP are very different than the Java one.) This is also the downside of multi-language classes. Yes, it is doable, but it gets chaotic real fast.
- Runner – Remember, all Selenium is is a library to drive a browser. But the actual test collection and execution is done by some sort of Runner. Make sure you get training done using the Runner you will use. TestNG and JUnit are both Runners for Java, but have very different philosophies around how things are done.
- Components – I’ve said on Twitter a couple times that if the advertised content is either Se-IDE or Se-RC then you should back away slowly. Yes, neither of these is going away, but Se-IDE is about a 30 minute topic and Se-RC has been replaced by WebDriver. If your organization has a huge investment in Se-RC already, you should have to request Se-RC training, not the other way around.
- Editor – This is one of my [many] pet peeves these days are courses that specify an editor (usually Eclipse, and usually its a Java course). Your goal of Selenium training is to learn Selenium — not some editor. Big feature-ful editors have this nasty habit of doing too much clever magic that actually prevents you from learning. ‘How is this running? Oh, Eclipse is taking care of that for your’ works fine until you have to get it running outside of the editor in a server farm somewhere. I teach using TextMate on Mac and Notepad++ on Windows. All you want is syntax colouring / checking in an editor at this stage.
- Canned Demo – Know what is useless? Canned sites that trainers carry around with them that just happen to work brilliantly with the content they have in their slide deck. When WinRunner was brought into the bank I was working at we learned on a travel booking app. Again, at the bank which was an AS/400 green-screen application. Some applied, but so much didn’t. When I do training, and I wish more people did this, it is against your site. That way everything you do has immediate benefit to the company.
- Beginner vs. Advanced – Can we please stop claiming that there is just a thing as beginner and advanced Selenium? If we must have arbitrary splits then lets use ‘very little chance of adding value’ and ‘has at least a chance of adding value’. Can you explain to me what a ‘beginner page object’ looks like relative to an ‘advanced page object’? How about a ‘beginner locator’ or an ‘advanced locator’? There is no such distinction; there just is.
- Programming – If I’ve said it once, I’ve said it hundreds of time. Automation is programming. If someone is selling your Selenium training that doesn’t require some programming knowledge they are selling you snake-oil. Or Se-IDE training which, again, is about 30 minutes worth of content and Se-IDE is useful in two very specific niches and neither of them is as the basis of your automation efforts. (I should just record a screencast of how to use Se-IDE, sell it for $5 and put every Se-IDE trainer out of business.) Don’t know how to program? In theory the Selenium instructor could also teach you enough to be successful with Selenium.
- Propriety Stuff – The main recipient of value in training should be those paying to be there so class should not be one giant pitch of product. Yes, I am now in the framework business and I use it when training just fast-forward over some setup stuff. If however someone has a framework already in place, guess what, we use that. If your trainer cannot adapt from the script, perhaps you hired the wrong trainer. Oh, and I give my framework away for free rather than charge thousands per seat after the fact.
- Customization – This applies more to the corporate side of training, but can you add/remove stuff from the agenda? For instance, if you are using Flash you will want that in there but not care if you don’t. Similarly, if your designers went wild without consulting you and have gone down the GWT route (why?!?!) you will need to have dealing-with-buttons-that-are-not-buttons as a topic. Personally, I don’t really have agendas when teaching beyond a handful of topics that really do need to be taught (Page Objects for instance), the agenda is created on the fly based on the needs of the students and the application.
- Trainer – Who is the trainer? Do they blog? Are they are known commodity in the Selenium community? How many bugs have they logged in the tracker? How many have they fixed? Can they build the project if they needed to patch it for some bug that is triggered by your app? Or are they just latching onto a trend? Can they actually teach? It is a big gulf between being able to write Selenium based automation and teaching it. Ask for referrals to other students. No, I am serious. Do it. And actually call them.
- Certification – There is no such thing as being Certified in Selenium. Why? Because it doesn’t exist. The only organization who could properly claim that is the Software Freedom Conservatory (who holds the copyrights for Selenium) — and I can assure you that is not something that is offered. It is only a matter of time until certification schemes for Selenium arrive (if they haven’t already); resist the siren’s call. They might not be trying to kill you, but certainly are trying to get you to part with your training budget through false promises.
This post might be appear more marketing-oriented than it is intended too, but I think it is an important topic as the popularity of Selenium is getting to the point where every charlatan, snake-oil salesman and consultant is offering training of some sort. Because there is no central sanctioning body for Selenium training I can’t go around revoking people’s ability to offer training, but what I can do is arm prospective students with questions to ask and save them money.