Introduction

When I first started doing test automation many years ago, I had a really tough time finding good resources to help me improve my skills. I found that there were many bad resources, many mediocre ones, and very few that were actually helpful. Therefore, when I found good resources to learn Selenium Webdriver, 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 that they are as helpful for you as they are to me.

Online Video Courses

online video courses to learn Selenium webdriver

1) Selenium 2 WebDriver Basics with Java

Alan Richardson

Selenium WebDriver | Java | $229

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

Handle iFrames
Write tests
Perform user interactions
Invoke JavaScript
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 that 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
Much more…

3) Clean Coders

Uncle Bob Martin

Development | Best Practices | $14

This is my new favorite website to go to for learning development best practices. If you want to truly shine and be a Test Automation superstar, you need to be a good Developer. This website will give you all of the fundamental skills. Some things you will learn in the most entertaining videos are:

Foundations of SOLID principles
Factories
SOLID Components
Component Cohesion

4) Selenium Guidebook

Dave Haeffner

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

This isn’t purely just a video course to learn Selenium WebDriver. 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
Write maintainable tests
Much more

5) 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 that you can learn are:

SpecFlow
Page Objects in Selenium
Behavior Driven Development concepts

6) Selenium Webdriver Implicit and Explicit Waits

Selenium WebDriver | C# | Visual Studio | $Free

Struggling with flaky tests? This is a free course to learn Selenium Webdriver that you can use to seriously improve the stability of your automated functional tests. Here are some topics that 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.

Automation Frameworks and Tools

here are test automation frameworks to learn Selenium webdriver

Did you know that 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. It’s all quality code that I filtered down.

1) Golem Automated Testing Framework

Selenium WebDriver | GUI Testing | RESTful testing | SauceLabs

This framework is one of the most feature-rich frameworks that I have ever seen in the industry. It helps you to build GUI tests, RESTful tests, tests against Windows applications and runs 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.

2) Page Object Model FrameworkUltimate QA

Selenium WebDriver | C# | Page Object Model

This is my open source framework that I teach through my complete course to learn Selenium Webdriver. 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.

3) 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, Page Object Model, and Advanced Page Object Model. You can cycle through it and decide what you want to reuse.

4) BDD Sample Code

Alister Scott

C# | Selenium WebDriver | BDD | Specflow

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.


BDD Frameworks

bdd frameworks to learn selenium webdriver

1) SpecFlow BDD Automation

C#| Selenium Webdriver | BDD

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.

2) Serenity

Java| Selenium | BDD

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 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.

3) Gauge

ThoughtWorks

Test Automation

Gauge is a test automation framework designed by the guys that created Selenium WebDriver. Although I haven’t explored it myself, it does seem interesting, since it was created by the Selenium guys. 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.


Unit Testing Frameworks

unit testing frameworks to learn selenium webdriver

1) NUnit

C# | Unit Testing

This is definitely the most popular C# unit testing framework. It’s extremely active on Github with tons of contributors and commits. You can use this framework to do unit testing and also acceptance testing with a tool like Selenium WebDriver. It’s pretty easy to use and robust.


Mocking Frameworks

mocking frameworks to learn Selenium webdriver

1) Moq

2) FakeItEasy

3) 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 others. 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:

Quick Start Guide
Documentation
Release Notes

Acceptance Testing

user acceptance testing frameworks to learn selenium webdriver

1) Fitnesse


Mutation Testing and Property-Based Testing

mutation testing frameworks to learn selenium webdriver

1) VisualMutator

C# | Mutation Testing

2) FsCheck

C# | F# | Property-based testing


Code Coverage Testing

code coverage testing tools to learn selenium webdriver

1) dotCover

C# | Code Coverage


Books

books

Many years ago someone called me a guru at using QuickTest Pro for functional test automation since I knew how to do everything with that tool. Which was ironic, because as a “guru” of QTP, I was only able to maintain about 10 functional tests with any kind of reliability.

Today, I am capable of coding a functional Graphical User Interface test in under 30 minutes with a guarantee of 99 percent reliability. I can also execute hundreds of functional tests every single day. I’m not saying this to brag; I’m stating it to convey that there is a secret to such a transformation.

That secret was reading books.

If you want to truly master test automation and put a smile on the face of your managers, you must read. Every book you read will be an extra weapon enhancing your test automation arsenal.

Below is a list of the most impactful books that I read to improve my test automation skills.

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 that every code writer should own. Out of all the books that I have read, this one has caused one of the largest improvements to my functional test automation.

Bob Martin conveys a ton of coding best practices that anyone writing code should implement, even you, Automation Engineers. Furthermore, Uncle Bob tells the best stories. Some of the topics that are covered include how to:

Write meaningful names
Write good functions
Handle comments
Deal with objects and data structures
Do proper error handling
Write unit tests

2) Software Test Automation

3) Head First Design Patterns: A Brain-Friendly Guide


It’s funny how the books that have had the most impact on my automated functional testing were 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.

Yes, I was a QTP guru according to some, but I was not a great Test Automation Engineer. 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”

4) Selenium Design Patterns by Dima Kovalenko


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

Hermetic Design Pattern
Page Object Pattern
Spaghetti Antipattern
And much more

5) 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.

6) 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. Some things that you will learn include how to:

Overcome barriers to test automation
Get testers engaged in agile development
Determine where testers and QA managers fit on an agile team
Look for when hiring an agile tester
Transition from a traditional cycle to agile development
Complete testing activities in short iterations
Use tests to successfully guide development

7) 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.

8) Selenium Guidebook

This is an excellent resource from Dave Haeffner that is purely focused on teaching you to learn 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 Really Maintainable Tests with a Base Page Object

Websites to Practice Test Automation

websites to practice automation

1) Ultimate QA Practice Site

A free place to practice some scenarios like:

Testing a large complicated page
Work with simple HTML elements like buttons
Fill out forms
Automate an application that evolves over time

2) Awful Valentine

Another free website that I got from a book I read called Selenium Design Patterns. 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. Some of the scenarios that you can try to automate include:

A/B Testing
Basic Auth
File Upload
Challenging DOM
iFrames
Slow connections
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 

A free place to practice different identification techniques such as:

Using HTML ID to interact with your element
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 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.

8) Sample E-Commerce Site

This is really a nice fake e-commerce site to practice 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 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
Much more

E-learning Platforms

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 is 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.

Try ASP.NET Course

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:

Rapidly diagnose and solve application problems in Visual Studio
C# Fundamentals
Software Development Fundamentals

4) Coursera

Online University | Free & Paid

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

Software Security
Testing With Agile
Mastering The Software Engineering Interview
Reviews & Metrics for Software Improvements

5) Pluralsight

IT Training

This is a top notch site with some of the best professionals teaching great topics.  These professionals 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 that you can use in order to enhance your retention rate. Some of my favorite courses include:

Automated Business Readable Web Tests with Selenium and SpecFlow
Automated Web Testing with Selenium
Quick Guide to API Testing with HP’s Unified Functional Testing
Creating an Automated Testing Framework With Selenium

Blogs / Websites

blogs

 

 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 fantastic wiki covers everything related to Selenium. Some of the topics you can read about from the contributors include:

Advanced User Interactions
Building WebDriver
Developer Tips
PageFactory

2) UltimateQA

Selenium Webdriver | Automation Testing | Quality Assurance (QA) | Software Testing

This website covers everything related to QA, with a particular focus on automated software testing using Selenium WebDriver. There are posts and video tutorials that teach you step-by-step how to work with Selenium WebDriver. Here are some posts  that you should read through:

Common Selenium WebDriver Errors and How to Fix Them
Complete Selenium WebDriver with C# Course
How to work with iFrames using Selenium WebDriver
Proper black box testing design
ChromeDriver and Chrome browser configurations

3) Google Testing Blog

Test Automation | Flaky Tests

Google is an innovator and the ideas and patterns that they follow should be emulated by the rest of the IT industry. I like to learn from the best.

This isn’t exactly a Selenium WebDriver blog, I know. However, this blog offers excellent information in general and it does cover topics related to test automation techniques. It also includes information on how to write great code. Here are some of my favorite articles:

Where do our flaky tests come from?
Too Many Comments on Your Code Review?
Reduce Nesting, Reduce Complexity
Providing Context With Commit Messages

4) Elemental Selenium

Selenium WebDriver | Ruby

Dave Haeffner is a great resource when it comes to test automation. He has been around for years sharing WebDriver knowledge and his website is a serious gold mine of information. If you want to learn how to resolve standard issues with Selenium WebDriver, go through the archives and work through the code samples. Here are a few examples of what you can learn how to do using Selenium:

How to work with Selenium Grid
How to use Safari
How to do load testing with JMeter and Selenium
How to test for broken images

5) JoeColantonio.com

Automation Testing | Quality Assurance | Development

Without a doubt, Joe Colantonio is one of my favorite thought leaders in test automation. Colantonio constantly provides quality content on all kinds of different subjects. His podcast, TestTalks, has many excellent interviews and he publishes the transcript of the interviews on his blog as well. By reading through these interviews, you have the opportunity to learn from a variety of experts with loads of experience, all in one place. The subjects include:

Test automation
Pair testing
Security testing
Quick Test Professional/Unified Functional Testing
Mobile test automation

6) W3C Schools

HTML | XPath | CSS | Web

Having a strong coding foundation is just as important as knowing specific tools like Selenium Webdriver. W3C Schools isn’t directly related to Selenium WebDriver, but it is a great resource to learn or brush up on the basics of the skills you need before you get ready to perform test automation with Selenium. If you don’t have these foundational skills, you won’t be able to work with Selenium WebDriver.

I refer back to this blog as needed, especially for these two areas:

HTML
XPath

7) Automate The Planet

Test Automation | C# | Jenkins | Visual Studio | Team Foundation Server (TFS) | Telerik Test Studio

I have followed Anton Angelov for a number of years because he knows automation. Angelov regularly shows different code solutions to the same problem. For example, coding a page object with a data map and without a data map. He consistently delivers high-quality content which I have used to improve my skills as a Test Automation Specialist. He writes blog posts that cover a bunch of useful topics related to Selenium WebDriver. For example:

Most Exhaustive WebDriver Locators Cheat Sheet
A blog series on development design patterns
Fluent API in Selenium tests
Deep coverage of a variety of topics related to Selenium WebDriver
Compelling Sundays  is a collection of his favorite posts

8) Beaufort Fairmont

Test Automation

I first saw Paul Merrill through a presentation at Automation Guild 2017. The information that he presented was relevant and insightful. Since then, I have been reading his blog.

His work has a deep focus on how to do test automation well. Merrill provides excellent strategies to speed up test automation and deliver higher quality results, which is something we all want when using Selenium. He also regularly provides high quality webinars that are full of excellent information. Some of my favorite posts include:

5 Ways to Simplify Your Automated Test Cases
Test Automation ROI: 5 Ways to Show the Business Benefits
What’s an API and How Do I Test It?

9) Eviltester.com

Testing | Automation | Java

I’ve known about Alan Richardson for at least five years now. He is a phenomenal resource when it comes to test automation. For example, he wrote the book Java For Testers: Learn the Fundamentals Fast and the book Selenium Simplified.

As with most excellent resources, this blog doesn’t only focus on a single tool. He covers a broad range of topics related to test automation. However, there is no doubt that his resources will help you to drastically improve your WebDriver skills. Here are a couple of my favorite resources:

A diagram that helps you to understand how to abstract out your test automation classes to make them easier to use and navigate.
A post all about Javascript and where to learn it for test automation.
Where to learn Selenium from Alan’s point of view.

Virtual Conferences

Image result for virtual conferences

1) Automation Guild

Test Automation

This is by far the best online conference I have ever attended. All other online conferences are deeply disappointing when compared to the Automation Guild. It is extremely focused and convenient. A small sample of all the talks there include:

If You Want To Automation, You Learn to Code
Using Page Object Pattern to Dramatically Stabilize Your Automation
How to Grade Your Selenium Tests
Screenplay Pattern with Serenity BDD

2) StarWest Virtual Conference

Free | Test Automation | Software Testing

This is another option for an online conference that can have some benefit for you. Honestly, 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. And it is free.


Webinars / Videos

webinar

1) Selenim Conf

Selenium WebDriver

This playlist is pure joy. It has over 30 videos about test automation and Selenium. All free. You need to watch all of these and learn:

Building Trust in Your In Your Continuous Integration Tests
Docker Selenium – Getting Started

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) Flaky Tests in Continuous Integration

Flaky Tests | Test Automation

Do you know how to determine flaky tests? What makes a test flaky? In this GTAC video, Google reveals how they analyzed hundreds of thousands of tests to determine flakiness. They discovered that the more edges a test has, the more likely it is to be a flake. And so much more. A must watch.

5) “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.

6) 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.

7) “Building an Automation Framework That Scales”

Test Automation | Scalability

This is a great webinar from Telerik by Peter Kim that goes into depth about how to build a test automation framework that scales. He teaches a really 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

slides_presentations

1) Page Objects in Test Automation

Test Automation | Page Objects | Selenium Webdriver | Best Practices

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) Key Test Automation Skills and Best Practices – Recap of Top Sessions from Automation Guild Conf 2017

Test Automation | Functional Testing | Frameworks | Visual Validation

Joe Colantonio goes over some general ideas for test automation including:

How testing vendors are embracing open source
How to grade your Selenium Tests
PageObjects vs Screenplay pattern
Is BDD just for Collaboration?
TestOps – how automation fits into CI

3) Test Automation Trends for 2016 and Beyond

Test Automation | Trends | Frameworks | Languages

Joe Colantonio talks about the latest trends in the IT industry so that you can make better decisions for your career. Topics include which test automation tools are growing, what programming languages you should learn, what 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.

4) 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.

5) 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

tear down

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

They are some of the best that I have found over my 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.

Pin It on Pinterest

Shares
Share This