Why I think automation education is broken (and what I’ll try and do about it)

I’ve written various blog posts about test automation craftsmanship recently, a topic that is becoming dearer to me every time I see people posing automation-related statements or questions that are, at the very least, of questionable quality. Like in ye olde times, craftsmanship isn’t something that is easily attained, or can be attained at all, without proper education and mentorship. And that’s where I think the test automation world is still lacking. Or, to put it in positive terms: there’s room for improvement in this respect.

And I’m not alone in this. I had a couple of good discussions on Twitter the last couple of weeks (yes, this is possible!), most notably an insightful exchange of messages with Matt Heusser (not sure if you’re reading this, but anyway, thanks Matt!), on the current state of automation training and how it is advertised. The gist of it (and note that this is my take on it):

  1. There is an (over)abundance of tool-centered training out there. This is not necessarily a problem, but there is definitely room for more broader training on the fundamentals of test automation and how it should be applied.
  2. A lot of this tool-centered training is advertised as ‘Become an expert in tool XYZ in just three days’. This IS a problem. First of all, I don’t think it is possible to become an expert in any significant tool, approach or anything in the test automation space in just a couple of days. It’s possible to become familiar with the API and features of a tool, but that hardly makes you an expert. Expertise comes with application, failing, studying, learning, etc. It takes months, sometimes years, not days.

The second point is also dangerous in that it can lead to an army of self proclaimed ‘experts’ that are really nothing more than people with hammers that see only nails on their path. Not an image I have in mind when I think about what constitutes being a test automation expert.

What is lacking, in my opinion, is something that gives people involved in test automation a solid foundation of knowledge about the field, its challenges and its place in the larger software development space. Something that goes beyond the specifics of individual tools. Something that talks some sense into the people crying ‘automate all the things’, so to say. And by ‘people’, I don’t just mean automation engineers, but developers, scrum masters, POs, managers, CxO-level people, everybody that is a test automation stakeholder and should therefore care about what applying automation in a sensible way can bring to software development.

So, what to do? Ranting about how things are broken is one thing (and I must admit that it DOES feel good to me), but I’ve been thinking about and saying the above for a while now. So maybe it’s time to start to do something about it. That’s why I’ve started to outline a course that I think should be able to fill the void when it comes to education around test automation. Call it ‘Test automation awareness’, call it ‘Automation 101’, call it whatever you like, I’m still open to suggestions as to the name of the course. Point is, it’s time to put my money where my mouth is. I’ve already reached out to some people and received some awesome feedback (thanks guys, you know who you are). Funny thing, a couple of people I reached out to said they were working on something similar. Which is even better, as this confirms my view that there is a need for a course like this.

I’m not sure at the moment when this will go live, and in what form exactly, but as soon as there’s more to disclose, I’ll do it here. If you’d like to give input, constructive criticism and/or contribute in some other way, please send me a note at bas@ontestautomation.com and I’ll get back to you. I’m very much looking forward to making this a thing, although not so much to the work that’s ahead of me. But I feel it’s important enough to get done.

On a not totally unrelated note, I’ve also recently had a very fruitful discussion with someone from an academic research facility, and if it’ll all work out, it looks like I’ll be somewhat closer involved in one of their projects as well. This might also be a good place to start infiltrating the education system and see that test automation earns a better place in higher education as well. I don’t have the illusion that I’ll change the world overnight in this respect, but you have to start somewhere, right? And if anything it’ll be a good opportunity for me to step a little outside of my comfort zone again.

I’ll keep you posted.

P.S.: Most of you will have heard or read about the fact that Katrina Clokie’s book ‘A Practical Guide To Testing In DevOps’ has been released through LeanPub. I’ve just finished reading it, and the only thing I can say is that if you’re even remotely interested in testing or DevOps, I’d highly recommend you to buy a copy. It’s chock full of tips and case studies for everybody, tester or not, facing the challenge of keeping up with DevOps and with the rapidly increasing speed of software delivery in general, without forgetting to keep an eye on software quality.

6 thoughts on “Why I think automation education is broken (and what I’ll try and do about it)

  1. Hi Bas,

    Good article, and maybe echoes some of my feelings about automation.

    (These relate to C#, Selenium and Specflow specifically)

    – As mentioned this tool-centered way of learning doesn’t give you solid programming fundamentals. E.g. people are most likely to understand inheritance with real world examples, e.g. vehicle -> car or vehicle -> motorbike. I doubt anyone properly understood inheritance just from page objects.

    – Those courses that do provide some programming background are not detailed enough. IMO you at least want OOP, interfaces, collections, generics, LINQ (for C#), functions and lambdas, events and delegates, exception handling and some knowledge of design patterns in your tool belt.

    – Aside from quick and notable ‘hacks’ that might be required for your test scripts, the foundations of how websites are displayed is often overlooked. This includes HTML, CSS, Javascript (and all the frameworks..), JQuery, entity framework etc. Learning a particular stack is a significant time investment, but it will make you a better automation tester IMO.

    – Outside of trying to replicate a particular test script, online tutoring, with exercises and projects is almost non existent.

    – Rarely, unless you try digging through github, can you find well coded and complete framework examples. Too often the focus is on a simple example for learning purposes, but learning how to make a framework extensible and maintainable requires allot more code and experience.

    From personal experience, the only way I learnt automation was to ignore all the tool based courses and to just learn programming. Once I felt comfortable enough I revisited the tool and unsurprisingly, was able to pick it up and dig into it if needed.

    Happy to be a test dummy for whatever you eventually come up with!

    • Hey Matt,

      thank you for sharing your thoughts! I’m not sure that the course as I’m envisioning it at the moment will cover the needs you rightfully address. It’ll probably be more focused on the organizational, procedural and more generally the ‘why?’ part of automation, i.e., creating and managing realistic expectations. Even though all of your points are totally valid, that would be a different course altogether. One that I haven’t seen before, either, so either there’s no need for such a course (which I don’t believe) or nobody has been motivated enough so far to put in the effort to create it, because making money from 2-3 day tool specific courses is much easier (and I think that’s the case here).

      Thank you for volunteering, I might just take you up on that, although it might be a little different from what you’re expecting 🙂 Can I contact you on the email you provided with this comment?

      • Hi Bas,

        Ah, yep I came at it from a dev perspective but I’m equally curious about your proposal. Managing expectations is a key one, can feel like a constant battle sometimes.

        Yep my email on the comment if you can see it is fine.

  2. Pingback: Java Weekly, Issue 189 | Baeldung

  3. Hi, Bas.

    I am completely agree with you, that the biggest problem for existing and ‘newly born’ test automation engineers is the lack of knowledge why and where exactly they can help and speed up the whole development process and productivity of the team.

    The programming / system design knowledge are important, but without the foundation it can potentially lead to an implementing robust solutions which are cool (from technical point of view), but actually useless for testers and other team members. As a result – it will not provide any value to the customer at all.

    As a conclusion, I can offer you my help with preparing the course, reviewing it and making it great and useful for the community.

    • Hey Alexander,

      awesome! It’s going to be a time consuming process (for me) though, I don’t expect to churn this out in a week or two. I’ll send you an email right away. Thanks in advance!

Leave a Reply

Your email address will not be published. Required fields are marked *