Aula 08 - Frameworks de Teste e Qualidade 🧪
Objetivo
Objetivo: Entender a importância dos testes automatizados para a estabilidade do software, conhecer os diferentes níveis de teste e descobrir os principais frameworks de cada linguagem.
1. Por que Testar? 🛡️
Software sem testes é uma bomba relógio. À medida que o código cresce, mudar uma linha pode quebrar algo que já estava funcionando.
🧠 Conceito: Regressão
Na engenharia, um pequeno hotfix numa função utilitária pode desencadear uma reação em cadeia oculta. Se os desenvolvedores precisarem testar a tela toda a vez que o código muda, perde-se eficiência e confiabilidade.
Testes automatizados evitam a regressão. Eles processam as regras de negócio em frações de segundos garantindo que um módulo continue retornando o que você esperava antes de aprovar uma mudança nova.
2. Níveis de Teste: A Pirâmide 🏗️
Nem todos os testes são iguais. Os desenvolvedores seguem a Pirâmide de Testes:
- Testes Unitários (Base): Testam pequenas partes isoladas (funções ou classes). São rápidos e baratos.
- Testes de Integração (Meio): Testam se dois ou mais módulos funcionam bem juntos (ex: API salvando no Banco).
- Testes E2E - Ponta a Ponta (Topo): Simulam o usuário real clicando na tela. São lentos e complexos.
Pirâmide de Testes
mermaid graph TD UI([Testes E2E / UI]) -- Lento/Caro --- INT([Testes de Integração]) INT --- UNIT([Testes Unitários]) UNIT -- Rápido/Barato --- UNIT
3. Ferramentas por Linguagem 🏆
Cada ecossistema tem seu framework de "ouro":
| Linguagem | Framework de Teste |
|---|---|
| JavaScript/TS | Jest / Vitest |
| Python | PyTest |
| Java | JUnit |
| C# (.NET) | xUnit / NUnit |
4. O Ciclo TDD (Test Driven Development) 🔄
Alguns desenvolvedores preferem escrever o teste antes do código. Este processo é chamado de TDD:
- 🔴 Red: Escreve um teste que falha.
- 🟢 Green: Escreve o código mínimo para o teste passar.
- 🔵 Refactor: Melhora o código garantindo que o teste ainda passe.
5. Praticando no Terminal 💻
Simulando a execução de um teste com o Jest:
PASS ./soma.test.js
✓ soma 1 + 2 deve ser 3 (5 ms)
✓ soma -1 + 5 deve ser 4 (2 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 1.2 s
Ran all test suites.
6. Prática: O Primeiro Teste (Lógica) 🚀
Mesmo que ainda não estejamos codificando, vamos pensar na lógica de um teste unitário:
- Imagine uma função chamada
calcularDesconto(preco, percentual). - No seu bloco de notas, escreva 3 cenários de teste:
- Cenário 1: Preço 100, Desconto 10. Resultado esperado: 90.
- Cenário 2: Preço 50, Desconto 0. Resultado esperado: 50.
- Cenário 3: Preço 200, Desconto 100. Resultado esperado: 0.
🔗 Materiais da Aula
-
Slides
Material visual com diagramas e conceitos-chave.
-
Quiz
Teste seu conhecimento com 10 questões interativas.
-
Exercícios
5 exercícios progressivos (básico → desafio).
-
Projeto
Aplicação prática dos conceitos da aula.