How to become a Full-Stack Automation Engineer

by @richdownie


** Automate a Browser with Selenium in 15 mins **
Sign Up for Full Stack Sessions => Full Stack Automation with Ruby

Prerequisites:

  1. GIT / githubYou HAVE to know how to share code on github. GIT is first on the list because writing Full-Stack Automation Code for yourself is not going to make you very much money. Check out these “How-To Screencasts” & Try Git

2. Programming Language — WebDriver works with [ Java, C#, Python, Ruby, Perl, PHP]. Pick one of these languages and learn how to work WebDriver with it. If you are a noob to programming and interested in the Ruby language, I strongly suggest the Ruby Programming Book & Try Ruby.

3. Web Development Framework — Learn all the layers [ Model, View, Controller ]. A good friend of mine showed me this video on January 19th, 2006 in a conference room and I decided right then and there that I was going to teach myself rubyonrails. Learning Rails was convenient for me because of all the screencasts I found on the internet that I would watch over and over at night and on weekends. I’m not saying you have to learn Rails. There are a ton of open-source frameworks out there. You just need to know the common (MVC) layers that make up these frameworks. It is kind of hard to be a Full-Stack Automation Engineer without knowing what’s in the Full-Stack. Here is a quick (3min) DEMO on some of the basics of MVC automated testing.

4. SQL — A Full-Stack Automation Engineer has to know how to speak database.

Period.


Get GREAT at:

WebDriver — This is THE tool that drives the browser(s). I prefer the Ruby bindings version, selenium-webdriver.

** Automate a Browser with Selenium in 15 mins **

Unix— ls, cd(change directory), grep and crontab are biggies. (Windows users may want to try Cyqwin)

TextEditor — Pick one and get comfortable editing code with it. I use TextMate but you can use Vim, Atom, or RubyMine to name a few.

HTML & DOM Inspector — Install the DOM Inspector or whatever it’s called in your favorite browser, right-click, select Inspect Element and learn all that html at the bottom of the browser.

SauceLabs — Once you know how to automate a single browser with WebDriver you can easily scale your tests with SauceLabs by running your test suite against all these Device/OS/Browser Platforms.

PAGE OBJECTS, PAGE OBJECTS, PAGE OBJECTS


Get GOOD at:

Google — I sometimes kid and tell people I have a degree in ‘Google+Stackoverflow’. Seriously, whenever you come across an Exception Error or ‘code-block’— GOOGLE IT. Someone most likely will have asked the same question in a forum somewhere on the internet. Just scroll down and look at the answers. If you can’t find an answer to your problem, POST a question to the forum yourself. You need to have thick-skin to become a Full-Stack Automation Engineer and ask a lot of not-so-smart questions on the internet.

RVM (Ruby Programmers) — A command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems.(This really falls between Get GREAT at: and Get GOOD at: for any rubyist) rbenv is another option.

CSS, Javascript — Gain a general understanding of how these languages work in the View layer. You don’t have to be an expert but the better you are at them the better you are at writing full-stack automated tests.

Project Management Tools — Software requirement tracking is difficult but these products tend to be pretty good at it. [ PivotalTracker, Jira, tinyPM ]. You will usually find out what needs to be automated from Project Managers, Developers and QAs with these online resources.

Rake (Ruby Programmers) — use rake for multithreading browser builds and then donate to the Jim Weirich Fund.


It gets very interesting when you learn how to automate crontab (+) Rake (+) net-ssh (+) Ruby IO (+) Email & Chat Room notifications (x)’s Saucelabs

(Enter Robots)


SSH— You’re going to need to be able to grep cloud server logs and query data from the databases up there.

Load Testing— I’m a big fan of ruby-jmeter with flood.io. ~ WATCH MY DEMO !!!

HTTParty — Makes http fun again! GET your JS-ON!

Heroku— Signup and learn how to deploy your Web Framework. Here’s how it’s done with Rails.

Get Out There!

Attend Conferences: It is very important to network with real live people and not just user_names in chat rooms. If your company won’t send you to a conference you think you should be at — invest in yourself — Take the PTO and go anyway. I do this a lot.

Give Talks: I am by no means a public speaker. However, I’ve forced myself to do it and kinda look forward to it these days. I recenlty shared talks at NYC Selenium Users Meetup, barcamproc and barcampbuffalo. This practice will boost your confidence tremendously and force you to learn all the little details.

“Know your Craft.” — Quincy Jones

Blog/Tweet: Make a screencast of some of your automation bits and share it with the internet. Don’t forget to include #automated #testing #buzzwords and #hashtags. Believe me, your peers from around the world will find you. Go buy Jab Jab Jab Right Hook by @garyvee and really understand how social media works!

Join the local tech meetups: Find people near you who are like you and excited about tech. They don’t have to be Full-Stack Automation Engineers, but there is a good chance one of them is looking for one.

IRC — join the virtual discussions. I’m currently using the collolquy client to connect with the selenium and cucumber channels. I don’t say too much there but the open-source people that built the tools I use are in there talking to each other. Pay attention!

Book Suggestions:

Full Stack Automation with Ruby by (me) @richdownie

Selenium Guidbook by @TourDeDave

Cucumber and Cheese by @chzy

Selenium Recipes by Zhimin Zhan

Passionate Programmer by @chadfowler

Programming Ruby by @pragdave with @chadfowler & @PragmaticAndy

Agile Web Development with Rails by @dhh & @pragdave

Jab Jab Jab Right Hook by @garyvee