Еще нужны интеграционные тесты. Это когда ты берешь вот прям кусок кода, большой такой. И тестишь его работу когда много функций взаимодействуют вместе.
Аля вот ты запустил sum(), потом еще где-то поделил, потом записал это в какой-то массив, потом еще что-то и бла-бла. И после всех этих махинаций, у нас ничего не упало.