You don’t need to read many software testing books to learn software testing. But it would help if you read some of the best books. Here are the 7 best software testing books for every aspiring tester.
7 Software Testing Books
1. Perfect Software & Other Illusions about Testing by Jerry Weinberg
Everyone has a role to play in software testing even people outside a project team. Testers, developers, managers, customers, and users shape the process and results of testing, often unwittingly. Rather than continue to generate stacks of documents and fuel animosity, testers can cultivate rich opportunities and relationships by integrating an effective testing mentality into any process.
Jerry Weinberg, author of The Psychology of Computer Programming and more than forty nonfiction books, sets out to disprove destructive notions about testing and testers in Perfect Software and Other Illusions about Testing. With a blend of wit, storytelling, and jaw-dropping insight that has won him fans around the world, Weinberg deftly separates what is expected, significant and possible in software testing. He destroys fallacies and steers readers clear of common mistakes.
We test because people are not perfect, and simply trying more does not guarantee better quality. This book guides test strategy development that’s scalable for any project.
- Why Not Just Test Everything?
- Information Immunity
- What Makes a Test Good?
- Major Fallacies about Testing
- Determining Significance
- Testing Without Machinery
- And much more.
2. Explore It by Elisabeth Hendrickson
Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn the essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts.
Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks. Part 1 introduces the core, essential skills of a master explorer. You’ll learn to craft charters to guide your exploration, to observe what’s really happening (hint: it’s harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways.
Part 2 builds on that foundation. You’ll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way, you’ll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer’s arsenal. Part 3 brings the techniques back into the context of a software project. You’ll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning.
You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you’ll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.
- Tested = Checked + Explored
- Look for interesting variables to aid your testing
- Follow the Data
- Also, The Moon Walking Bear Experiment.
3. Lessons Learned In Software Testing by Dr. Cem Kaner James Bach Bret Pettichord
Decades of software testing experience condensed into the most important lessons learned. The world’s leading software testing experts lend you their wisdom and years of experience to help you avoid the most common mistakes in testing software. Each lesson is an assertion related to software testing, followed by an explanation or example that shows you the how, when, and why of the testing lesson.
More than just tips, tricks, and pitfalls to avoid, Lessons Learned in Software Testing speeds you through the critical testing phase of the software development project without the extensive trial and error it normally takes to do so.
The ultimate resource for software testers and developers at every level of expertise, this guidebook features:
- Over 200 lessons gleaned from over 30 years of combined testing experience
- Tips, tricks, and common pitfalls to avoid by simply reading the book rather than finding out the hard way
- Lessons for all key topic areas, including test design, test management, testing strategies, and bug reporting
- Explanations and examples of each testing trouble spot help illustrate each lesson’s assertion
- Testing is applied epistemology
- Improve Reporting Skills
- Context is everything
- Don’t automate chaos, you will just get faster chaos.
4. 50+ Mistakes of Software Testing Career by Ajay Balamurugadas
An attempt to highlight the multiple mistakes I did as part of my software testing career so far. Twelve years is a reasonable sample size if you include the experiences of changing multiple jobs across domains, attending different workshops and conferences, co-founding a worldwide community for testers, attempting multiple initiatives, and finally taking up this challenge of writing this book – Ajay Balamurugadas
- Trust is a double-edged sword
- Take care of your health
- Communicate Well
- Failure is NOT a failure if you learn from it.
5. Introduction to General Systems Thinking by Jerry Weinberg
For more than twenty-five years, An Introduction to General Systems Thinking has been hailed as an innovative introduction to systems theory, with applications in computer science and beyond. Used in university courses and professional seminars all over the world, the text has proven its ability to open minds and sharpen thinking.
Originally published in 1975 and reprinted more than twenty times over a quarter century — and now available for the first time from Dorset House Publishing — the text uses clear writing and basic algebraic principles to explore new approaches to projects, products, organizations, and virtually any kind of system.
Scientists, engineers, organization leaders, managers, doctors, students, and thinkers of all disciplines can use this book to dispel the mental fog that clouds problem-solving. As author Gerald M. Weinberg writes in the new preface to the Silver Anniversary Edition, “I havent changed my conviction that most people dont think nearly as well as they could have they been taught some principles of thinking.
Now an award-winning author of nearly forty books spanning the entire software development life cycle, Weinberg had already acquired extensive experience as a programmer, manager, university professor, and consultant when this book was originally published.
With helpful illustrations, numerous end-of-chapter exercises, and an appendix on a mathematical notation used in problem-solving, An Introduction to General Systems Thinking may be your most powerful tool in working with problems, systems, and solutions.
6. Buddha in Testing by Pradeep Soundararajan
A tester’s mind is never at rest. It is constantly searching, overpopulated with information, and continually discovering changes to the context. A tester at work is interacting with plenty of people who don’t understand testing, pretend to understand, or have conflicting ideas about testing. A combination of all this creates restlessness in a tester’s mind. A restless mind ends up with fragmented learning and chaos. This impacts the quality of life itself.
7. Secrets of a Buccaneer Scholar by James Bach
This unique and insightful book challenges our prevailing and often fallacious attitudes about schooling. In today’s volatile job market, ideas are more important than training, innovation is more important than credentials; traditional schooling may no longer be necessary or even useful. The ability to educate oneself to learn how to learn is crucial. In Secrets of a Buccaneer-Scholar, James Bach demonstrates how to nurture one’s natural curiosities and passions through the whimsical learning process he calls “buccaneering” demonstrating that those who understand this fundamental principle will come to dominate this new world.