Teste Estático (Cap. 3 CTFL)
O que é teste estático?
O teste estático examina artefatos de software sem executá-los. Isso inclui código-fonte, documentos de requisitos, casos de uso, planos de teste, modelos de arquitetura e qualquer outro artefato produzido durante o desenvolvimento.
Ao contrário do teste dinâmico (que executa o software com entradas e verifica saídas), o teste estático analisa o artefato em si — sua estrutura, consistência, completude e conformidade com padrões.
O benefício central é o custo: defeitos encontrados em documentos ou código antes da execução custam uma fração do que custaria encontrá-los em produção. Uma ambiguidade num requisito, identificada numa revisão, pode evitar semanas de retrabalho.
🎬 O que é teste estático?
Tipos de revisão
O CTFL v4.0 define quatro tipos de revisão em ordem crescente de formalidade:
- Revisão Informal: sem processo definido. Um colega lê o documento ou código e dá feedback. Rápida e barata, mas sem registro formal.
- Walkthrough: o autor conduz a revisão, guiando os revisores pelo artefato. Foco em aprendizado e descoberta de problemas. Sem papéis formais obrigatórios.
- Revisão Técnica: conduzida por colegas técnicos (não o autor). Mais estruturada, com registro de defeitos encontrados. Foco em consenso técnico.
- Inspeção: o processo mais formal. Tem papéis definidos (moderador, autor, revisor, relator), processo documentado, métricas coletadas e critérios de entrada/saída. Alta taxa de detecção de defeitos, mas custo maior.
🎬 Tipos de revisão
Análise estática com ferramentas
A análise estática automatizada usa ferramentas para examinar o código sem executá-lo. Exemplos populares: ESLint (JavaScript), SonarQube (multi-linguagem), PMD (Java).
Essas ferramentas identificam:
- Violações de padrões de codificação
- Vulnerabilidades de segurança conhecidas
- Código duplicado (duplicação)
- Complexidade ciclomática elevada (código difícil de testar)
- Variáveis não inicializadas ou fluxos de controle problemáticos
A análise estática não substitui a revisão humana — ela complementa, automatizando a verificação de padrões mecânicos para que os revisores humanos foquem em questões de lógica e design.
🎬 Análise estática com ferramentas
🧠 Teste seus conhecimentos
Qual é a principal diferença entre teste estático e teste dinâmico?