Software QA Engineers: “One of the Happiest Jobs in the USA”
I am happy that I switched my role from a Software Engineer to a Software Engineer in Test, 12 years ago.
The title of this article might surprise many people, especially software programmers. It is not just my opinion, but also the authoritative Forbes list.
Table of Contents:
· The Forbes list: Happiest Jobs in the USA
· My Career Change: Senior Software Engineer → Test Automation Engineer
· Story: “Smiling Tester”
· My Current Situation
The Forbes list: Happiest Jobs in the USA
Software Quality Assurance Engineer (Tester) has been on Forbes’ Happiest Jobs List for three years consecutively. Not just made it to the list; in fact, it is #1 or #2 on the list.
2012:
1. Software Quality Assurance Engineer (score: 4.24)
2. Executive Chef, Property Manager (tie, score: 4.15)
2013 (also reported on BusinessWire):
1. Real Estate Agent (score: 4.26)
2. Senior Quality Assurance Engineer (score: 4.23)
2014:
1. Database Administrator
2. Quality Assurance Engineer
These came from serious research, and many factors were considered, including salary. “CareerBliss compiled a list of the 20 happiest jobs based on analysis from more than 100,400 employee-generated reviews between February 2011 and January 2012.”
Some unimpressed programmers might debate: “that was over a decade ago.” Here is the latest report (2018) I could find (seems to be CareerBliss’ last research report on this).
In case you are wondering, the unhappiest job (2018) was “Accountant”. You can find more from the link.
The above facts shall reduce a fair percentage of doubts. If a job title appeared on the list once, there might be a statistical mistake. But Software QA engineers appeared at least four times in the top two of Forbes list, it surely meant something.
Many programmers might wonder why? Let us hear what Matt Miller, CareerBliss’ CTO, had to say in 2012:
With an index score of 4.24, software quality assurance engineers said they are more than satisfied with the people they work with and the company they work for. They’re also fairly content with their daily tasks and bosses.”
These professionals “typically make between $85,000 and $100,000 a year in salary and are the gatekeepers for releasing high quality software products,” Organizations generally will not allow software to be released until it has been fully tested and approved by their software quality assurance group.
In past studies, we have noted that the long hours and intense demands on software engineers’ time caused them to rank as less than happy. However, we are happy to report that software quality assurance engineers feel rewarded at work, as they are typically the last stop before software goes live and correctly feel that they are an integral part of the job being done at the company.
I agree with CareerBliss’ findings, but I would insist that it has to be automated testing engineers.
My Career Change: Senior Software Engineer → Test Automation Engineer
I would NOT last one day if I am required to do Excel-based manual testing, which I think was wrong, at least in Agile software projects. The correct approach to manual testing (still needed) is <20% exploratory manual testing, provided >80% is done by automated End-to-End regression testing.
Since 2005, I have been working as a programmer and software tester (automation). Between 2005–2010, despite my title being Senior Java Programmer/Tech Lead, I found myself spending more and more time doing automated testing work, which helped me become a much better software engineer. In 2010, I switched my day-to-day job position from Programming to Automated Testing, and still have been coding my own apps in my spare time. I explained the reasons in this article series:
Too productive to continue working as a programmer (coming soon)
If you are one of the IT people who feel surprised by Forbes’ Happiest Job List, my action shall add some weight to it, that is, Software QA Engineer is a happy job.
Story: “Smiling Tester”
David was a performance tester with the nickname “Smiling Tester”. When he came to visit us (at that time, my job title was senior C# developer), he always smiled while telling us: “there was a performance issue”.
One day, he came and told us “the last build was good”, still with a smile. I asked him: “Why are you so happy?”.
He answered: “If I found defects, I am happy because I did my job well, preventing issues in production; If I didn’t find any defects, I am happy too as a team member”. So, he was always happy.
I didn’t take action then but remembered his words well. Seven years later, I switched my job title and never looked back.
My Current Situation
I am still coding for my software at ~100X productivity compared to myself in 2004 as a senior Java contractor thanks to my test automation knowledge and Continuous Testing process; I spend more time testing my apps or training/mentoring others to learn/do real test automation and continuous testing. Frankly, I like programming and automated testing (both can be highly-creative activities. In doubt about automated testing? Check out the My Innovative Solution to Test Automation/CT article series). But I wouldn’t like programming without test automation (via UI).
If you cannot wait to learn real test automation, check out this article: Advice on Self-Learning Test Automation with Selenium WebDriver. Good test automation frameworks are free and open technologies. Test Automation might change your work life for the better, as it certainly did for me.
One more note: there are many wrong and misguided resources on learning test automation or selecting frameworks/tools. Some advice from me:
Good stuff is free, totally free, such as Selenium WebDriver (W3C standard) and RSpec (BDD syntax framework). Don’t be a slave to vendor locking. On the basis of 100% freedom, choose a highly-productive testing tool such as TestWise (testing IDE) and BuildWise (CT server), both can be used in free mode forever.
Warning: There are many fake automated testers and fake test automation consultants who are only good at talking.If you are not getting results quickly, let’s say: in hours, then you are doing it wrong. Don’t enrol in so-called online syntax-dumping style Selenium training classes. Learning hands-on is far more effective, as test automation is practical. Raw Selenium is very very easy to learn with a good tool such as TestWise (free mode is fine) under proper guidance. A few hours of your time is more than enough. The key is to learn how to think/design maintainable automated tests.
Check out my daughter’s article: Set up, Develop Automated UI tests and Run them in a CT server on your First day at work. Also my article: 35-Word Functional Test Automation Strategy.Avoid bad frameworks/tools, such as Cypress, Playwright (any JavaScript ones, or Java/C#) and Gherkin syntax. Start with raw Selenium Ruby (see my AgileWay Test Automation Formula)
I often end my conference talks with this last slide:
Remember: if you don’t have fun performing Automated End-to-End Testing (via UI), you are doing it wrong!
Further reading: