Quiz 08
1. **Qual o principal objetivo dos testes automatizados?**
Substituir o trabalho do desenvolvedor.
Garantir que o software continue funcionando corretamente após mudanças (evitar regressão).
Deixar o código mais bonito visualmente.
Aumentar o tamanho do arquivo final do projeto. * *Explicação: Testes servem como uma rede de segurança para o programador mexer no código sem medo.*
2. **O que são "Testes Unitários"?**
Testes feitos apenas por uma pessoa da equipe.
Testes que validam pequenas partes isoladas do código (como uma única função).
Testes feitos apenas uma vez no final do ano.
Testes que verificam se o site carrega no celular. * *Explicação: São a base da pirâmide e testam a menor unidade lógica possível.*
3. **Qual ferramenta de teste é o padrão para o ecossistema JavaScript/Node.js?**
JUnit.
Jest.
PyTest.
Selenium. * *Explicação: O Jest é amplamente adotado por sua facilidade de uso e recursos integrados.*
4. **O que significa a sigla TDD (Test Driven Development)?**
Testar Depois de Desenvolver.
Desenvolvimento Orientado por Testes (escrever o teste antes do código).
Técnicas de Design para Desenvolvedores.
Total Data Delivery. * *Explicação: No TDD, o teste "guia" a implementação da funcionalidade.*
5. **A Pirâmide de Testes sugere que devemos ter:**
Mais testes de Interface (E2E) do que Unitários.
Muitos testes Unitários na base e poucos testes E2E/UI no topo.
Apenas um tipo de teste para economizar tempo.
Testes apenas na fase de deploy. * *Explicação: Testes unitários são mais rápidos, baratos e fáceis de manter.*
6. **O que é um "Teste de Integração"?**
Um teste de cultura para novos funcionários.
Um teste que verifica se dois ou mais módulos do sistema funcionam bem juntos (ex: App + Banco de Dados).
Um teste feito apenas no navegador Chrome.
O ato de baixar o código do GitHub. * *Explicação: Foca na comunicação entre os componentes do sistema.*
7. **Sobre o PyTest, é correto afirmar:**
É um framework de testes exclusivo para Java.
É o framework de teste mais popular e poderoso para a linguagem Python.
Ele serve para criar interfaces gráficas.
Ele deleta arquivos com erro automaticamente. * *Explicação: O PyTest é conhecido por sua sintaxe simples e extensibilidade.*
8. **O que é um "Mock" ou "Dublê de Teste"?**
Um erro que aparece no terminal.
Um objeto que simula o comportamento de um componente real (ex: simular o envio de um e-mail sem enviá-lo de verdade).
Uma extensão do VS Code para formatar código.
O nome do desenvolvedor que criou o teste. * *Explicação: Mocks permitem testar partes do sistema sem depender de serviços externos lentos ou caros.*
9. **No ciclo TDD, o que significa o passo "Red" (Vermelho)?**
Que o computador travou.
Que o teste foi executado e falhou (pois o código ainda não foi escrito).
Que o código contém vírus.
Que o desenvolvedor está bravo com o projeto. * *Explicação: Ver o teste falhar prova que ele é capaz de detectar erros.*
10. **Por que é importante rodar os testes automaticamente no GitHub (CI)?**
Para gastar o dinheiro da empresa.
Para garantir que nenhum código quebrado entre na branch principal sem que ninguém perceba.
Porque os testes locais não funcionam na nuvem.
Para preencher a aba "Actions" com informações inúteis. * *Explicação: A automação garante que o padrão de qualidade seja mantido por todo o time.*