Why I Switched my day work from Programming to Automated Testing? Part 2: More Fun
Challenging work brings fun; High Productivity leads to Satisfaction.
The articles in this series:
The city where I live is not big, so I sometimes bumped into a few programmers I had worked with or mentored before who now had job titles of “Principal Software engineer” or “Architect”. They were surprised that I came to work as an automated tester (short-time contract, usually I decline renewals). To them, software tester (manual or automated) is a low position compared to programmers, especially for me, an accomplished developer. Some even tried to convince me to take a programming role, but I declined firmly. The reason I explained to them was: “I am just fine with it”. The real reason is: “Automated Testing is much more fun than coding in a typical web project”.
I am not trying to offend programmers here as I am a programmer myself. It is work environment, support and constraints that usually limit a programmer’s creativity greatly (see below). I enjoyed creating software tools such as TestWise (testing IDE) and BuildWise (CT server). With the help of automated End-to-End regression testing, I have had fun developing my own web apps such as ClinicWise, WhenWise and TestWisely. The foundation of all these achievements is solid Automated End-to-End Regression Testing.
Table of Contents:
· “Sweeter After Difficulty”
· High Productivity leads to Satisfaction
· Work with Fewer Constraints
· My Most Satisfying Moments as Test Automation Engineers
“Sweeter After Difficulty”
In the previous article: “More Challenging”, I explained, with quotes from some renowned experts, why Test Automation (via UI) is much more challenging than general coding tasks by most programmers.
Because of that, real automated testers are happier. For example, after their good efforts in maintaining a comprehensive Automated End-to-End test suite (via UI),
regression errors (will be many of them) are detected quickly, in minutes
a green build (passing all automated tests) is presented
the team has the capability to push updates to production on a daily basis
test data are provided for business analysts by executing automated test scripts
…
In a word, Satisfying! 😊
I am not saying that programming is not fun, it could be (see below). But generally speaking, it is just much less a scale or frequency compared to a real test automation engineer.
I will also highlight the frequency here. Because testing effort is to a great extent in both real and fake agile projects, real test automation engineers can experience the challenge and fun frequently, often multiple times per day.
High Productivity leads to Satisfaction
I heard “High Productivity leads to Satisfaction” from one Brooklyn Nine-Nine TV episode. I think most people would agree with the phrase, and it is certainly true from my own experience. Here is the question to programmers: “Are you productive at work?” Be honest with yourself; no one is judging.
My guess: the common answer is “Not good, because … ”. The reasons, according to Jason Fried (in his famous TED talk: “Why work doesn’t happen at work”): management and meetings.
“Just cancel the next meeting. Just don’t have it. I don’t mean move it; I mean just erase it from memory, it’s gone. And you’ll find out that everything will be just fine.” — Jason Fried, Founder and CEO of Basecamp, co-author of the best selling “ReWork” book series.
Of course, there are many factors an employee cannot change. Blaming fake agile ceremonies (such as silly estimating user stories) won’t help. We, as engineers, can only improve in the area of what we could. The most important one, IMO, is: to be more productive via Automation. This is my view of engineering.
Automation is not easy. It requires efforts to learn (but not taught at universities) and practise, and more importantly, to manage ongoing maintenance.
Work with Fewer Constraints
With the exception of a green project, a newly-hired programmer needs to work on an existing code based on one decided framework or language. Even for a new project, you might not agree with the software architect who happened to be an idiot. The reality is that most likely, like most programmers, you work under many constraints.
A good example was Angular.js (for coding) and its associated testing framework Protractor, both are now deprecated. About a decade ago, they were the hottest technology stack. I worked on several Angular projects (as a test automation engineer), and my immediate feeling was: “It is complex and convoluted, more importantly, so low in productivity”. I remembered a senior contractor programmer said to me: “Angular is in demand (he meant the job market), and the next version will be better”. It turned out not to be the case.
Some might say: “Angular programmers got paid well for 7 or 8 years. It has been a good run”. Moneywise, Yes. However, I would say “They missed several years of fun and opportunities to grow”.
The constraints on test automation are generally a lot less. Commonly, all previous test automation attempts (by fakers) failed in the company. This means you are more likely to be able to start fresh. Also, unless you are in a real Agile/DevOps project (extremely rare), testing is generally isolated from development practices. For example, automated testers don’t need to:
use the same compiled language (e.g. Java) as programmers
back in 2005, I had a reputation as a 10X Java programmer. I still consider myself quite good at Java/JavaScript now. But using the Ruby language is so much fun!attend so-called “story estimating sessions” per sprint
time-wasting.follow strict Git commit policies, such as “one branch for a user story” (this is crazy)
follow mechanical code review (pull-request proving), like the one in this article.
My Most Satisfying Moments as a Test Automation Engineer
I worked in many roles on various software projects, including my own ones. Technically, I gain the most satisfaction from two activities:
programming: create tools that I can use to improve my productivity.
such as TestWise (functional testing IDE) and BuildWise (CT server) I created and use almost every working day for over a decade.test automation engineering: trigger a build in a Continuous Testing Server, and work towards a green build (passing all tests).
Here I will clarify the latter.
First of all, I think a real test automation engineer’s work includes Continuous Testing as well (often, companies have dedicated so-called DevOps engineers for that, which is wrong). After code changes or test scripts update, I want to run the full End-to-End (via UI) test suite (to detect regression errors).
When I click the “Build Now” button (on the BuildWise CT Server), several build agents would be ready to execute the test scripts in parallel. It feels like: on the hunter’s hand gesture, his several hunting dogs start prey drive. It is really satisfying.
Of course, to pass a large automated end-to-end test suite is not easy. Take WhenWise as an example, its end-to-end test suite has ~30,000 test steps. A green run means each of the ~30,000 test steps must pass (viewable actions in Chrome browsers). Sound challenging? Yes. That’s why I am following a set of good designs and practices, such as
I am passionate about automated testing and will endeavour to make each test script as reliable and fast as possible.
Optimize Selenium WebDriver Automated Test Scripts: Fast, Easy to maintain, Easy to read
The above is all based on a winning formula (all free, no vendor-locking) that I have summarized from my 16 years of experience.
Only with high-quality and highly reliable automated test scripts, it is possible to run a big suite of automated End-to-End (via UI) tests frequently as regression testing. It is a really challenging and satisfying experience. The reward: a green build that enables a deployment to production. At the end of the day, go home with pride. Below are case studies that you can relate to:
Case Study: 548 Selenium Tests Help to Upgrade WhenWise to Rails 7 within 2 days
ShowCase: Great Software Development Productivity with Real UI Test Automation & Continuous Testing
If you enjoy reading stories like these and want to support me as a writer, consider signing up to become a Medium member. It’s $5 a month, giving you unlimited access to stories on Medium. If you sign up using my link, I’ll earn a small commission.
Further reading: