8 Books To Improve Your Test Automation Skills
Many years ago, someone called me a guru at using QuickTest Professional (QTP) for functional test automation, because I knew how to do everything with that tool. Which was ironic, because as a “guru” of QTP, I was able to maintain only 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 for enhancing your test automation arsenal.
Below is a list of the most impactful books that I have read to improve my test automation skills.
1) Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
Martin conveys a ton of coding best practices that anyone writing code should implement, even automation engineers.
Some of the topics 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
- Capture replay is not test automation
- How to build maintainable tests
- Metrics
3) Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman and Elisabeth Robson
Yes, I was a QTP guru according to some, but I was not a great test automation engineer. This book helped me to avoid 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 and Best Practices by Dima Kovalenko
- Hermetic design pattern
- Page object pattern
- Spaghetti antipattern
- And much more
5) Experiences of Test Automation: Case Studies of Software Test Automation by Dorothy Graham and Mark Fewster
You will learn some valuable techniques, including:
- How to prioritize automation
- What to automate
- How to automate
- How to deal with management issues
- How to handle technical issues
- How to automate databases
- How to perform regression testing in production
- How to automate the testing of complex government systems
6) Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory
- How to overcome barriers to test automation
- Where testers and quality assurance managers fit on an Agile team
- 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
7) Refactoring: Improving the Design of Existing Code by Martin Fowler and Kent Beck
Now most of us may never work for Google developing Google Chrome, but we should have the capability to understand and write good code. More specifically, we should be capable of designing 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 about:
- Bad smells in code
- The importance of refactoring
- Organizing data
- Making methods simpler
8) The Selenium Guidebook by Dave Haeffner
This is an excellent resource that is purely focused on teaching you Selenium WebDriver. Haeffner goes through all of the pain points of working with Selenium and covers them one by one.
Some topics that you will learn about are:
- Getting started with the program
- Finding and verifying locators
- Your first test
- Writing maintainable tests with page objects
- Writing super maintainable tests with a base page object
If you want to truly master test automation, you must read. Each book you read will help you to achieve your automation testing goals. Every piece of knowledge will help you to stand out among the competition.
When you are searching for a job, you can be selective, rather than wait for an employer to select you. There’s true power in improving your test automation skills through reading books.