Comportamento incorreto ou inesperado do software.
Métrica de quanto do código é exercitado pelos testes.
Dublês de teste que simulam dependências externas.
Verifica a menor unidade testável (função/classe) de forma isolada.
Valida se o software atende critérios do cliente/usuário.
Verifica a interação entre módulos ou serviços.
Garante que mudanças não quebraram comportamentos anteriores.
Avalia o sistema completo em relação aos requisitos.