E2E Test Automation Anti-Pattern: Developer-Focused Approach. Part 3: Most Developers Lack Proficiency in Test Automation
It’s like an Uber driver attempting to compete in a Formula One race: they might be able to start, but there’s a high chance they won’t be able to finish it properly.
This is an article in the E2E Test Automation Anti-Pattern series.
Part 1: It is Black-Box Testing!
Part 2: Scripting Language, Frameworks and Tools
Part 3: Most developers Lack Proficiency in Test Automation
Part 4: Hard to Steer Away even after it is Proved Wrong
Many software developers probably don’t like the title of this article, as software developers tend to think “automated testing is easy”, which was what I used to think before 2005.
Disclaimer: as a Micro-ISV, I do programming as well as testing (automated).
Let’s start with some quotes from several software gurus.
Quotes from Renowned Software Figures
“In my experience, great developers do not always make great testers, but great testers (who also have strong design skills) can make great developers. It’s a mindset and a passion. … They are gold”.
- Patrick Copeland, Google Senior Engineering Director, in an interview (2010)“95% of the time, 95% of test engineers will write bad GUI automation just because it’s a very difficult thing to do correctly”.
- this interview from Microsoft Test Guru Alan Page (2015), author of “How we test software at Microsoft”“Automated testing through the GUI is intuitive, seductive, and almost always wrong!” — Robert C. Martin, co-author of the Agile Manifesto, on his blog (in 2009)
“Testing is harder than developing. If you want to have good testing you need to put your best people in testing.”
- Gerald Weinberg, software legend, in a podcast (2018)
(current generation of programmers might not heard of Gerald Weinberg, check out the a tweet by DHH on 2023–12–27: “Nobody taught me more about how to do that than the late, great Gerald M. Weinberg.”)
Some developers might still be skeptical. OK, let’s do a reality check.
Reality Check
Here is a story told by Michael Feathers (a renowned agile expert and the author of ‘Working Effectively with Legacy Code’) in 2009:
It happens over and over again. I visit a team and I ask about their testing situation. We talk about unit tests, exploratory testing, the works. Then, I ask about automated end-to-end testing and they point at a machine in the corner. That poor machine has an installation of some highly-priced per seat testing tool (or an open source one, it doesn’t matter), and the chair in front of it is empty. We walk over, sweep the dust away from the keyboard, and load up the tool. Then, we glance through their set of test scripts and try to run them. The system falls over a couple of times and then they give me that sheepish grin and say “we tried.” I say, “don’t worry, everyone does.”
Based on my observations, the situation that Michael Feathers described 15 years ago remains true.
Keep reading with a 7-day free trial
Subscribe to AgileWay’s Test Automation & Continuous Testing Blog to keep reading this post and get 7 days of free access to the full post archives.