There aren't many tech books I'd like to curl up with for a snowy weekend, but I definitely plan to spend some weekends with this book. Yes, it's "web test automation 101" and I've been automating web tests for a couple of decades, but I want to keep my skills up to date and build better habits, and I find this book does that so well.
_Web Tester_ reminds me of the book that helped me learn Ruby, Brian Marick's _Everyday Scripting with Ruby_. I can work through the examples as I go, and that's the way I learn best. I get anxious when trying to master new coding skills, and the author's lighthearted and fun tone helps me remember it's ok to make mistakes. I can also learn from his own "war stories", which is better than living through them myself!
Everyone on a software delivery team will get value from reading this book. Automation, especially at the UI level, is a continual challenge. Even highly experienced teams like my current team can fall over the cliffs of despair trying to maintain fragile tests that give false results. If you're new to automation, this is a perfect place to start learning. If you've been doing it for years, this is a great opportunity to refresh your skills. Grab a mug of tea, a pencil and a keyboard and start enjoying!
This is a very useful book; it will get programmers and testers up to speed with current thinking and practices of agile testing. One important topic that is discussed is the Testing Pyramid, invented by Mike Cohn. It is a model that helps you make sense of different kinds of tests you could write: from the tests that are closer to the user, to the tests that are closer to the code. The Pyramid reminds you that unit, integration and UI tests are useful in different ways, and have different strengths and weaknesses. All of this is discussed at length in the book.
Although this book is focused on testing for web applications, it should prove useful for people using other technologies, such as mobile development. The details are not the same, but the underlying principles about the nature of UI, integration and unit tests don't change.
This is a book about testing, not about Test-Driven Development; the latter is discussed in the final chapter. While testing is useful for both programmers and testers, TDD is mostly useful for programmers. For this reason, I suggest programmers to read more about TDD after this book. I suggest Kent Beck's "TDD By Example."
Full disclosure: I was a reviewer of the book before it was finalized.
Anyone who works with software development in some form should read this book. Not only does it explain what and how to test but why we shouldn't try to test everything with UI or unit tests.
The book starts with an introduction of the testing pyramid and it's levels: UI, integration and unit tests. The rest of part one goes on to break these levels down, explaining how to test at each level and the advantages and disadvantages of doing so. These explanations are interspersed with explanations of web technologies and the web in general which is great if you are unfamiliar with these things and are easy to skip if you are familiar with them. Part one ends with a great section on how to apply the test pyramid, the commonly seen inverse pyramid and how to deal with flakey tests.
Part two goes into more detail starting with a brief introduction to development for those readers without a background in development. This is followed by a chapter on how to organise your tests which is more important than you'd think (ever had to find the test that proves that X works when there's a large suite of tests?). The next chapter, called Effective Mocking, is my personal favourite and not only explains mocking but how it relates to coupling in your tests and how best to manage that coupling. The book finishes up with a chapter on writing tests first and the test-code-refactor cycle of TDD.
As I said at the start of the review this book is not just aimed at developers but instead carefully balances the concerns of both developers and testers. This not only broadens the books appeal but gives some insight into how "the other side" thinks about the topics covered.
This is a good read for anyone new to the area of testing using web technologies. More than just an overview, it takes you from total newbie to a broad understanding of the theory and practices that go into testing full stack web applications, with even some pointers towards how testing practices can fundamentally improve your software engineering ability.
While it is aimed at beginners, it builds on its theoretical foundations, and doesn't shy away from digging in and explaining the technical as the book goes on. Readers who follow the behaviours it describes will be at a solid level of practice by the end of it, and be equipped to take on the dryer, heavier duty books.
This is not a dry reference, it's a book that is meant to be read, and has a loose, chatty tone. Jonathan has peppered the book with his experiences of where theory and reality have crashed into each other, what he learned from these situations, and how they can be handled pragmatically. After explaining a theory, and showing how it works in practice, he takes the time to explain where you probably want to use it, and where you probably should not. He shows how you can think about the problems that these tools and techniques can help with.
(I provided some technical feedback on the book before it was published)
It's a must read book for every tester, independently if he is a newbie or experienced tester. Jonathan guide his explanation on the automation pyramid in a upside down way, and I believe he is right. For testers it is a faster learning because they are used to working in the UI layer. But the author also explain really well the another layers in detail and with practical examples.
For developers in a agile team is a must read book too, because he show with some practical programming exercises in unit layer and mocking.
NOTE: I have worked with the author in the past and currently work for the same company
As a beginner's guide, The Way of the Web Tester summarise all the key points and practices that we've worked out over the years in the Agile community. There is more to this for sure, but this book is a nice way to not have to re-derive past lessons.
Plenty of examples if you've never seen this stuff before but still structured well enough to use as a basic reference to look up specific points.
Entertaining and informational book that'll up your testing game regardless of if you're new to testing or if you're a seasoned developer wanting to understand the other side of the "QA fence". I've worked both as a Software Developer and in a role focused on Test Automation Development, and The Way of the Web Tester is definitely valuable for people in both roles.
Disclosure: I reviewed parts of the book before it was finalised.
This book is a great introduction to test automation for web. I would recommend it to testers who want to get started with TA, developers who want to learn a bit more about it, product people to educate them regarding test automation, or anyone really (with minimum knowledge) who is curious about it and wants a good introduction.