If you’re a software developer, who’s been in the industry for a while, this book will take your skills to the next level! This is a book for developers who want to write better code. It’s about achieving quality in software by acknowledging testability as a primary quality attribute and adapting the development style thereafter. Developer testing is about being aware of some things that testers are aware of, and about knowing how to write testable software!
As a book on developer testing, it's disappointing. It dives too deep into more esoteric concepts such as Domain-to-Range Ratio and skimps on important and broad topics such as tests that aren't unit tests. At the level of detail it sometimes uses, it would need to be 2-3 times as long. There are some good parts such as the chapters on test doubles and tdd, but it doesn't seem like anything you can't learn from reading Martin Fowler's website.
About a 3rd of the book isn't about testing at all, but about software design. Of course the two are closely related, and these parts talk a lot about "testability", but I think they make the entire book more into a veiled essay on understanding dependencies and side effects within your production code. In this sense, the book is actually quite interesting.
And if nothing else, the author is a good summarizer. Each chapter has consistently good summaries at the end, there is quite a nice collection of links to tools in the back, and the bibliography is a fantastic reading list.
I came away from this book perhaps not a more skilled tester, but certainly inspired to improve, and to design more testable software, and I think that was the point.
I wish I had read this book at the beginning of my career, I believe that it would have made me think more about the quality of the code I produced. Reading it now, many of the concepts detailed within are familiar but I still see that this book fills a certain gap in existing literature. Having worked with several different software development teams over the years I can say with certainty that this book would benefit many of them.
This book offers a great collection of the most important aspects for testing software. If you want to know what Mocks are or how the testing pyramid works, this book will have a chapter on it. It’s accurate and full of references to other books that introduced these concepts. When you aren’t sure which book on your bookshelf covers a certain topic on testing, you most likely will find a reference in this book that answers this question.
However, I find it hard to believe that someone new to the topic of software testing will gain much out of this book. Yes, all important aspects are present. But it’s written in a theoretical way that will be hard to put to practice without prior knowledge. The few examples in the book don’t change much for a beginner. With more knowledge that could change, but the same knowledge will make the book redundant.
To end this review with an upside, I really liked the questions that are addressed who question the whole approach of developer testing. Those questions exist and with the answers from this book one could answer them profoundly, even when one is new to the topic.
Developer Testing is an easy to read introduction to the different ways developers can test the code they write. In my experience, many developers don’t test their own code enough, so I was happy to discover a whole book dedicated to the topic. Alexander Tarlinder starts from the beginning, by defining what developer testing is and by explaining common testing terms. Then he writes about what you can do, as you design and write your program, to make it testable. This includes observability and controllability. In my view, this is the best part of the book. Next he describes different ways and styles of writing automatic tests. Topics covered include unit test naming, TDD examples (both classic and mockist style), test doubles and mocking frameworks. The chapters are clear and easy to read, and the summaries at the end of each chapter are some of the best I have read in any technical book. The topic of developer testing is important, and all developers should know the basics presented in this book. I have written a more detailed review of it here: https://henrikwarne.com/2017/08/20/de...
В книге систематизировано современное представление о методиках автоматизированного тестирования в процессе разработки.
Книга вроде бы энциклопедична и современна, пытается систематизировать текущие методики.
Но мне она не понравилась. Самое главное - хотя автор и дает вводные в каждом разделе, но для меня это недостаточно объясняло назначение каждого раздела и последующие куски кода ничего не проясняли лично для меня.
Ну и вроде бы не существенное замечание, но которое наверно также сказалось на моем общем впечатлении о книге - язык в книге очень тяжеловесный и наукоподобный, возможно это связано с тем, что английский для автора не родной язык.
Alexander apply a term used for us (testers) that is Test Infected! All concepts and practices applied to the test subject are very well explained with references and the most important for developers: code!
If you are a developer you'll understand a lot of concepts and practices to expand you knowledge and create software with quality. If you are a tester you'll the "dark side" and understand there is no side. You'll gain knowledge in development and see that many things to apply is not so ease as we think.
Nothing super fancy, nor new. Covers whole testing practice from major points without going into much details for each (though curious readers are rewarded by links for in-depth information). Recommended as a dictionary of testing for everyone
Enjoyable book, with a lot of truths and pragmatic knowledge points.I'd wish though to be packed with more practical examples. In some cases, the chapters look thin.
Alexander surveys here many things a developer must know to effectively test its software. This includes tools (e.g., mocking frameworks), techniques (e.g., boundary conditions, partitioning, combinatorial testing), methods (e.g., TDD, BDD, ATDD).
Yet, if you are new to software development, this will help you spot what techniques works well to produce quality code. Besides, this book reads well and is not dependent on any specific framework or language, and will still be relevant in ten years.