# O que é Unit Testing?

É um método de teste que verifica se as menores partes do software funcionam corretamente por conta própria.

## Definição
É o teste básico feito para garantir que cada função ou método funcione sem erros durante o desenvolvimento do software. Você pode pensar nisso como verificar as peças de um grande quebra-cabeça, uma por uma. Se as peças pequenas estiverem intactas, a confiabilidade de todo o sistema aumenta.

## Como funciona
Os desenvolvedores escrevem cenários de teste específicos para cada parte do código. Esses cenários verificam automaticamente se o código fornece a saída esperada para a entrada esperada. Se o teste falhar, fica imediatamente claro qual pequena peça está com defeito.

## Onde é usado
É usado logo no início do processo de desenvolvimento de software, enquanto o código é escrito ou imediatamente após ele ser escrito.

## Costuma ser confundido com
Pode ser confundido com testes ponta a ponta; Embora teste todo o sistema, o teste unitário concentra-se em apenas uma parte.

## Perguntas frequentes
**Por que devo testar cada parte?**
Para detectar erros muito cedo e evitar problemas graves que ocorrerão posteriormente em todo o sistema.

**Isso é feito automaticamente?**
Sim, geralmente é automatizado pelo desenvolvedor usando ferramentas de teste.


## Termos relacionados
- [Testing Framework](/pt/dictionary/testing-framework/)
- [End-to-End Testing](/pt/dictionary/end-to-end-testing/)
- [Framework](/pt/dictionary/framework/)

## Ferramentas relacionadas
- [Catch2](/pt/discover/catch2/)
- [Pytest](/pt/discover/pytest/)

---
Fonte: TreScout Glossário · https://trescout.com/pt/dictionary/unit-testing/
