Fans pick 78 books like Test Driven Development

By Kent Beck,

Here are 78 books that Test Driven Development fans have personally recommended if you like Test Driven Development. Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.

When you buy books, we may earn a commission that helps keep our lights on (or join the rebellion as a member).

Book cover of Growing Object-Oriented Software, Guided by Tests

Jan Van Ryswyck Author Of Writing Maintainable Unit Tests: Mastering the Art of Loosely Coupled Unit Tests

From my list on starting your software developer journey.

Why am I passionate about this?

I’m a professional software developer for more than 22 years now. I’ve used many programming languages, platforms, frameworks, etc. throughout my career. However, the only constant for me personally was the practice of Test-Driven Development. I’ve never stopped learning about the principles and practices behind it, and it paid huge dividends throughout my career. I’m very humbled and grateful to be able to learn from all those amazing people over the years, that I decided to write a book on the topic. Giving back some of the knowledge that I gathered about TDD throughout 18+ years. 

Jan's book list on starting your software developer journey

Jan Van Ryswyck Why did Jan love this book?

I must admit that the first time I read this book, it completely didn’t resonate with me. Sure, I picked up a couple of very important concepts here and there. One of those concepts is the “Test Data Builder”. However, some of the techniques I completely rejected. It took me a couple of years to start opening up to the practices described in this book. After a second read, I came to the conclusion that this excellent work deserved more credit. That’s why I added it to this list. This book shaped my entire thinking around Outside-In TDD, which is a very important approach to guiding well-designed software systems.     

By Steve Freeman, Nat Pryce,

Why should I read it?

1 author picked Growing Object-Oriented Software, Guided by Tests as one of their favorite books, and they share why you should read it.

What is this book about?

Foreword by Kent Beck

"The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows." --Ward Cunningham

"At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper." --Robert C. Martin

"If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers

Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your…


Book cover of Working Effectively with Unit Tests

Jan Van Ryswyck Author Of Writing Maintainable Unit Tests: Mastering the Art of Loosely Coupled Unit Tests

From my list on starting your software developer journey.

Why am I passionate about this?

I’m a professional software developer for more than 22 years now. I’ve used many programming languages, platforms, frameworks, etc. throughout my career. However, the only constant for me personally was the practice of Test-Driven Development. I’ve never stopped learning about the principles and practices behind it, and it paid huge dividends throughout my career. I’m very humbled and grateful to be able to learn from all those amazing people over the years, that I decided to write a book on the topic. Giving back some of the knowledge that I gathered about TDD throughout 18+ years. 

Jan's book list on starting your software developer journey

Jan Van Ryswyck Why did Jan love this book?

I was quite late in picking up this book after it got published in 2014. Turned out that this mistake was all mine. Although the book is very opinionated, this masterpiece is filled with many nuggets of wisdom when it comes to writing highly maintainable unit tests. There are lots of code examples to be found as well. The ideal book to read after Test-Driven Development By Example and Growing Object-Oriented Software, Guided By Tests.

By Jay Fields,

Why should I read it?

1 author picked Working Effectively with Unit Tests as one of their favorite books, and they share why you should read it.

What is this book about?

This book details Jay Fields' strong opinions on the best way to test, while acknowledging alternative styles and various contexts in which tests are written. Whether you prefer Jay Fields' style or not, this book will help you write better Unit Tests.

From the Preface:

Over a dozen years ago I read Refactoring for the first time; it immediately became my bible. While Refactoring isn’t about testing, it explicitly states: If you want to refactor, the essential precondition is having solid tests. At that time, if Refactoring deemed it necessary, I unquestionably complied. That was the beginning of my quest…


Book cover of Agile Technical Practices Distilled: A learning journey in technical practices and principles of software design

Jan Van Ryswyck Author Of Writing Maintainable Unit Tests: Mastering the Art of Loosely Coupled Unit Tests

From my list on starting your software developer journey.

Why am I passionate about this?

I’m a professional software developer for more than 22 years now. I’ve used many programming languages, platforms, frameworks, etc. throughout my career. However, the only constant for me personally was the practice of Test-Driven Development. I’ve never stopped learning about the principles and practices behind it, and it paid huge dividends throughout my career. I’m very humbled and grateful to be able to learn from all those amazing people over the years, that I decided to write a book on the topic. Giving back some of the knowledge that I gathered about TDD throughout 18+ years. 

Jan's book list on starting your software developer journey

Jan Van Ryswyck Why did Jan love this book?

This is the most recent book I'm recommending, and it’s also more than just a book on Test-Driven Development. I often proclaim that Test-Driven Development and software design are two sides of the same coin. One cannot separate one from the other. So learning about Test-Driven Development also means that one has to learn about software design principles. This book teaches both. The first part of the book is all about Test-Driven Development, while the remainder of the book also touches on object calisthenics, refactoring, code smells, design patterns, the S.O.L.I.D. principles, connascence, the four elements of simple design, and much more. Whether you’re new to programming software, or whether you’re a seasoned developer, there’s much to learn from this book.      

By Pedro M. Santos, Marco Consolaro, Alessandro Di Gioia

Why should I read it?

1 author picked Agile Technical Practices Distilled as one of their favorite books, and they share why you should read it.

What is this book about?

Delve deep into the various technical practices, principles, and values of Agile.

Key Features Discover the essence of Agile software development and the key principles of software design Explore the fundamental practices of Agile working, including test-driven development (TDD), refactoring, pair programming, and continuous integration Learn and apply the four elements of simple designBook Description

The number of popular technical practices has grown exponentially in the last few years. Learning the common fundamental software development practices can help you become a better programmer. This book uses the term Agile as a wide umbrella and covers Agile principles and practices, as…


Book cover of xUnit Test Patterns: Refactoring Test Code

Jan Van Ryswyck Author Of Writing Maintainable Unit Tests: Mastering the Art of Loosely Coupled Unit Tests

From my list on starting your software developer journey.

Why am I passionate about this?

I’m a professional software developer for more than 22 years now. I’ve used many programming languages, platforms, frameworks, etc. throughout my career. However, the only constant for me personally was the practice of Test-Driven Development. I’ve never stopped learning about the principles and practices behind it, and it paid huge dividends throughout my career. I’m very humbled and grateful to be able to learn from all those amazing people over the years, that I decided to write a book on the topic. Giving back some of the knowledge that I gathered about TDD throughout 18+ years. 

Jan's book list on starting your software developer journey

Jan Van Ryswyck Why did Jan love this book?

This is the most complete and exhaustive reference book when it comes to test automation. It’s a massive book that’s got pretty much all bases covered: test patterns, test strategies, test smells, test practices, etc. … It’s all there. If you want to get a feel about what’s covered, check out the xUnit Test Patterns website. This book provides all the information to become an expert at all kinds of automated tests. It requires a lot of effort to process the content, but it’s definitely all worth it!

By Gerard Meszaros,

Why should I read it?

1 author picked xUnit Test Patterns as one of their favorite books, and they share why you should read it.

What is this book about?

Software testing has received renewed attention with the widespread adoption of Extreme Programming and other agile methodologies. While testing does not directly improve the quality of software, the under-appreciated practice provides a timely and accurate measurement (a reality check) so that the reader knows whether any new action needs to be taken. Automated software testing is used to ensure that once the software works, it is not accidentally broken during subsequent software development or maintenance activities. This book describes patterns for writing automated tests using the XUnit family (e.g., JUnit and NUnit) of test automation frameworks. The author uses the…


Book cover of Clean Code: A Handbook of Agile Software Craftsmanship

John Z. Sonmez Author Of Soft Skills: The Software Developer's Life Manual

From my list on fun for software developers.

Why am I passionate about this?

I love to expand my knowledge and learn not just about new technologies, but how things work. I find it fascinating to dig deep into computer programming, technology concepts, and really geek out on things. That’s why I love software development or programming books that aren’t just about some technology and how to do something, but rather books that really make you think and teach you not just programming skills but critical thinking about problem-solving skills. As a software developer for over 15 years and a person who teaches software developers, I have learned that if someone isn’t entertained, they aren’t learning. That’s why I put together a list of fun, entertaining and useful books.

John's book list on fun for software developers

John Z. Sonmez Why did John love this book?

I love writing good clean code. There is something refreshing about writing or reading code that reads more like a book than some obscure instructions to a machine. This book goes into the details of how to write “clean code” and what makes it clean.

I felt like I learned so much about writing good code from reading this book about things that you are never really taught in school or on the job as a software developer.

I found so much of the book so interesting because I could use what I was learning right away to become a better programmer.

If you want to become a better programmer and are looking for a book that will entertain you and be fun along the way, I highly recommend Clean Code.

By Robert Martin,

Why should I read it?

1 author picked Clean Code as one of their favorite books, and they share why you should read it.

What is this book about?

Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code "on the fly" into a book that will instill within you the values of a software craftsman and make you a…


Book cover of Microsoft Secrets: How the World's Most Powerful Software Company Creates Technology, Shapes Markets and Manages People

Michael K. Levine Author Of People Over Process: Leadership for Agility

From my list on if you want to lead great software delivery teams.

Why am I passionate about this?

I’ve been doing large-scale software development at great US businesses from the introduction of the PC to the cloud explosion. From my earliest successes (online banking at US Bank in 1985!) to my biggest failures (Wells Fargo “Core” disaster in 2006), I’ve always sought better ways of doing things. These five books all were important to my learning and remain highly relevant, and I hope you find them useful as well. 

Michael's book list on if you want to lead great software delivery teams

Michael K. Levine Why did Michael love this book?

This book helped me set my initial approach to software development and I still periodically return to it for grounding.

An MIT project theorized that new-fangled PC software developers knew something mainframe and mini-computer makers didn’t. MIT’s research revealed something else entirely: Microsoft had uniquely effective ideas on how to build complex products in rapidly evolving competitive markets. Here is “agile” before it was put into the Manifesto in 2001, in a more complete form. Ever wonder where the idea of a team comprising functional specialists with overlapping roles, united by a common goal, came from? Or incremental feature evolution with periodic synchronization and constant testing? Early brilliance still of foundational relevance, in a coherent and engaging form.

By Michael A. Cusumano, Richard W. Selby,

Why should I read it?

1 author picked Microsoft Secrets as one of their favorite books, and they share why you should read it.

What is this book about?

Drawing on observation, interviews, and confidential data, the authors reveal Microsoft's product development, marketing, and organizational strategies.


Book cover of Head First C#

Jesse Liberty Author Of .NET MAUI for C# Developers: Build cross-platform mobile and desktop applications

From my list on C# programming from a C# expert.

Why am I passionate about this?

I've been a C# programmer for 23 years, and am passionate about the language. It is the perfect balance of power and ease of use, and each year it is extended by its amazing development team. I've used C# to build stand-alone applications, mobile applications, APIs, and database applications and I've never felt constrained. Finally, C# lends itself to best practices and design patterns, and continues to rise in popularity, especially with professional software developers.

Jesse's book list on C# programming from a C# expert

Jesse Liberty Why did Jesse love this book?

This book brings a unique perspective to learning C#. It is fun, easy to digest, and yet comprehensive and a serious contribution to books on C#.

You may well want to make this the first book you read on the language, as it is very approachable and covers all the essentials. O'Reilly has perfected the Head First series, and this book is an exemplary addition.

By Andrew Stellman, Jennifer Greene,

Why should I read it?

1 author picked Head First C# as one of their favorite books, and they share why you should read it.

What is this book about?

Finally, there's a bright alternative to the legions of dull C# tutorials. "Head First C#" gives beginning programmers a way to learn Microsoft's popular object-oriented language without boring you with a pile of dry technical material. Through its visually rich format proven to stimulate both learning and retention, this unusual book takes you through C# fundamentals and how the language works to create user interfaces, databases, and more.You can forget about memorizing. "Head First C#" is strictly hands-on. From page one, you interact with the material through plenty of graphics, games, puzzles and more. Once you get the gist of…


Book cover of Software Architecture with C# 10 and .NET 6

Jesse Liberty Author Of Git for Programmers: Master Git for effective implementation of version control for your programming projects

From my list on for creating great software.

Why am I passionate about this?

I have been coding for over 30 years. I’ve seen some miserable interfaces, and some large programs that collapse under their own weight. Software was, at one point, notorious for being late, over budget, and unreliable. These books have helped turn the corner on these failings, and I have found each of them very valuable in my day-to-day programming. While you can learn technique and even languages online, the kind of insight found in these books is rare and worth spending time and money on.

Jesse's book list on for creating great software

Jesse Liberty Why did Jesse love this book?

The .Net world is changing fast, and this is a terrific book to help you keep up. This tome covers so many topics it is hard to list them all, but while it doesn’t go super-deep into any one topic it does provide enough of an overview to understand what the technology is and how you might put it to work.  Software Architecture with C# 10 and .NET 6 has helped me understand what exists and what is coming and to decide where to put my mental energy

By Gabriel Baptista, Francesco Abbruzzese,

Why should I read it?

1 author picked Software Architecture with C# 10 and .NET 6 as one of their favorite books, and they share why you should read it.

What is this book about?

Design scalable and high-performance enterprise applications using the latest features of C# 10 and .NET 6

Key Features Gain comprehensive software architecture knowledge and the skillset to create fully modular apps Solve scalability problems in web apps using enterprise architecture patterns Master new developments in front-end architecture and the application of AI for software architectsBook Description

Software architecture is the practice of implementing structures and systems that streamline the software development process and improve the quality of an app. This fully revised and expanded third edition, featuring the latest features of .NET 6 and C# 10, enables you to acquire…


Book cover of 97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts

Jeanne Boyarsky Author Of OCP Oracle Certified Professional Java SE 17 Developer Study Guide: Exam 1Z0-829

From my list on becoming a better Java developer.

Why am I passionate about this?

I’ve always enjoyed mentoring folks whether new or experienced in programming. Whether it is teaching an intern or a high school robotics student, or onboarding an experienced Java developer, it brings me joy to see people learn. I also love to read. Being able to recommend some of my favorite books can help even more people absorb all of this information.

Jeanne's book list on becoming a better Java developer

Jeanne Boyarsky Why did Jeanne love this book?

When trying to become a better Java developer, there is so much to learn.

97 Things covers, well 97, of them in a series of brief essays. What’s cool is that the essays were written by different people so you get lots of points of view on what is important. Topics range from language (comments, fat jars) to the ecosystem (benchmarking, frequent releases) to the language-agnostic (definition of done and breaking down problems.)

Note that two of these are mine. The book is thin at just over 200 pieces. And since each “thing” is short, it’s easy to read on the go.

By Kevlin Henney, Trisha Gee,

Why should I read it?

1 author picked 97 Things Every Java Programmer Should Know as one of their favorite books, and they share why you should read it.

What is this book about?

If you want to push your Java skills to the next level, this book provides expert advice from Java leaders and practitioners. You'll be encouraged to look at problems in new ways, take broader responsibility for your work, stretch yourself by learning new techniques, and become as good at the entire craft of development as you possibly can

Edited by Kevlin Henney and Trisha Gee, 97 Things Every Java Programmer Should Know reflects lifetimes of experience writing Java software and living with the process of software development. Great programmers share their collected wisdom to help you rethink Java practices, whether…


Book cover of Code Complete: A Practical Handbook of Software Construction

Rod Stephens Author Of Beginning Software Engineering

From my list on making you a better software developer.

Why am I passionate about this?

During my career, I’ve worked on projects large and small (1 - 60+ people) in a wide variety of fields (like repair dispatch, ticket sales, and professional football coaching--the NFL kind not the FIFA kind). All of them, and particularly the big ones, were like antique clocks: they had lots of moving pieces and if any piece broke, the whole thing wouldn’t work. (Unfortunately, failed software projects don’t look nice on your mantelpiece.) In this list, I’ve tried to pick some books that you might not discover if you look only for programming books. Read those, too, but don’t ignore the more human-oriented dimensions of software development. Hopefully you’ll find these choices interesting and useful.

Rod's book list on making you a better software developer

Rod Stephens Why did Rod love this book?

Software engineering involves several phases such as requirements gathering, design, programming, testing, and deployment.

This book explains techniques that allow you to build quality and robustness into every phase of the process. It discusses design, classes, defensive programming, collaboration, refactoring, and more.

The book uses many examples in an assortment of languages but the concepts apply to any programming language. In fact, the main themes like building error detection into every step of the process generalize to even non-programming parts of the development process.

If you’re an experienced developer, you may have discovered some of this book’s ideas elsewhere or even on your own, but you only need to pick up one or two new tidbits to make the book worthwhile.

By Steve McConnell,

Why should I read it?

1 author picked Code Complete as one of their favorite books, and they share why you should read it.

What is this book about?

Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices-and hundreds of new code samples-illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking-and help you build…


Book cover of Growing Object-Oriented Software, Guided by Tests
Book cover of Working Effectively with Unit Tests
Book cover of Agile Technical Practices Distilled: A learning journey in technical practices and principles of software design

Share your top 3 reads of 2024!

And get a beautiful page showing off your 3 favorite reads.

1,584

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in programmers, software, and software development?

Programmers 22 books
Software 61 books