Pular para conteúdo

Aula 08 - Técnicas de Teste: Caixa Branca ⚪

🔍 O que é Teste de Caixa Branca?

Ao contrário da caixa preta, os testes de caixa branca (ou teste estrutural) permitem que o testador olhe para o interior do código. O objetivo é verificar a estrutura lógica, caminhos, fluxos de controle e condições.

[!NOTE] Foco na implementação e na eficiência do algoritmo.


🏗️ Técnicas Principais

1. Cobertura de Código (Code Coverage)

Mede o percentual do código que é executado pelos testes. Existem sub-níveis: - Cobertura de Instruções: Cada linha de código foi executada? - Cobertura de Decisões/Caminhos: Todos os if/else foram percorridos em ambas as direções?

2. Fluxo de Controle

Utiliza grafos para representar a lógica do programa e identificar caminhos que podem não estar sendo testados.

graph TD
    Start((Início)) --> A[Entrada X]
    A --> B{X > 10?}
    B -- Sim --> C[Ação A]
    B -- Não --> D[Ação B]
    C --> End((Fim))
    D --> End

3. Teste de Fluxo de Dados

Foca no ciclo de vida das variáveis (onde são declaradas, usadas e destruídas).


📊 Cobertura na Prática

Muitas ferramentas geram relatórios automáticos de cobertura (ex: coverage.py, Istanbul, Jacoco).

pytest --cov=app tests/ ----------- coverage: platform win32 ----------- Name Stmts Miss Cover app/auth.py 50 5 90% app/db.py 30 15 50% (Atenção aqui!)

📝 Exercício de Fixação

  1. Se um código possui 100% de Cobertura de Instruções, ele está livre de erros de lógica? Justifique.
  2. Qual a principal diferença entre um teste de Caminho e um teste de Decisão?

🚀 Mini-Projeto

Objetivo: Desenhar um fluxo de controle. - Abaixo está um pseudocódigo:

LEIA temperatura
SE temperatura > 30:
    EXIBA "Quente"
SENÃO SE temperatura < 15:
    EXIBA "Frio"
SENÃO:
    EXIBA "Agradável"
- Tarefa: Desenhe o Grafo de Fluxo de Controle para este código e identifique quantos casos de teste são necessários para garantir 100% de cobertura de decisões.


🔗 Materiais da Aula

  • Slides --- Material visual com diagramas e conceitos-chave. Slide 08

  • Quiz --- Teste seu conhecimento com 10 questões interativas. Quiz 08

  • Exercícios --- 5 exercícios progressivos (básico → desafio). Exercício 08

  • Projeto --- Aplicação prática dos conceitos da aula. Projeto 08


➡️ Próxima Aula: Aula 09