Достаточно фундаментальная книга, но написана максимально простым и понятным языком.
Прививает правильные подходы к тестированию. Некоторые из них:
-
хороший тест не тот, который проходит, а тот, который находит ошибку;
-
дампы памяти, дебаг с помощью брейкпоинтов или принтов — не есть хорошо, потому что является устранением симптомов, а не причины.
Сначала про философию и подходы, дальше в глубокую теорию с практическими примерами (куски кода, таблицы, всё такое любимое)