🚀 Capítulo 10: Automação de Testes (Tema: X-Men / Sentinelas)

NOTE

Este capítulo utiliza a temática de X-Men para explicar a Automação de Testes. Os Sentinelas são robôs programados para caçar; no software, nossos scripts são os robôs que caçam bugs sem cansar!


1. 🎯 Objetivo da Aula

Compreender o conceito de Automação de Testes, entendendo quando vale a pena colocar robôs (scripts) para testar o sistema e quando o teste humano ainda é necessário.

2. 🏢 O Cenário Prático (Seu Desafio)

O governo criou os Sentinelas, robôs gigantes programados para caçar mutantes.

  • O Teste Manual: Um humano precisa vigiar a cidade procurando mutantes. Ele cansa, pisca o olho, se distrai e pode deixar um passar.
  • O Teste Automatizado: O Sentinela tem um sensor infravermelho. Ele varre a cidade 24 horas por dia, executa a mesma rotina sem errar e avisa quando encontra um alvo.

No software, clicar em 50 botões toda vez que você altera o código é chato e demorado. Nós criamos scripts (nossos Sentinelas) que fazem isso sozinhos em segundos! Seu desafio é programar esses robôs caçadores!

3. 🧠 Fundamentos: A Teoria Traduzida

Automação de Testes é o uso de software (código) para controlar a execução de testes e comparar os resultados reais com os resultados esperados.

🤖 Por que automatizar?

  • Velocidade: Robôs executam ações muito mais rápido que humanos.
  • Repetibilidade: O robô faz o teste exatamente da mesma forma todas as vezes.
  • Foco Humano: Libera os humanos para fazerem testes mais complexos e criativos (Testes Exploratórios).

🛑 O que NÃO automatizar?

Nem tudo deve ser automatizado. Não automatize:

  • Testes que você só vai rodar uma vez na vida.
  • Testes de Usabilidade (só um humano sabe dizer se a tela é bonita ou fácil de usar).
  • Sistemas que mudam de interface todo dia (o custo de atualizar o robô será maior que o benefício).

4. 📖 Exemplo Guiado: O Script Sentinela

Um script de automação de teste geralmente se parece com uma lista de ordens para o robô:

// Pseudocódigo de Automação
const robo = abrirNavegador();
 
robo.irPara("https://portaldaescola.com");
robo.preencherCampo("#usuario", "professor_xavier");
robo.preencherCampo("#senha", "123456");
robo.clicarNoBotao("#entrar");
 
// O robô verifica se a página mudou
if (robo.urlAtual() === "https://portaldaescola.com/dashboard") {
    console.log("✅ Sentinela: Teste de login passou!");
} else {
    console.log("❌ Sentinela: Alerta de bug no login!");
}

5. 🛠️ Prática Obrigatória 1: Decidindo a Automação

Diga se você Automatizaria ou faria o teste de forma Manual nas seguintes situações:

  1. Testar se o fluxo de pagamento com cartão de crédito continua funcionando após uma atualização do sistema (algo que acontece toda semana).
  2. Avaliar se a nova cor azul do fundo do aplicativo passa uma sensação de calma para o usuário.
  3. Verificar se o relatório anual de impostos (que só é gerado uma vez por ano) calcula os valores corretamente.

6. 🛠️ Prática Obrigatória 2: O Custo do Robô

Criar um script de teste automatizado exige tempo de programação. Se um teste manual demora 5 minutos para ser feito, e o teste automatizado demora 2 horas para ser programado, a partir de quantas vezes que você precisar rodar esse teste a automação começa a valer a pena?


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 10 Qualidade) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

mod_11_qualidade_e_testes_de_software/
├── capitulos/
│   ├── capitulo_10_sentinelas.md
│   └── codigos/
│       └── cap10/
│           └── script_sentinela.js

💡 Checkpoint de Lógica

Automação de testes não substitui os testadores humanos. Ela serve para fazer o trabalho repetitivo e “chato”, permitindo que os humanos usem sua inteligência para encontrar bugs mais complexos!

10. 🔥 Desafio de Fixação

Pesquise sobre o termo Regressão de Software e por que a automação é a melhor amiga para evitar que bugs antigos voltem a aparecer.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Automatizaria (É repetitivo e frequente).
  2. Manual (Envolve sentimento e percepção humana).
  3. Manual (O custo de automatizar algo que só roda uma vez por ano não compensa).

Capitulo Anterior | Proximo Capitulo