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. I was a tool guru, not an automation guru.
Today, I am capable of coding a production ready, functional GUI test in under 30 minutes with a guarantee of 99.5 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.
[bctt tweet=”Here is a list of some excellent books to help improve your test automation skills. #automation #testing #qa” username=”Nikolay_A00″]
Author: Robert C. Martin
Topics Learned: Names and functions, objects, data structures, error handling, unit testing
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, and
– Write unit tests
Authors: Mark Fewster and Dorothy Graham
Topics Learned: Automation testing principles and techniques, metrics
I recently reopened it to help me with a presentation and then I realized that this book is pure gold. Even though it was written in 1999, so much of it still applies. By reading this book, you will gain 30 years of test automation experience, seriously. To this day, I see people repeating all the mistakes that are listed in Software Test Automation. Some things you will learn are:
– Capture replay is not test automation
– Building maintainable tests
Authors: Eric Freeman and Elisabeth Robson
Topics Learned: Factory pattern, strategy pattern, object-oriented design principles
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.”
Author: Dima Kovalenko
Topics Learned: Automation design patterns
Selenium Design Patterns by Dima is one of the excellent software testing books 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
Authors: Dorothy Graham and Mark Fewster
Topics Learned: Test automation techniques and issues, database automation, regression testing
This is an excellent resource for test automation. Dorothy and Mark have a lot of experience and 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 for 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.
Authors: Lisa Crispin and Janet Gregory
Topics Learned: Test automation techniques, agile development
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 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
– Complete testing activities in short iterations
– How to use tests to successfully guide development
7) Refactoring: Improving the Design of Existing Code by Martin Fowler and Kent Beck
Authors: Martin Fowler and Kent Beck
Topics Learned: Refactoring, organizing data
I don’t care what anyone says. A good Test Automation Engineer is a good programmer.
Now most of us may never work for Google developing Google Chrome, but we should have the capability to understand and write good code good code. More specifically, we should have the capability to design a maintainable, robust, and flexible test automation framework. Refactoring is the key to creating a flexible system.
The problem is that most Test Automation Engineers spend the majority of their time creating new automated functional tests while their old code rots. After a year of development, their automation grinds to a halt. In this book, you will learn:
– Bad smells in code
– The importance of refactoring
– Organizing data
– Making methods simpler
Author: Dave Haeffner
Topics Learned: Selenium Webdriver, Page Objects
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 Really Maintainable Tests with a Base Page Object
Author: Aslak Hellesoy, Matt Wynne, Steve Tooke
Topics Learned: Cucumber, BDD
I am privileged to work with dozens of clients in test automation from all over the world every single year. This implies that I get a vast experience of the most common problems that people face in test automation. I literally talk to hundreds of automation engineers.
One pattern that I regularly see is that most of us struggle with BDD. We don’t actually use it as a methodology, but instead as a testing tool, which isn’t correct. This book will show you all the challenges and how to overcome them. Written by the creator of Cucumber, you will learn:
– How to create a Cucumber feature
– Gherkin basics
– When Cucumbers go bad (important section!)
– Some working code that uses Cucumber
Author: Many authors
Topics Learned: Continuous testing, continuous delivery, mobile automation, web automation
This is one of the richest books on practical test automation tips that I have ever read. It takes an amazing approach because it combines the knowledge from at least 15 different industry experts…
Into a single book.
There are so many great topics discussed in detail with technical data. Some include:
- Orchestrating quality across DevOps pipelines
- testing everything day to day
- Avoiding the big bang in your DevOps pipeline
- Overcoming challenges of React Native apps
Yes, there are definitely more books out there that I need to read. The list is huge. These are the ones that made the list this time. But I will grow this list as I find even more useful resources for you.
Are there other books that you think I should read and review? Let me know in the comments below.