"...чтобы быть уверенными, что после изменений основные функции будут работать как прежде." - это называется регрессоннным тестированием. Unit-тесты, если мы говорим про одно и то же, это не обеспечивают. Обычно для этой цели используют функциональные тесты, желательно, автоматизированные.
Савин мне не нравится, имхо. На английском можно почитать Ron Patton "Software testing". Можете ознакомиться с материалами istqb -коротко и по делу. Есть на русском - базовый уровень.
Если времени много - на ютубе есть курс по тестированию от mail.ru.