Кент Бек считается одним из основателей методологии TDD и поэтому мне хотелось познакомиться с его книгой о разработке через тестирование. До этого я читал разные материалы об автотестах и методиках тестирования, и хотелось познакомиться с первоисточником.
Мои впечатления неоднозначны. Книга из трёх частей — в первой практика, чтобы показать, как происходит работа в TDD-стиле. Все это я уже где-то читал и мне не было интересно. Вторая часть — показать, как с TDD писать инструментарий для тестирования. Плохая идея, как по мне, причем автор сам говорит о ее сомнительности, приводя аналогию операции на собственном мозге. Зачем оно тогда в книге? Новички не знают о XUnit, JUnit и тп. А те, кто знает уже современный инструментарий, тем и читать это не сильно интересно как по мне. Третья часть — теория. Что-то из нее было интересно почитать, но часть про шаблоны проектирования тут непонятно зачем. Понять шаблоны из такого описания невозможно, а кто с шаблонами уже знаком, тому и не надо описывать это в десятый раз.
При этом речь вообще тут идёт о модульном (юнит) тестировании, на котором автотесты не заканчиваются — есть ещё интеграционные, функциональные и тд, и сейчас, насколько я могу судить, разработку начинают с более высокоуровневого теста (например, теста конечного хттп-сервиса), и затем спускается разработка на юнит-тесты с реализацией этого хттп-сервиса, его бизнес-логики. Обо всем этом нет в книге.
В целом, наверное, материал можно рассматривать как отправную точку для своего времени, когда это всё зарождалось. В послесловии Мартин Фаулер пишет, что «все эти мысли несколько сыроваты», «мы ещё не видим эту картину достаточно четко, однако мне кажется, что она постепенно становится все яснее и яснее».
Кто пишет на питоне, могу порекомендовать небольшой цикл статей по TDD https://www.thedigitalcatonline.com/blog/2020/09/10/tdd-in-python-with-pytest-part-1/. Не знаю, упустите ли вы что-то глобальное, если вместо Кента Бека прочтете эти пять статей.
Читается быстро, плотность информации в бОльшей части книги небольшая.
Дальше буду читать по этой теме Персиваля с его «Python Разработка на основе тестирования».