23 Books for Quality Assurance Professionals
By: Blake Norrish
Tags: Book Recommendations, Software Testing, Software Development, Quality Assurance

The Unicorn Project by Gene Kim

Recommended by Yana Yantselovska

The Unicorn Project is one the most enjoyable books I’ve ever read on software development. In this novel, we follow developer Maxine who has transferred to a project critical for the survival of her employer, Parts Unlimited. Competitors are stepping on the company’s toes, and in order to stay afloat, company processes need to change.

After running into many challenges as an individual contributor, Maxine acts as a catalyst and organizes a team of talented and enthusiastic developers, QAs and operations. Together they try to save the project by implementing software development best practices. On their mission, The Unicorn Project team has to overcome many obstacles — politics, lack of documentation, chaotic processes, absence of test automation, lack of transparency, shifting priorities…sounds familiar, huh?

The Unicorn Project is so real-lifey — I just could not stop until I had read it from cover to cover in just a couple days! Some challenges described I could relate from my own professional experience in the past, and some scenarios made me appreciate the processes in my current company even more.

I strongly recommend this book to anyone involved in IT. The Unicorn Project is fun to read and provides a great perspective on readers’ own environments.

xUnit Test Patterns by Gerard Meszaros

Recommended by Doug Bowen and Jeff Balsley

Doug: This is a detailed technical approach to designing automated tests. It breaks down 4-phase test design (Setup, Exercise, Verification, Teardown) and dives into detailing fixture tracking, maintenance, and manipulation. It utilizes detailed graphs for various test design patterns and the dos and don’ts of automation (chaining tests, persistent environments, etc.) It taught me almost everything I know but it should really be utilized as a reference. “I have this problem, can Gerard solve it?”

Jeff: Don’t let the title and code examples fool you (all in Java and xUnit), this book is more than just sample code. It’s an exhaustive collection of test patterns for designing tests and test suites. It should reside on every engineer’s bookshelf. The author divides the book into three sections. The first part discusses test strategy and isn’t necessarily xUnit specific. It covers suite organization, mocking, etc. The second part of the book covers test “smells”, and the final and largest section are the numerous test patterns. Consider this final chapter the GoF for test patterns.

My favorite part of the book is part II, the chapter on test “smells.” The author looks at common code, behavior, and design problems of test cases and test suites, names the smell, and offers insight into the cause. Reading through this section is insightful to all experienced Quality Engineers as well as guidance for inexperienced newbies. Common problems like tightly coupled code, code duplication, and both fragile and slow tests are discussed here along with countless other “smells”.

Note: Free online version of xUnit Test Patterns can be found at: http://xunitpatterns.com/gerardmeszaros.html

Scrum: The Art of Doing Twice the Work in Half the Time by Jeff & JJ Sutherland

Recommended by Tom Taylor

Software (and software quality) is a team-based sport, and most teams use Scrum. This book is a highly understandable explanation of the theory and behavioral science of Scrum. It’s a fascinating read, leveraging many examples of Scrum-based processes that are outside of the software development space. This is not a manual for what a QE should say in a daily stand-up, or how to account for testing costs in a planning poker session, but it will provide every quality engineer with a greater understanding and insights into the value that these activities provide. I walked away from this book with an increased level of confidence around what makes some practices good, and others not good, and I continue to leverage these insights when working with new teams or new team members.

Highly recommended.

Crucial Conversations by Kerry Patterson, Joseph Grenny, Ron McMillian, and Al Switzler

Recommended by Ariel Giacomasso

As Quality Engineers every day we need to advocate for reliable, stable, usable, and well-designed and architected software. Getting familiar with testing strategies, automation frameworks and the latest tools requires some time sitting in a chair, reading a technical book, or watching YouTube videos. That’s relatively easy, it’s just time consuming.

But there is one aspect of our job, the key element of a QE, which is wearing a chip on your shoulder at all times, remaining curious, being able to speak up when you feel the quality of the software is not up to the standards needed or it does not fully solve our clients’ problems. As part of this, we are often involved in crucial conversations.

Crucial Conversations illuminates 3 key components: high stakes, differing views, and strong emotions. They may not always involve big issues, but their outcomes can affect the quality of the projects and the software products we develop.

Sound familiar? What we have every day as Quality Engineers are Crucial Conversations.

This book tackles one of the most difficult subjects in human relationships: How to navigate difficult conversations when opinions are at opposite ends, parties involved have strong feelings, and when emotions are charged.

Filled with insights and strategies, I have had to read this book four times and have marked up most of the pages with notes highlighting several lines that later I found very useful in my career.

Some ways you don’t succeed in a crucial conversation:

Allowing your emotion to dictate your dialogue. Specifically, an emotional need to “win” or be “right.” Believe the answer is the “fool’s choice” of a yes/no, right/left solution.

Ringing any bells? We have all witnessed how official “my way or the highway” belief in the software development discussions help downtick software quality .

The authors of the book did a lot of studies discovering how people who are skilled at dialoguing during crucial conversations go about them.

Start with the heart, otherwise known as the self, by knowing what they want. They avoid the fool’s choice of the either/or solutions and look for the “and.” They are smart enough to clarify and know what they don’t want They ask their brain to try and solve the harder problem — which means the “and” one, not the gut response one They note what their behavior says, so that their body language/actions are in congruence with their words, thus lending believability to their words.

Explore It! by Elisabeth Hendrickson

Recommendation by Jake Kline

Elizabeth Hendrickson’s masterclass in exploratory testing could use a deep rewind every few years. It wasn’t until I read Explore It! that I realized other luminaries in the industry had either cribbed choice bits from Hendrickson or anthologized chapters outright (see Lisa Crispin’s Agile Testing duology for an excellent example of the latter.) What makes Explore It! so fascinating is that it both offers pragmatic techniques for testing software in Agile environments under often hostile delivery conditions AND completely shatters the myth that exploratory testing is some byzantine activity conducted by reclusive entities whose sole aims are to blow project budgets. It basically says this on the front cover (“Reduce Risk and Increase confidence…!”) The cleverest trick Hendrickson pulls is to subtly flip the test pyramid on its head without sending our ilk into a tailspin over how to spend our time and complexity bucks delivering quality products. Get your inner Uncharted going with Explore It! and become a true adventurer in quality.

On Grand Strategy by John Lewis Gaddis

Recommendation by Jake Kline

Someone once told me that a life in testing could be seen as a life spent strategically thinking about how to say goodbye effectively. In my early years I would often quote this phrase to others without thinking about it much. It wasn’t until I read John Lewis Gaddis’ masterwork, On Grand Strategy, that I started to truly consider the words of my wizened friend and how they impacted my approach to quality engineering. Questions about thoroughness, attention to detail, mastery of one thing versus competence broadly are all explored here. As a consultant and a tester, the historical anecdotes and the overarchingly nuanced worldview have proven invaluable when delivering outcomes. Software is a messy business and John Lewis Gaddis’ clear writing not only implies what good (test) strategy should be but how one may still take the long view of life and work while remaining in the moment. See you around, friends.

Lessons Learned in Software Testing by Cem Kaner, James Bach, and Bret Pettichord

Recommended by Omar Galeano

When we talk about what makes a great Quality Engineer, it’s natural to think of automating test cases, or being skilled with UI testing tools for every occasion. Or maybe it’s about proficiency in equivalence partitioning and boundary value analysis.

These are all part of it, of course. But often what makes a QE professional indispensable to their organization, separating the best from the rest, is something else. It’s forged through years of victories and defeats, trial and error, and pushing the limits of conventional thinking. It’s the tester’s mindset.

Beginning my career anew in QE many years ago, I was fortunate to happen upon Pettichord, Kaner, and Bach’s Lessons Learned in Software Testing on my first day. Flipping to the first lesson I read in bold text “You are the headlights of the organization” and was intrigued. As I proceeded through all the 293 lessons, each short enough to be read in a matter of minutes, I developed the lens through which I would approach many a testing challenge.

In this book you’ll learn helpful practicals of testing, strategy, automated testing, test management, and more. But I believe the biggest takeaway will be learning how to think better like a tester.

Thinking, Fast and Slow by Daniel Kahneman

Recommended by James Reeves and Nisha Banur

James: For as much technical prowess as quality engineering demands, there is an equal if not greater need for the philosophical. On the surface Thinking, Fast and Slow is written by a Nobel prize winning economist covering his lifetime of research across various spectrums of economic and social experiments. Just under the surface lies the reason behind the book’s title, speaking to the two styles of thinking that every human brain is subject to — an immediate response and a prolonged thoughtful response.

One personal highlight is the section on cognitive ease which covers leveraging “truth illusions” to write persuasive messages to help others understand something. As Quality Engineers we find ourselves regularly taking technically complex information around reports, patterns, etc. and morphing them into something everyone can understand and pull value from. Beyond the psychological, Kahneman spends a considerable amount of time discussing a personal favorite of the discipline: risk. Another highlight is the section covering the fourfold pattern, which combines the certainty effect and possibility effect to demonstrate how humans apply weight to a probability percent of risk. They discovered that people are almost completely insensitive to variations of risk among small probabilities and they are also likely to consider a 98% chance that something occurs to be more important than something that has a 95% chance of occurring, even if the probability says otherwise.

The entire book is a fun read packed with all kinds of nuances for any Quality Engineer! Highly recommended.

Nisha: We are prone to exaggerate how well a human understands the world; if not trained, we only fool ourselves and err when thinking. In Thinking, Fast and Slow, Daniel Kahneman says, “Intelligence is not only the ability to reason; it is also the ability to find relevant material in memory and to deploy attention when needed.” In this wildly entertaining, interactive, and self-help psychological book, the Nobel Laureate Kahneman with his partner Amos Tversky explores how two systems in our brain approach how we think.

System 1 is fast, intuitive, emotional, and can’t be switched off; System 2 is slower, more deliberative, logical, and accepts what system 1 orders it. Because of the nature of system 1, it assumes WYSIATI (what you see is all there is) and jumps to the conclusion causing the halo effect, anchoring effect, and other illusions. Our self-ignorance influences the surroundings, which is beyond systems 1 and 2. We are cynically vulnerable to the focusing illusion, which is “Nothing in life is as important as you think it is when you’re thinking about it.” We are better equipped to use each system for different tasks in a day, and practicing it enhances the performance and curtails inaccuracy in thinking

Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce

Recommended by Adam Tapper

The goal of software development is building systems that fulfill a need while being performant, secure, and maintainable. As Quality Engineers, our job is to ensure that goal has been met using various tools and methodologies. Test driven development is a methodology that is often brought up when discussing how to accomplish this goal, but it is often quickly dismissed as not practical and too time consuming. This book flips that notion on its head by taking you through building an application from the ground up and teaching test driven development not as a practice you implement to test your code but as a way of thinking about growing software. Beginning by identifying a granular goal that is clearly articulated in words as a test name leads to code that is minimal in complexity thus reducing side effects and maintenance costs while increasing reliability. You won’t look at development that same again after this book!

The Famous Five (series) by Enid Blyton

Recommended by Nandini Basu

Whenever I am posed the question “How did I get here?” I walk down the memory lane, and every time the breadcrumb trail reveals a fascinating story. Being asked for my most influential QE book took me all the way back to my childhood years when I wanted to be a detective and a magician. My favorite bedtime ritual was reading a detective book, and started with Famous Five. My dad picked them up from a neighborhood library. When I graduated to Sherlock Holmes, my mind was blown by the power of observation, pursuit of logic, and magic of deduction. The other brilliant detective that shaped my curious mind is Feluda, a household Bengali name. I used to aim to be on time everywhere just to imitate him. While the mysteries got more intense the basic questions required to solve them remained the same. What, When, How, or Why? Yesterday I was stumped by a similar question — How did we get the bad data? Computer science is nothing short of magic if you trace the path from the days of a hand delivered letter to instant video chat. In my world, QE is the next best thing to being a detective or a magician. Asking the right questions, looking for the hidden bug and tracking down the root cause. I owe it to my detective books.

Bug Advocacy by Cem Kaner and Rebecca L. Fiedler

Recommended by Minh Tri Nguyen

This is the book recommended by one of my seniors when I started my career in QA, and this is still my on-reading book. The book demonstrates different ways to handle common scenarios such as dealing with irreproducible defects, how to make a clear bug report to support development, and how a QA can provide influence and credibility to a project. The book still acts as a guide for me in my current work to hone my QE ownership for a project. I particularly like the book even if it sounds like its for beginners, the core quality fundamentals I learned from the book will still be applied on every project regardless of how technological and modernized it is.

The First 20 Hours by Josh Kaufman

Recommended by Minh Tri Nguyen

This is the book I finished reading months ago, it provides a very good alternative method for the 10,000 hours rule. The book emphasizes how crucial it is to dedicate and stay focused on the first 20 hours (which is equivalent to learning 45 minutes per day continuously for a month) when we start learning something new, the learning outcome is significantly high during this time. After the first 20 hours, the knowledge we absorb will be slowed down notably and we won’t be learning as fast as our first 20 hours. In my case, I applied the method for my very first MS: Azure Fundamentals certificate. As a young QE, cloud concepts are relatively new and somehow complex to me, by intensely committing to one after-work hour every day for 20 days, I was able to nail the exam on the first try with good score. I believe all QEs can benefit from this learning method on any new technological testing knowledge that we love to learn.

Verbal Judo; The Gentle Art of Persuasion by George J. Thompson and Jerry B. Jenkins

Recommended by Jeff Claudon

Verbal Judo is a book about how to prevent situations from turning ugly—or defusing them if they already have—all while allowing everyone to “save face.” Verbal Judo not only gives you the techniques, it also gives you real-life practical application examples of the techniques being used. I have used some of the techniques it describes in both my personal and professional life with great success, many of them are almost automatic now.

I have read this book 4 times now and will probably read it many more times to come.

Exploratory Software Testing by James A. Whittaker

Recommended by Christin Wiedemann

This is one of those books I usually have close at hand, and keep coming back to, looking up specific things and re-reading certain sections. It is a great introduction to structured and focused exploratory testing, and definitely recommended reading for anyone starting their career in software testing. It also provides an excellent overview of tour-based testing, including a discussion on how to plan and manage testing with tours, and how tours fit into sprint work. It is very well structured, with short and easy-to-read sections, and you can start anywhere, reading the sections in the order you prefer. One of the highlights of the book is Appendix A: “Building a Successful Career in Testing” that packs a lot of insights and good suggestions into just a few short pages. My favourite sentence of the whole book appears there, “Never do anything twice without realizing it and questioning it.”

Agile Testing and More Agile Testing by Lisa Crispin and Janet Gregory

Recommended by Christin Wiedemann

Lisa Crispin and Janet Gregory are two people I consider role models; I have learnt a lot from their generous sharing of experience and insights, and continue to learn from them thanks to their continuous contributions to our community.

In the two books Agile Testing and More Agile Testing they provide essential quality assurance fundamentals in an Agile context. The books are very well structured, and the inclusion of experience stories makes them easy to read. I use the books as reference literature to gets tips and ideas, and to look things up. Whether you’re looking to hone your general quality engineering skills, or learn more about specific things like acceptance-test driven development (ATDD), test charters, or how to slice stories, you should check these books out.

API Testing and Development with Postman by Dave Westerveld

Recommended by Young Kim

This book covers APIs in general but with a focus on how to test and develop them using Postman. I use Postman for API testing in day-to-day project tasks, but I seldom use every feature that it offers because either I don’t know how or how some of the features from Postman can benefit me in day-to-day testing.

I gained a lot of knowledge from reading and following along with this book. I incorporated some of the concepts I learned into my projects.

The book covers basic items like how to call an API from online/offline resources, how to use Postman to document your API, what to test in an API, how data-driven/contract testing/mock server in testing works and discusses what a good API design looks like.

I highly recommend it for all levels of users.

The Four Agreements by Don Miguel Ruiz

Recommended by Rebecca Taylor

The Four Agreements explains four simple-but-not-easy life philosophies from Toltec society — and I’ve found it surprisingly relevant in my career as a quality professional.

The Third Agreement, Don’t Make Assumptions, is at surface level almost too easily applied to software testing. Quality Engineers learn not to assume that software will perform as expected, instead digging into how functionality can (and likely will!) go wrong.

But this principle also applies to how we work in Agile teams. Instead of making an assumption about why a teammate changed my code or spoke brusquely in daily standup, I ask questions to understand. Maybe I’m missing a technical concept or maybe that person is overwhelmed balancing the needs of kids, cats, and work during a global pandemic. Perceived conflict may in fact present an opportunity to learn and grow, or perhaps offer support and compassion.

As the author states, “The way to keep yourself from making assumptions is to ask questions. Make sure the communication is clear. If you don’t understand, ask.” Asking questions brings out the best in our code, and in our teams. A great question to ask: “What else can I learn from reading the rest of the book?”

Who Moved my Cheese? by Spencer Johnson

Recommended by Ghadeer Haddad

I highly recommend the book Who moved my cheese? By Spencer Johnson, M.D.

It’s an enlightening short story of four characters who live in a “maze” and look for “cheese” to nourish them and make them happy. This book helped me significantly in the early days of my career as a QE, as it’s all about change and how to deal with it.

For the author the “cheese” is a metaphor for what you want to have in life, However, for me, the “cheese” is a metaphor for the bugs/faults that I am looking for in the “maze” which can be any software product, application, or a piece of code.

As a QE, following one of the basic principles of software testing which is “test early, test often,” I can find great lessons and techniques in this book on change that can help me anticipate, monitor, and adapt to very quickly.

Working in a fast-paced Agile environment as a QE I need to pivot sometimes to adapt to the change in the software or when having a new feature that I need to learn about very quickly and get ready to test, while I was totally planning to test another functionality!

In this book you can find inspiring lessons to help you deal with unexpected change either in your personal or professional life, happy reading!

The Essential Deming by Joyce Nilsson Orsini

Recommended by Dave Gabrielson

I read this a few years back and I’ve read other stuff from Deming way, way back but this one is a great collection of articles that capture some fundamental concepts I think anyone in a quality role should be exposed to. Deming, as many people know, is often considered the Father of Quality, due to the role he played in the rise of Japanese industry after World War II. His ideas transformed management throughout the world and brought a focus on, and a way of thinking about, quality never before seen. While his focus was primarily on manufacturing, many of his principles apply very much to software product engineering and his ideas relate to general leadership and management as well.

Here are just a few concepts in this book that I found particularly interesting and that I think can help some of our quality professionals who are hoping to one day move into leadership roles, whether within the quality domain or not, be better leaders and maintain a focus on quality throughout the organizations they lead:

The idea that top management is critical to affecting quality as they are the only ones who can make the decisions necessary to assure it.

The theory of knowledge, the criticality of obtaining knowledge to make proper decisions, and the idea that mere information is not knowledge.

The importance of having a statistical mindset and various methods for applying statistics which for me directly relate to our jobs as testers.

Happy reading.

The Art of Application Performance Testing by Ian Molyneaux

Recommended by Prabhat Singh

This book is a great introduction to the subject of application performance testing in an easy to read format. The book begins with describing the key concepts of performance testing and measurement that everyone should know about. It enumerates different testing categories under the performance and load testing umbrella. It covers in detail how to prepare for different types of testing. The book does not go into specific tools that can be used for performance testing, but provides guidelines on planning, executing, and interpreting results of such testing. It goes into the details of common pitfalls, the strategy, and the process for performance testing. It helps you define the Key Performance Indicators(KPI) for different performance requirements and ways to measure them.

I bought this book after I was assigned the role of a performance tester without having any prior experience. The book helped me quickly familiarize with the subject and get started. I find this book very useful and I have shared it with several people who were interested in this subject.

The Culture Code by Daniel Coyle

Recommended by Richard Hand

Culture is of the utmost importance. Its significance is proven by the frequency of questions regarding culture by potential employees. “What kind of culture do you have?” “How would you describe your culture?” Interviewees try to imagine themselves within that environment and display desire for a culture that is healthy, safe, and supportive. A strong culture contributes to an increase in overall personal happiness. Hardly anyone can describe culture in a few words or share the elements that make up their ideal culture, but they can tell you if it is something they are happy to be a part of.

The Culture Code is a quick read that does not try to describe the ‘perfect’ culture, rather it narrates the essential attributes of a desirable culture. My favorite parts of this book were the wide range of real-life examples of leadership building the kind of cultures we want. These examples span across business industries, academics, militaries, and sports. I found myself relating to them, especially in different teams on a base level. The best part of reading the book is that I am now able to see how I can achieve these results for my own team. I have tried it, and it works!

On Writing Well by William Zinsser

Recommended by Blake Norrish

When we think about software development, we usually think about coding, building tools and automation, executing tests, etc. We forget that much of what we do will be simply writing — defect reports, implementation documentation, e-mails trying to convince our team that tabs are superior to spaces, etc. The success of this writing, whatever the intention, will largely be dependent on your skill as a writer. Regardless of your technical wizardry, effective writing is still critical for your long term-success, and will differentiate you from equally talented peers.

This short book is the best primer I have found on what effective writing looks like. It is not a grammar textbook, it is an easily readable summary on how you should think about and approach nonfiction writing. Anyone in any role within software development would do well to read (and reread) this book.