Как научится четко понимать где модульное тестирование, а где функциональное?
Функции - это манипуляции с данными: есть данные на вход, и есть возвращаемое значение. 
Модули - это уже логика, которая зависит не столько от данных, сколько от условий/параметров.
Когда проводим функциональные тесты - тогда проверяем правильно ли функция работает с данными. Когда проводим модульное тестирование, тогда проверяем правильно ли обрабатываются условия/параметры (какие данные при этом не так важно).
Функциональное тестирование - тестированием черным ящиком. Тест и его писатель, могут ничего не знать об внутренностях
Модульное тестирование - писатель знает, что за связку модулей он тестирует. Частично может обращаться к функционалу модулей