A Story: Principal Software Engineer Undermines E2E Test Automation
Not everyone likes to see the success of E2E Test Automation.
A few years ago, within the first week of onboarding at a large financial company, my End-to-End test automation scripts (driving the app in Chrome browser) showed great help to the project team. Business Analysts and Manual Testers used automation (either requested me or self-help, I built an interface for them) to create test data scenarios (cutting time from a typical workflow operation from 40 to 6 minutes).
Someone up in the mangement noticed that. A 3-month Proof of Concept (POC) was created for me to implement an already defined set of E2E Tests. I implemented them in 3 days, yes, 3 days instead of 3 months, using my typical tech stack (Selenium WebDriver + RSpec, run in a BuildWise CT Server).
Before I left work, I sent the POC daily update and the URL to test execution reports on my BuildWise Server. On the second day, in the email response from the principal software engineer, he advised me to "slow down, for quality". My reply: "I have always been working this way, never compromising on quality (of automated test scripts)"
Anyway, after three days, the principal software engineer wanted me to implement the whole test suite in Java. I completed the task in 2 days, by converting Selenium + RSpec to Selenium + Junit.
Readers might ask “How could accomplish the task (Java version) so quickly?”
Firstly, it is converting (from Selenium Ruby) rather than scripting new from scratch.
I wrote the test scripts in the same style, Maintainable Automated Test Design. If you check out this article, Page Object Model is universally applicable in web test automation, you will see that the top-tier test scripts are virtually identical, regardless of language.
Also, I wrote a Ruby script to do the conversion (Ruby is a great text manipulation language), which saved a lot of time. So, during that two days, maybe 50% were still scripting Ruby, the other day to make sure the converted Java script working, using IntelliJ IDEA (Java IDE).
It turned out (later I knew) that it was this principal software engineer who failed the last test automation attempt, a big failure, using Java + Concordian. I heard about this embrassing failure from a friend who worked here, "the company spent 3 time of development effort trying to maintain the Gherkin E2E suite, but failed".
I read his code, not good; as E2E test scripts, quite bad. I created the Selenium Ruby tests based on reading the existing & no-longer-working test scripts in Java. He did not provide any help or documentation (later, he said "I was busy, I should have ..., but good, you figured out yourself")
What the principal software engineer (Java) did not know I am a much better Java programmer than him (I was regarded as a 10X developer back in 2006).
Then, the principal software engineer wanted to re-implement the suite in TestCafe (JS). He even sent me a spreadsheet, there is Puppeteer and another (forgot the name) after that.
Clearly, he was sabotaging.
I realized it was silly. Because I just finished converting Selenium Ruby tests to Java, why again to JS? Above all, if others want to achieve my productivity, they need to do Selenium Ruby first anyway.
I expressed my concern to a senior manager who was overseeing the POC. He agreed that this indeed does not make sense, and would talk to the principal software engineer. In the afternoon, this manager called me, saying, after talking to the principal software engineer and another tech lead (also in the POC team, by the way, I was the only one who did the work), they insisted on preferring Java or JavaScript, not Ruby.
I declined the renewal offer and left. Not long after, there is a job ad for a Senior Test Automation Engineer for this financial company, one criterion got my attention: “Demonstrated expertise in scripting automated tests using Java, C#, Python, and JavaScript”. The Ruby language, the one used in the only successful test automation in the history of this bank (someone told me), was excluded, which seemed to me, purposely.
---
Advice to CIO/CTOs, for E2E test Automation, if seeing a good sign, you need to get involved personally, just like LinkedIn Co-Founder (check out this article, “The Software Revolution Behind LinkedIn’s Gushing Profits”). Most middle managers and senior tech leads are in “Another Day, Another Dollar” mode. If you don’t care, how should they?
Related reading:
About the Creator
Zhimin Zhan
Test automation & CT coach, author, speaker and award-winning software developer.
A top writer on Test Automation, with 150+ articles featured in leading software testing newsletters.
Comments
There are no comments for this story
Be the first to respond and start the conversation.