- Runtime Type Checking: Só é validado no momento que a aplicação começa a rodar
- Static Type Checking: Validado enquanto é desenvolvido
- Unitários: unidade da aplicação
- Integração: Comunicação entre duas ou mais unidades
- E2E: Ponta a ponta: simulam um usuário operando na aplicação