De fato qual a perspectiva e scopo que um teste funcional deve ter ?
Focar esses testes em classes business e suas funcionalidades ?
Classes de teste funcional podem ter mock ?
Testar o que de fato o usuário utiliza, as funcionalidades direto nas telas e não testes fakes. Dá uma pesquisada sobre testes com Selenium
Isso não seria um teste de integração ? (Caixa preta)
E em um contexto backend?
Em relação ao que falei são testes funcionais automatizados.
Quem é o usuário final desse back-end?
Um projeto front-end que faz requisições para endpoints mapeados em um controller do projeto back-end.
Pro usuário neste caso pouco importa o como é desenvolvido, portanto que atenda bem o fluxo do negócio. Não adianta o back-end funcionar e dar pau em um js que ainda nem chamou o back-end.
Testa a funcionalidade que o usuário vai usar. Se for web, pode usar o Selenium webdriver.
No cenário da dúvida eu não sou responsável pelo Front-end
Se você fornece API pra terceiros, neste caso só poderá mesmo testar o back-end. Pra isso basta fazer um client que faça uma requisições HTTP para esses serviços, diretamente pelo endereço.