O teste funcional, ou de caixa-preta, é baseado nos requisitos funcionais do software. Esta técnica não está preocupada com o comportamento interno do sistema durante a execução do teste, mas sim com a saída gerada após a entrada dos dados especificados. Tal tipo de teste é indicado para detectar erros de interface, de comportamento e/ou desempenho, podendo ser aplicada em todas as fases de testes (unidade, integração, sistema e aceitação). Uma dificuldade dessa técnina, por questões de tempo e recurso, é testar todas as entradas possíveis. Essa técnica de teste apresenta-se como necessária durante o desenvolvimento de um sistema, contudo, por sua natureza, mostra-se insuficiente para identificar certos riscos num projeto de software.