Top 6 books on software testing
November 4, 2020
Software testing in Ukrainian outsourcing has become a popular area to start your career in an easy way because, well, “testing is easy”. In fact, it is not.
A large number of testers do not understand what they are doing and thus they do their job inefficiently or poorly. Those who are not testers – developers, managers, infrastructure engineers – also do not understand what testing is. Consequently, they neglect it or set inappropriate goals. In both cases, we have a high risk of getting a low-quality product: a large tech debt, critical defects that are not closed for up to six months, weekly regressions, and a large number of defects from real users.
Why do we know so little about testing?
Throughout my career, I have come to the conclusion that the cause of the problem lies in insufficient training. Neglecting the mathematical part of testing leads to a misunderstanding of the testing domain and the problems that should be solved by testing. We turn to the theoretical part only in two cases: an interview or an internal evaluation of the employee. In the case of an interview, we google ‘top 100 QA interview questions’ and in the case of an internal assessment, we take the matrix of company competencies, google all unknown words and collect information piece by piece. In most cases, all this information comes from different types of blogs and websites, where it is presented in a very limited way, out of context, and without details or real examples.
ISTQB will solve all the problems
Some people have read the ISTQB FL syllabus and believe that there is enough information about testing theory. The syllabus is good to prepare yourself for certification, and because of this the information in it is very generalized, presented in a small amount, and conveyed as correct from the perspective of certification. That means that only the minimum information required to pass the certification is written there. Not more. And since ISTQB wants to cover all areas in testing – from aviation to the web, it turns out to be very abstract. The best thing in the syllabus is the list of references on the last pages.
Why are books useful?
I think books are the best way to get information. It's not just about testing. Especially if we are talking about some mathematical part.
- A book is a story written by an author or authors who have extensive experience in a domain topic. This is a story that is continuous, structured, and presented in a certain order. By reading it we can see the full picture.
- In a book, the author presents his point of view on a problem and describes why he sees it this way. After reading several books by different authors in the same domain, you can see that they often call the same things by different names. The reason for this may be that they look at a problem from different angles. This often leads to confusion in terms.
- In books, the topic can be covered more deeply and in more detail than anywhere else.
- Books are suitable for both beginners and experienced professionals.
In this article, I would like to share with you some books on testing that have been the most valuable and informative for me. Everything that is written about them below is purely my subjective opinion.
- How We Test Software at Microsoft
This is a powerful book from Microsoft. In our country, it is little known and quite often underestimated. This book will be useful for both beginners and experienced professionals. It describes in detail the various development processes used by Microsoft. Much attention is paid to different test design techniques and testing approaches. They are explained in great detail and with many examples. There are good practical pieces of advice on how to manage tests and defects and how to test non-functional characteristics. You would think that a book from Microsoft would be overwhelmed with their advertising tools but not this one. Little is mentioned about tools there. Books often tend to contain very abstract theory. But this book is not one of them. All the examples there are realistic. This book is more of a way for Microsoft to share their knowledge of testing. I highly recommend reading it. It used to be my main source of preparation for the MTA 98-379 Software Testing Fundamentals exam (now this exam is closed and outdated). It’s interesting that you can hear the term Software Development Engineer in Test and that it came from Google. In fact, this term first appears in this book.
- The Art of Software Testing
It is one of the first books on testing in general. It is aimed for developers but it will be useful to everyone. Much attention is paid to the philosophy of testing and why it is necessary, important, and difficult. Separate attention is paid to web and mobile testing. Here it is considered more from a conceptual point of view and what you need to pay the most attention to.
- How to Break Software series
This is a series of 3 books by James Whittaker. They may seem a bit outdated (the first book was published in 2002), but most of the attacks are still relevant. The books are about attacks: some input parameters, input data or some other way of interacting with the application. They consist entirely of practical advice – what attacks to use and in what cases. There is a maximum practical and real experience from the author. Believe me, there are many interesting things that not everyone will think of.
- A Practitioner’s Guide to Software Test Design
The best test design book ever. The most popular test design techniques and how to use them are very well described. You read in one go. Both black box and white box techniques are explained here. Make sure you read it if you plan to take the ISTQB test.
- The Software Test Engineer’s Handbook
If you plan to take the ISTQB Advanced: Test Analyst or Technical Test Analyst exam, you need this book. It describes in great detail all the characteristics of the ISO 25010 quality model. Each characteristic is broken down to sub-characteristics and there is a description of how and why they should be tested. They are fully described and explained, so after reading you can look at your own project from a completely different perspective. It also talks about test design techniques and how to use them properly. There are examples. Generally speaking, this book is an extended syllabus for ISTQB Advanced TA \ TTA.
- xUnit Test Patterns
This book will be useful to those involved in test automation and to developers. Typical patterns and antipatterns in writing tests as well as test smells and how to refactor them are described there. You should read this book if you want to write stable and valuable tests. It will be very useful for beginner automators, as it describes all the pitfalls you may come across.
You will not find some of these books in Ukraine but you can buy them on Amazon without any problems. Art of Software Testing and xUnit Test Patterns can be found in Russian, but I recommend reading the original.
These books will help you improve your testing skills and better understand what testing is for and what quality assurance is like as a process. Enjoy reading, gain new knowledge and apply it.