Craftsmanship in test automation

I want to understand different design patterns that can be useful to level up automation level via an exercice.

Curious to know more about this topic:

  • craftsmanship in testautomation.

Looking for useful ressources !

5 Likes

My best guess for craftpersonship in test automation is “A Journey through Test Automation Patterns: One team’s adventures with the Test Automation Patterns wiki” written by Seretta Gemba and Dorothy Graham. I did not read the book.

Design patterns in test automation described in a more informal way:

3 Likes

“Test automation excellence” is still somewhat of an art form, because it is highly context specific and because it serves many masters. I like to use imagery or metaphors, I’m no wordsmith, but try to see this one.

Being a tester is like finishing your first course in woodworking. Being a craftsman is actually a journey from there. In year 1 you learn to use only the hand tools, in year 2 you get to use power tools, and in year 3, you decide what kind of items you love making best. Even simple things like chairs, are widely varied in terms of the skills needed to create the different kinds. But by then you make your first full set of furniture and sell it, and think you have arrived. At this point you have already decided which industry you want to serve in. In year 4 you realize that you need to repeat the performance more quickly because the dining room suite or the set of wardrobes or that set of lounge chairs that sold for $4000 took too long to make. So you create jigs and templates. At this point you can dream of being called a craftsman, but you are not there yet. Yesterday I spent a day removing electric heaters in an old church. Filled with wooden craftsmanship. This building is so old it has rigid pews and even a balcony, the balcony ceiling is lathe-and-plaster, a precarious, yet strong way to get lime mortar to stick for almost 200 years and still put up with abuse when I come along, drill holes in the plaster and push in wires that it was never meant to hold. And hang a heater it was never meant to hold. I felt like an alien in that building. Built well by someone who very efficiently built, using almost only, wood. The craftsman works predominantly, but not only, in one material.

I’m not saying that to be a craftsman that what you build must endure. But rather that it’s a journey, a journey that will mean you need to often decide on specializations, and need to train hard to attain efficiency optimizations. The journey will entail power tools like AI/ML but will also entail boring things like making jigs and templates that work to help you scale up your output. Finally your journey will have to make sense, because if it does not deliver, your “furniture” will go onto the fire at some point in the future.

Apologies to us here aware of the gendered terms used in my comment and the obvious slavery reference which is not intended and beyond my language skills to remedy. A book that I found most useful is “Experiences of Test Automation” - Dorothy Graham, Mark Fewster. I like this book, because you can re-read it many times during your career as you move from sector to sector in different jobs.

3 Likes

I was also asking myself how can I level up in test automation this year. I realised that in order to talk about craftsmanship I need to dive deeper in development itself to avoid writing “smelly” code. I’ve chosen 2 books for myself to read this year:

  1. Clean Code: A Handbook of Agile Software Craftsmanship
  2. The Pragmatic Programmer

While the books are covering more fundamental topics helping with understanding how one can start writing clean and maintainable code, I found the Blog - Ultimate QA resource so helpful as there are several articles about design patterns and antipatterns in test automation. Another book “Complete Guide to Test Automation: Techniques, Practices, and Patterns for Building and Maintaining Effective Software Projects” I read and liked it so much as it covers fundamentals of test automation, gives so many helpful tips and strategies.

But totally agree with @conrad.braam about the journey. Looking at the test automation code I wrote 2 years ago and comparing it with the code I’m writing now, I can see a huge difference. Definitely, practice and small daily improvements make the change;-)

4 Likes

+1 for the Clean Code book @autozen. I haven’t fully read it (apparently it’s quite difficult to read), but instead have referenced chapters that have helped me.

A book that I found really useful was Refactoring Javascript: Turning Bad Code into Good Code by Evan Burchard
It’s pretty easy to read, follow along and has some really good examples. It’s not strictly about Automation Testing, but throughout the book is the theme of Testing and creating tests and testable code.

4 Likes

Hi @emna_ayadi
I love your question. I believe good craftsmanship is founded on choosing the right approach and tooling in the first place.

I think this might interest you. There is a webinar on API Testing that is focused on achieving best practices in test automation.

2 Likes