December 11, 2017

Notes: How to Become an Automation Engineer, by Angie Jones

"Are you interested in becoming a test automation engineer? Do you lead a team you'd like to see transition toward test automation by learning the skills needed to do this role?

"Join Angie Jones December 11, 2017 at 1PM EST for 'How to become an automation engineer'. Angie is a preeminent Test Automation Engineer working at Twitter. She has helped countless people make the jump to test automation engineer and will share her insights into this transition".

- Beaufort Fairmont.com

The Speaker:

"Angie Jones is a Senior Software Engineer in Test at Twitter who has developed automation strategies and frameworks for countless software products. As a Master Inventor, she is known for her innovative and out-of-the-box thinking style which has resulted in more than 20 patented inventions in the US and China. Angie shares her wealth of knowledge by speaking and teaching at software conferences all over the world".
Speaker Contact Details:
Angie Jones – Senior Software Engineer in Test, Twitter



Care to read about Angie Jones' job search before Twitter? Read her latest TechBeacon article, Recruiting diverse engineering candidates: What tech companies still get wrong
at https://techbeacon.com/recruiting-diverse-engineering-candidates-what-tech-companies-still-get-wrong



Angie Jones started her talk mentioning she gets this question around once a month..

How To Become an Automation Engineer? 


To help answer this question, Angie Jones developed this talk.


First of all: What is an automation engineer?

  • An automation engineer automates repeatable tests. "It is a hybrid role: you have a developers skillset and a testers mindset".
But how do you do it? Angie Jones advises three things: 
  • Learn to code. 
  • Learn about automation. 
  • Continue to learn. 
Let's go over the first thing...

1) Learn to code


This is a skill you need to pick up before jumping into the automation piece, according to Angie. You need to learn the foundation principles about how to code.

How to pick this up?

You Could DIY...


Yes, you could Do It Yourself, looking at tutorials.
  • Pros: Learn at your own pace, without the pressure of a classroom, and can focus on only what you need.
  • Cons: Requires a great deal of discipline. Angie mentions how it is difficult finding time to fit this in. Plus, it is difficult to figure out what you need to focus on. New to this? You don't know what to focus on. Therefore Angie suggests that you... 

But It Would Be Better To Get Formal Training...

Get a consultant to come in to train you, or enroll into a good old-fashioned classroom. Take a class in, say, Java. Learn from professionals and get a hands-on experience.
  • Pros: Dedicated time to learn. It also may be covered by a training budget. Ask your manager! Don't expect your manager to come to you. You also get a breadth of coverage with hands-on training. 
  • Cons: Need to convince management, tying it into your companies goals to get the dedicated time you need to focus. They probably going to cover more than what you need at the moment. Take good notes, since you may need this information later.

Wait... what language?


What's marketable? Angie did a bit of research, and found that the top languages were:
  • Java
  • Python
  • Javascript
  • Ruby 
  • C# 

... in that order. Why Python? Less bloat and it is easier to pick up.

More to pick up:

Understand...
  • HTML / DOM: How web pages are built
  • CSS / XPath: How web elements are identified.
  • SQL: How web pages get content from a database.

Angie Jones advises that you take a course at a community college on how to build a website. This will give you a good background.

Being multilingual with programming  languages helps you know how various concepts are implemented such as: Object oriented programming, data structures, how things are done in different syntaxes. You get to know the logic behind the language.


Are There Certifications that Angie recommends? 


Um, no.

Yes, Angie mentioned that she is certified in Java. It helped her learn the language at quite a deep level. It won't hurt at all, but isn't directly necessary.

How Did Angie Get Into Automation Development?


Angie Jones was first hired as an automation engineer right after college.  She went to school for computer science, and was trying to get a software development position.

Unfortunately, the job requirement changed, and it became an automation developer, doing it She for two year, switching to development.

The odd thing she found out? She preferred the automation.

Software development? You work on one small piece of the code. Automation development? You were able to get involved in everything! Angie also had a passion for customer advocacy that did not get fulfilled as a software developer.

So far, she has been doing it for fifteen years.

What is the second thing to do when trying to become an automation engineer?


2) Learn about automation


Understand programming in general? Now you can learn about automation!

Know different layers of automation:
  • UI (Web): Get to automate customer flows
  • Mobile
  • Web Services: How content on page is retrieved. 
  • Unit: Traditionally done by developers, but these are automated as well

Angie started off at the UI level. After mastering that, she went into the webservices layer, then mobile testing. Angie suggests going on GitHub and searching automation, download them, launch them in your IDE, see if you can add to them.


Complementary Processes


  • Behavior Driven Development: Structure tests around the functionality of various features.
  • Test Driven Development:  Development process, an approach to qwrite your init tests. Angie uses this approach in automation.


Tools:

Yes, tools are important, and what people jump into first, but there is so much more!
  • Selenium WebDriver for UI automation
  • Appium for Mobile 
  • Rest-Assured / Postman for Web Services
  • Cucumber and Specflow for BDD
  • JUnit and TestNG for Assertions. 


Execution Enablement:


  • Continuous Integration: Running tests on your own machine is not helpful for the team. Use Bamboo or Jenkins.
  • Parallelism: As your automation suite grows, you need to look into running tests in parrallel so your automation suite can run faster.
  • Grids: Get to know Selenium Grid, Browser Stack, Sauce Labs.

Strategy


What's your game plan?

Someone -- a product owner, QA Manager -- needs to have their hands on the strategy. You can't have people jump on tools or languages. Why are you doing automation? Reducing regression time? What layers do you want to automate?

Angie always thinks of strategy before she learns a language.. how does this language transfer to other jobs? Learning an obscure language might not have a lot of buy in from managers.

There is an old automation rule of thumb that if you keep your automation framework in the same language of the one the developers are using, the developers will help

... Angie has never seen this level of dedication, with a developer helping writing automation.

Developers want to write features, not automation.

According to Angie, learning an obscure language just because the developers are using, and you are expecting them to write automation for you, is a bad reason to use a language.

What else do you need to do? ...


3) Continue to Learn


Angie has been doing this for quite a while. There are always new trend. New voices that appear. You need to get to know them.

  • Read books
  • Read blogs / articles. Angie has one. Beuford fairmont does too.
  • Watch webinars
  • Listen to podcasts
  • Attend conferences
  • Work with other automation engineers
  • Follow the gurus


Angie loves podcasts, listening to them for inspiration on the way to work.

Angie does not recommend you, as a new automation engineer, to tackle writing an automation framework by yourself. If you are new, try working with an already established team. Pairing up really helps advance you knowledge.


Gurus Angie Recommends You Follow on Twitter:



Oh. My. God. That's ME!!!!!


I'm in the list!

I did not expect it at all.

Here I was, encouraging the Ministry of Testing - Boston, a Meetup I organize, to go to this webinar, and I get a shout out. Thank you, Angie!

When Angie mentioned me, she said, "T.J. is very interesting, especially for people who are just getting started", mentioning that I had been manual testing for twenty years, and have only been in automation the past three years.

"What's great about T.J. is he documents everything [...] Things that I don't know I can go to him".

I almost fell out of my chair.






Full Disclosure


I am a superfan of both Angie Jones and Joe Colantonio, and have gotten to know both of them quite well on Twitter over the past two years.

I love what Angie has been doing with her webinars and what Joe has been doing with his TestTalks.com podcast... Such a great service to the testing community!

I've gotten to know them so well that Angie recommended me for a job at Twitter-Boston last month, and Joe scheduled me to submit a pre-recorded talk on his AutomationGuild.com. I was even selected to be a backup of another talk Angie Jones is doing tomorrow in case Richard Bradshaw could not make it.


Tomorrow: 2018 Test Automation Trends 


"Before 2018 kicks in, 4 leading experts will join forces and share with us the test automation trends that will dominate our daily work procedures and processes in the upcoming year.

"Automation Guild Conf founder (and our very good friend) Joe Colantonio will host a panel with 3 Dev/Test thought leaders: Angie Jones, Richard Bradshaw, and Gil Tayar. They will discuss major automation skills that are in high demand when hiring test engineers, as well as tools and best practices required to help you deliver faster and better.

"Join this exclusive webinar to discover:
  • "Top test automation strategies for 2018 (or: how to impress your boss)
  • "Big opportunities in test automation (or: how to *really* impress your boss!)
  • "AI automation: how is it going to affect you and how to prepare for it
  • "Tools and technologies you should get familiar with right now"
"During the session, Joe will take live questions from the audience and present them to experts on the panel".

Richard Bradshaw is running the Ministry of Testing HQ at http://ministryoftesting.com/ while the founder, Rosie Sherry, is on maternity leave.

I can't wait to attend!

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

1 comment:

jadiyan said...

Angie Jones' book "How to Become an Automation Engineer" explains the essence of efficiency and innovation in technical fields. The automation engineer is the one who designs the systems to achieve maximum performance, just like the enhancement of battery technology that will help in energy storage and usage. For instance, tubular battery efficiency becomes a significant factor in power supply for sustainable systems. These batteries have superior plate structures and advanced materials, meaning better energy output and longer lifespans. While automation engineers refine processes, tubular batteries refine energy management. It supports the industries that require solar energy and backup power with a consistent, reliable performance.