By Nikolay Advolodkin March 22, 2017

Best Online Resources to Learn Test Automation in 2017

Introduction

When I first started doing test automation many years ago, I had a tough time finding good resources to help me improve my skills. I found there were many bad resources, many mediocre ones, and overall very few that were actually helpful. Therefore, when I did find good resources, I saved them. I still do this today.

Below is a list of the best automation resources that I have gathered over the years. I hope they are as helpful for you as they have been to me.

Online Video Courses

1) Selenium 2 WebDriver Basics with Java

Alan Richardson

Selenium WebDriver | Java | $229

There are a ton of Selenium WebDriver courses out there. Most of them are complete garbage, but Alan’s course is just awesome. He will teach you many different aspects of Selenium WebDriver, such as:

  • How to handle iFrames
  • How to write tests
  • How to perform user interactions
  • How to invoke JavaScript
  • How to work with tabs
  • And so much more, from basic to advanced

2)  Complete Selenium WebDriver with C# – Build A Framework

Nikolay Advolodkin

Selenium WebDriver | C# | Visual Studio | MS Test | $19

Yes, this is a shameless plug for my course, but in all honesty, this is a wonderful course. It is the #2 rated Selenium course on Udemy and has over four thousand students. Some of the topics you will learn are:

  • Everything you need to get started with Selenium WebDriver
  • How to create your first automation framework from scratch
  • The Page Object Model, the most effective way to create automation testing frameworks
  • C# for beginners to make you efficient at coding frameworks
  • Visual Studio and MSTest framework
  • And much more…

3) Selenium Guidebook

Dave Haeffner

Selenium WebDriver | C# | Java | Ruby | Python | JavaScript | $249

This isn’t purely a Selenium WebDriver video course. This is actually a collection of a bunch of great resources from Dave. You get video tutorials, an e-book, and cheat sheets. I bought it myself and am definitely satisfied. Here you can learn:

  • Local configurations
  • Cloud configurations
  • How to write maintainable tests
  • And much more

4) Selenium WebDriver, SpecFlow, and BDD

Pluralsight

Selenium WebDriver | C# | BDD | $29/mo

This is an excellent course on PluralSight that will teach you how to do Behavior Driven Development using SpecFlow framework. Jason does an excellent job teaching the relevant topics for BDD. It’s actually the only BDD course that I have seen for the SpecFlow framework. Some things you can learn are:

  • SpecFlow
  • Page Objects in Selenium
  • Behavior Driven Development concepts

5)  Selenium WebDriver Implicit and Explicit Waits

Selenium WebDriver | C# | Visual Studio | $Free

Struggling with flaky tests? This is a free Selenium WebDriver course that you can use to seriously improve the stability of your automated functional tests. Here are some topics you will learn:

  • Learn the problems that can occur as a result of improper synchronization
  • Learn how to use Selenium WebDriver explicit waits
  • Master Selenium WebDriver implicit waits
  • Comprehend the appropriate situations in which to use all of the different types of waits

Test Automation Frameworks

Did you know there is an abundance of incredible code out in the world that has already been developed? You are not the first person to try and build an Enterprise-level test automation framework. People have been doing this for decades.

What follows here is a list of all the automation frameworks I have found through my years of development. Most of it is Selenium WebDriver, since that’s what I am currently using. Take a look at everything to gather some ideas for your efforts.

1) Selenium WebDriver FrameworkUltimate QA

Selenium WebDriver | C# | Page Object Model

This is my open source framework, which I teach through my Complete Selenium WebDriver Course. It is lightweight, easy to use, and is based around the Page Object Model for easy maintenance. Fork it or download it to get some new ideas for your future framework.

2) Automate The Planet Frameworks

Anton Angelov

Selenium WebDriver | Test Studio | C#

Anton has a ton of useful code that you can look at. He applies different design patterns to his code to show you how it would look. For example, you can see how to use the Strategy Design Pattern, the Facade Design Pattern, the Page Object Model, and the Advanced Page Object Model. You can cycle through them and decide what you want to reuse.

3) SpecFlow BDD Automation

Selenium WebDriver | BDD | C# | Acceptance Testing

SpecFlow is one of the few C# BDD frameworks out there, which automatically makes it a highly desirable candidate. This framework helps you to build acceptance tests using business-readable specifications. Therefore, these tests are readable by the developers, testers, and business personnel. In theory, these tests can replace requirements as they serve as living documentation.

4) Golem Automated Testing Framework

Selenium WebDriver | GUI Testing | RESTful Testing | SauceLabs

This framework is one of the most feature-rich frameworks I have ever seen in the industry. It helps you to build GUI tests, RESTful tests, and tests against Windows applications, running all of this locally or in the cloud. I spent many hours looking at this code and learned a lot.

The creator has some excellent strategies for making very readable tests. Furthermore, he creates great logs, screenshots, and video recordings to help debug the failed tests Sadly, I cannot get it to run consistently, but it’s a great place to start building from.

5) Gauge

ThoughtWorks

Test Automation

Gauge is a test automation framework designed by the guys who created Selenium WebDriver, which makes it interesting, although I haven’t explored it myself. They do seem to create resources that change the world. It’s a resource I will look at in the future, and you should as well.

6) RedwoodHQ

Test Automation | Keyword Driven | C# | Java | Python

This is an open source keyword-driven framework that allows users to build keyword-driven actions in order to create their tests through a simple user interface. They have integration capabilities with source control, continuous integration, and many other features. I’m not a big fan of keyword-driven frameworks, but if they are your cup of tea, then you should look at RedwoodHQ. Here are some great links to get you started:

7) Serenity

Automation Framework | BDD | Java

Serenity is a BDD framework that works with Java and Selenium WebDriver. Serenity also offers functionality such as:

  • Providing WebDriver management
  • Taking screenshots
  • Running tests in parallel
  • Facilitating Jira integration

I have not personally used it, but I know some people who do and they all say fantastic things about Serenity. It makes me a bit jealous that it doesn’t integrate with my Visual Studio.

8) BDD Selenium Framework

Alister Scott

Selenium WebDriver | BDD | Specflow | C#

If you are looking to build Behavior Driven Development tests using Selenium WebDriver and C#, then Alister has the code that you want to see. He utilized SpecFlows framework to run his tests. I always recommend you look at all the code you can as a practical method of acquiring knowledge from other individuals.

Books

If you want to master test automation, you must read, as there is a wealth of information available in books. I have read a bunch of these, and every single one has added an extra weapon to my automation arsenal.

1) Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

Although this is not a book specifically for test automation, it’s one every code writer should own. Out of all the books I have read, this one has caused the greatest improvements to my functional test automation. Bob Martin conveys a ton of coding best practices that anyone writing code should implement, even Automation Engineers (furthermore, Uncle Bob tells the best stories). Some of the topics that are covered include:

  • How to write meaningful names
  • How to write good functions
  • How to handle comments
  • How to deal with objects and data structures
  • How to do proper error handling
  • How to write unit tests

2) Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Bert Bates, Kathy Sierra, and Elisabeth Robson

It’s funny how the books that have had the most impact on my automated functional testing have been books on software development. At some point, all Automation Engineers reach a place where automation skills are no longer their Achilles heel. Rather, it’s a lack of understanding of good object oriented design and patterns to deal with common problems faced by all of us.

At one point, I reached such a place in my career. This book helped me to surpass any such impasse by covering fundamental design patterns such as:

  • Factory Pattern – excellent for WebDriver initializations
  • Strategy Pattern – excellent for different kinds of behaviors
  • Other great object oriented design principles, such as “programming to an interface and not an implementation”

3) Selenium Design Patterns by Dima Kovalenko

Selenium Design Patterns by Dima Kovalenko is an excellent book, which will teach you some very valuable automation design patterns, regardless of the tools you use. You will learn:

  • Hermetic Design Pattern
  • Page Object Pattern
  • Spaghetti Antipattern
  • And much more

4) Experiences of Test Automation by Dorothy Graham and Mark Fewster

This is an excellent resource for test automation. Dorothy and Mark have a lot of experience, and their advice can help you to overcome many hurdles when dealing with test automation. Even today, I still see people making a lot of mistakes that could be overcome by reading this resource. You will learn some valuable techniques, including:

  • How to prioritize automation
  • What to automate
  • How to automate
  • Management issues
  • Technical issues
  • Database automation
  • Regression testing in production
  • Automating the testing of complex government systems.

5) Agile Testing by Lisa Crispin and Janet Gregory

I originally picked up this book to become a better tester in general. Although I am still reading this book, I have learned some valuable information already. Some things that you will learn are:

  • How to overcome barriers to test automation
  • How to get testers engaged in Agile development
  • Where testers and QA managers fit on an Agile team
  • What to look for when hiring an Agile tester
  • How to transition from a traditional cycle to Agile development
  • How to complete testing activities in short iterations
  • How to use tests to successfully guide development

6) Refactoring: Improving the Design of Existing Code by Martin Fowler and Kent Beck

I don’t care what anyone says. A good Test Automation Engineer is a good programmer. Now, we may never work for Google developing Google Chrome, but we should have the capability to understand good code and write good code. We should have the capability to design a maintainable, robust, and flexible test automation framework. When we face one that isn’t good, we should have the capability to refactor it.

7) The Selenium Guidebook by Dave Haeffner

This is an excellent resource from Dave Haeffner that is purely focused on teaching you Selenium WebDriver. He goes through all of the pain points of working with Selenium and covers them one by one. Some topics that you will learn are:

  • Getting Started
  • Finding and Verifying Locators
  • Your First Test
  • Writing Maintainable Tests with Page Objects
  • Writing Super Maintainable Tests with a Base Page Object

Websites to Practice Test Automation

1) UltimateQA Practice site

This source is a free place to practice some scenarios, such as:

  • Testing a large, complicated page
  • Working with simple HTML elements like buttons
  • Filling out forms
  • Automating an application that evolves over time

2) Awful Valentine

Awful Valentine is another free website, which I discovered through a book I read called Selenium Design Patterns by Dima Kovalenko. This website is a simulator of an online store where you can purchase different kinds of items. You can try to automate items such as:

  • Slow AJAX
  • Slow animation
  • Third party links
  • Credit card transactions
  • Online store checkout scenarios

3) Dave Haeffner’s Practice Site

Dave designed an excellent place to practice different kinds of test automation scenarios. The scenarios you can try to automate include:

  • A/B Testing
  • Basic Authentication
  • File Uploading
  • Challenging DOM
  • iFrames
  • Slow connection behavior
  • Dynamic content
  • Hovers
  • Redirect links

4) Fake Online Investment Site

This is an online investment website where you can practice different automation techniques like user creation and money transaction validations. I got this website from the book A Practitioner's Guide to Software Test Design by Lee Copeland. Please use the Authorization Code 11111111, and you will be able to register for the site and login to practice your automated software testing.

5) QTP Tutorial’s Test Automation Practice Page

QTP Tutorial provides a free place to practice different identification techniques, including:

  • Using html id to interact with your elements
  • Utilizing html class to interact with your elements
  • Filling out different forms
  • Practicing signing up for an email list
  • Automating login scenarios

6) PHP Travels

This is an excellent demo travel site that you can use to practice your test automation. They have a front end and a back end for you to automate.

7) Mercury Tours

This is another fake travel site for test automation. It is not as good as PHP Travels’ site. However, if you are looking to practice your skills with a variety of different websites, this will add that extra variety.

8) Sample E-Commerce Site

This is a really nice fake e-commerce site for practicing test automation. If you have a project where you need to practice different flows for online stores, this is the website you want. You can practice:

  • Adding items to the cart
  • Checking out
  • Validating that items that have been added

9) Demoqa

This is a neat little website with simple elements to practice test automation with. It has:

  • Draggable elements
  • Droppable elements
  • Selectable elements
  • Sortable elements
  • And much more

E-learning Platforms

These are websites that contain a bunch of very useful courses. Some are paid and some are free. Take a look and search for your desired topic.

1) Udacity

Software Testing | Programming | Git | Free & Paid

This is a great site with very high-quality videos. The videos are recorded, so you can take interactive quizzes based on the content that was drawn on the page during the video. The instructor may ask you to identify the correct solution to a problem, write four answer choices, and then you can interact with the User Interface to select the correct choice. Two of my favorite free courses are Software Testing and How To Use Git and Github.

2) Code School

Development Training | C# | Ruby | Python | Git

This is a really sweet website for learning different kinds of programming languages by actually coding your own games. The video editing of these tutorials is excellent, and they are extremely interactive.

3) Microsoft Virtual Academy

Development Training | C# | .NET | Free

This is an excellent website from Microsoft. Here you can learn a lot about all of the different Microsoft technologies from excellent and knowledgeable instructors. Some of my favorite courses to improve your automation skills include:

4) Coursera

Online University | Free & Paid

Their motto is “Take free online courses from top universities.” And as promised, you can take real college courses online. Most are completely free. The only catch is you actually have to participate in the course, which means hard start dates, homework, and quizzes. Some courses you can partake in include:

5) Pluralsight

IT Training

This is a topnotch site, featuring teaching on great topics from some of the best professionals in the field. Teachers include John Sonmez, Aaron Frost, and Scott Allen. You can learn different programming languages like Java, C#, and Python by watching video tutorials. You can also learn automation tools like Selenium WebDriver, Coded UI, NUnit, Visual Studio Test, and much more. All of the video tutorials come with code and notes you can use to enhance your retention rate. Some of my favorite courses include:

Blogs / Websites

1) Selenium HQ Wiki

Selenium WebDriver

You cannot have a resource guide to test automation without including the headquarters of knowledge for Selenium WebDriver. This is a fantastic wiki for a great deal of information related to Selenium. Some of the topics you can read about from the contributors themselves include:

2) Ultimate QA

Selenium Webdriver | Automation Testing | Quality Assurance | Software Testing

This is my home base where I talk about everything related to QA, with a serious focus on automated software testing using Selenium WebDriver. I have both posts and actual video tutorials that teach you step-by-step. Here are some examples of what you can learn:

3) Elemental Selenium

Dave Haeffner

Selenium WebDriver | Ruby

This is a serious gold mine of information when it comes to Selenium WebDriver. Forget that it’s only with Ruby; that’s irrelevant. If you want to learn how to perform impressive tasks with Selenium WebDriver, go through the archives and admire the code. Here are a few examples:

4) JoeColantonio.com

Automation Testing | QA | Development

Without a doubt, Joe is one of my favorite thought leaders in test automation. Joe constantly provides quality content on all kinds of different subjects. This is my default blog for general QA learning. I strongly recommend that you check it out. The subjects include:

5) W3C Schools

HTML | XPath | CSS | Web

If you are going to be doing any kind of test automation, you need to learn some basics about HTML and other web technologies. This has excellent resources to help you get started:

6) Automate The Planet

Anton Angelov

Test Automation | C# | Jenkins | Visual Studio | TFS | Telerik Test Studio

Anton delivers high-quality content that helps me to grow as a Test Automation Specialist. He covers a bunch of amazing topics related to test automation. For example:

7) Better Software Magazine by StickyMinds

Topics Covered: Software Testing, Software Development, DevOps

This is a free monthly publication that focuses on topics such as Software Testing, Software Development, DevOps, and much more.

Virtual Conferences

1) Automation Guild

Test Automation

This is by far the best online conference I have ever attended. Every other online conference I have experienced has been deeply disappointing when compared to the Automation Guild. It is extremely focused and convenient. Here’s a small sample of the talks there:

2) StarWest Virtual Conference

Free | Test Automation | Software Testing

This is another option for an online conference that may have some benefits for you. To be honest, a lot of the talks are just self-promotion and useless information about a specific tool. However, there might be a few talks here that pique your interest. Plus, it is free.

Webinars / Videos

1) Grading the Quality of Selenium Tests

Test Automation Grading Rubric | Selenium WebDriver | Automation Best Practices

This source is a fantastic webinar by Dave Haeffner that I highly recommend. He tackles a really interesting topic of grading your automation tests based on a rubric he devised that actually helps you to analyze how good your automated tests are. This is one online video you should make sure to watch to seriously improve your automated software testing.

2) Page Objects in Test Automation

Test Automation | Selenium WebDriver | Page Object Pattern

This is a free course on Youtube that will give you a complete understanding of the Page Object Pattern when it comes to test automation. Using Selenium WebDriver, I show you how to create readable functional tests, how to create Page Objects, and how to scale your Page Objects when your automation is beginning to take shape.

3) Selenium WebDriver Keyboard + Mouse Actions

Test Automation | Selenium WebDriver | User Interactions

This is a free course on Youtube that will give you a complete understanding of how to perform keyboard and mouse interactions using Selenium WebDriver. These skills are useful in order to be able to do things like drag n’ drop, resize, draw, hover, and much more.

4) “Getting Test Automation Right

Test Automation Techniques

This video is a Zephyr presentation regarding the best techniques to get test automation right. The presentation is fantastic largely because of the guests on this webinar. Dave Haeffner, Joe Colantonio, and John Sonmez are three powerful minds, and they share their experiences here. Together they cover everything from basic Selenium WebDriver tips to advanced topics to help improve the stability of your tests.

5) “Building an Automation Framework That Scales

Test Automation | Scalability

This is a great webinar from Telerik by Peter Kim, which goes into depth about how to build a test automation framework that scales. He teaches an interesting technique where he controls all of his objects through an XML file, therefore making his tests externally configurable without the need to modify code.

Slides / Presentations

1) Page Objects in Test Automation

Test Automation | Page Objects | Selenium WebDriver | Best Practices

This is my presentation from the Page Objects in Test Automation course. The goal of this presentation is to help you understand how to drastically improve the stability of your automated functional tests.

You will learn:

  • Why functional test automation can create flaky tests
  • Why the Page Object Pattern is the best approach to test automation design
  • How to design a good Page Object Pattern
  • How to work with large page objects
  • And much more!

2) Test Automation Trends for 2016 and Beyond

Test Automation | Trends | Frameworks | Languages

Joe Colantonio talks about the latest trends in the IT industry so you can make better decisions for your career. Topics include which test automation tools are growing, which programming languages you should learn, which development methodologies will dominate the future, and the future of Test Driver Development—and these are just a few of the insights provided by this excellent SlideShare.

3) Managing Continuous Delivery of Mobile Apps for the Enterprise

Continuous Integration | Automated Testing

What we have here is an excellent SlideShare presentation regarding Continuous Integration and a good approach to implementing it. Sauce Labs talks about source control, build tools, CI tools, self-testing builds, and much more.

4) Three Approaches to Optimizing Your Selenium Test Designs

Test Design | Selenium WebDriver

This is a great SlideShare that describes the positives and negatives of the Page Object Model, Keyword Driven Frameworks, and Behavior Driven Development.

Tear Down

I hope that you enjoyed all of these helpful automation testing resources.

They are some of the best that I have found over the years, and I wanted to share them with you. Feel free to let me know what you think in the comments below. Until next time, my friend.

About the author

    Nikolay Advolodkin

    Nikolay Advolodkin is infinitely passionate about three things: self-improvement, IT & computers, and making an impact. He teaches people the art of automated software testing and quality assurance worldwide. His goal is to help develop higher quality software in a more efficient manner. Nikolay is the creative mind behind ultimateqa.com Follow Nikolay on his Twitter page for all of the latest updates: @Nikolay_A00.