Помимо юнит-тестирования, посредством которого покрывается, к примеру, взаимодействия (с БД, с хранилищем и т.п.) можно посмотреть в сторону
www.seleniumhq.org . Медленно, но, зачастую себя оправдывает.
Функциональное тестирование можно сделать и через Unit-тесты, вы же можете протестировать сервисы/компоненты на разных уровнях, эмулируя (Mock) те или иные вещи.