Testes Estruturais e Complexidade Ciclomática (2025)

Classificado em Tecnologia

Escrito em em português com um tamanho de 12,05 KB

Testes Estruturais (Caixa‑Branca)

Baseia-se na estrutura interna do código. Testa caminhos, decisões, loops e condições.

Complexidade ciclomática (McCabe)

Mede o número de caminhos independentes do código. Fórmula: V(G) = E − N + 2, onde E = arestas e N = nós. Indica o número mínimo de casos de teste. Cada caminho representa uma sequência única de execução, geralmente causada por estruturas de controle como if, while, for e switch.

2025

Complexidade ciclomática (McCabe)

Quanto maior o número de caminhos, mais complexo é o código — e mais testes são necessários para garantir que todas as possibilidades foram verificadas. A fórmula é baseada na representação do código como um grafo de controle de fluxo.

2025

Complexidade ciclomática (McCabe)

Cada nó representa um ponto de decisão ou de execução, e cada aresta representa uma transição entre esses pontos.

Vamos identificar os nós

  1. Início – ponto de entrada do programa.
  2. condicao1 – ponto de decisão (if).
  3. executaA – caminho se a condição for verdadeira.
  4. executaB – caminho se a condição for falsa.
  5. executaC – instrução final, comum a ambos os caminhos.

2025

Agora, as transições (arestas)

  1. Início → condicao1;
  2. condicao1 → executaA;
  3. condicao1 → executaB;
  4. executaA → executaC;
  5. executaB → executaC;

2025

Fórmula: V(G) = E − N + 2

E = número de arestas (transições entre blocos de código).
N = número de nós (blocos de código ou instruções).
V(G) = complexidade ciclomática.

Exemplo: V(G) = 5 − 5 + 2 = 2

Caminhos:

  1. Caminho 1: condicao1 verdadeira → executaA → executaC;
  2. Caminho 2: condicao1 falsa → executaB → executaC;

2025

Teste de Caminho Básico

2025

Teste de Caminho Básico

É uma técnica específica dentro do teste estrutural. Utiliza a complexidade ciclomática para definir casos de teste essenciais. Identifica os caminhos independentes no código e cria casos de teste mínimos para cobrir todos eles. Garante que todas as estruturas de controle (if, while, etc.) sejam exercitadas ao menos uma vez. Evita redundâncias e reduz o número de testes.

2025

Teste de Fluxo de Dados

2025

Teste de Fluxo de Dados

Avalia o uso e a redefinição de variáveis no código. Foco: detectar variáveis usadas antes da definição ou redefinidas incorretamente.

Critérios principais:

  • All-defs: cada variável definida deve ser usada.
  • All-uses: cada uso deve ser testado com base na definição.

2025

Teste de Fluxo de Dados

2025

Teste de Fluxo de Dados

Se a condição for falsa, o print(y) vai tentar usar uma variável que nunca foi definida. É exatamente o tipo de problema que esse teste detecta.

2025

Testes Estáticos e Inspeção de Software

2025

Testes Estáticos e Inspeção de Software

Não executam o código. Detectam erros de lógica, padrão e estilo antes da execução. Técnicas: revisão, leitura e inspeção.

Papéis na inspeção:

  • Moderador: conduz o processo.
  • Leitor: apresenta o código.
  • Inspetor: identifica defeitos.
  • Secretário: registra problemas.
  • Autor: corrige os erros.

2025

Limitações da Inspeção

2025

Não detecta defeitos que só aparecem durante a execução. Ineficaz para erros de integração, desempenho e segurança. Complementa, mas não substitui os testes dinâmicos.

2025

Teste Baseado em Modelo (TBM)

2025

Teste Baseado em Modelo (TBM)

Técnica de teste estrutural que usa modelos para gerar casos de teste. Representa o comportamento esperado do sistema. Exemplos: Máquina de Estados Finitos (FSM), tabelas de decisão e modelos de fluxo de dados.

Vantagens:

  • Geração automática de casos de teste.
  • Melhora a cobertura e a rastreabilidade.
  • Ajuda a validar regras de negócio e transições entre estados.

2025

Modelos usados no TBM

Tabela de decisão: representa regras de negócio complexas (condições × ações).

2025

Modelo de fluxo de dados: rastreia o caminho das informações e verifica integridade.

2025

Etapas do Teste Baseado em Modelo

Criação do modelo.
Definição da cobertura (ex.: todas as transições).
Geração de casos de teste.
Execução e comparação com resultados esperados.

2025

Questões de Revisão (Simuladas)

2025

Questão 1

A complexidade ciclomática serve para:

  • A) Medir o desempenho do código.
  • B) Calcular o número mínimo de casos de teste.
  • C) Avaliar falhas funcionais.
  • D) Garantir integração correta.

2025

Questão 1

A complexidade ciclomática serve para:

  • A) Medir o desempenho do código.
  • B) Calcular o número mínimo de casos de teste.
  • C) Avaliar falhas funcionais.
  • D) Garantir integração correta.

Comentário: A complexidade ciclomática indica quantos caminhos independentes o código possui, sendo usada para definir o número mínimo de casos de teste necessários.

2025

Questão 2

No teste de fluxo de dados, o critério All-uses busca:

  • A) Testar todas as variáveis sem redefinições.
  • B) Validar apenas variáveis de entrada.
  • C) Ignorar usos repetidos.
  • D) Substituir o critério All-defs.

2025

Questão 2

No teste de fluxo de dados, o critério All-uses busca:

  • A) Testar todas as variáveis sem redefinições.
  • B) Validar apenas variáveis de entrada.
  • C) Ignorar usos repetidos.
  • D) Substituir o critério All-defs.

Comentário: O All-uses analisa todas as associações possíveis entre definição e uso de variáveis, garantindo que não haja redefinições no caminho.

2025

Questão 3

O teste de caminho básico tem como foco:

  • A) Testar todos os caminhos independentes do código.
  • B) Executar todos os loops exaustivamente.
  • C) Avaliar o sistema sem código.
  • D) Testar apenas interfaces.

2025

Questão 3

O teste de caminho básico tem como foco:

  • A) Testar todos os caminhos independentes do código.
  • B) Executar todos os loops exaustivamente.
  • C) Avaliar o sistema sem código.
  • D) Testar apenas interfaces.

Comentário: Essa técnica reduz o número de testes garantindo cobertura mínima de todos os caminhos lógicos.

2025

Questão 4

Durante uma inspeção, o moderador é responsável por:

  • A) Apresentar o código.
  • B) Conduzir o processo e garantir as etapas.
  • C) Corrigir defeitos.
  • D) Escrever o artefato.

2025

Questão 4

Durante uma inspeção, o moderador é responsável por:

  • A) Apresentar o código.
  • B) Conduzir o processo e garantir as etapas.
  • C) Corrigir defeitos.
  • D) Escrever o artefato.

Comentário: O moderador é o facilitador da reunião, garantindo que o processo siga as normas da inspeção.

2025

Questão 5

O TBM gera casos de teste a partir de:

  • A) Experimentos manuais.
  • B) Modelos formais do comportamento.
  • C) Dados de entrada aleatórios.
  • D) Scripts de automação.

2025

Questão 5

O TBM gera casos de teste a partir de:

  • A) Experimentos manuais.
  • B) Modelos formais do comportamento.
  • C) Dados de entrada aleatórios.
  • D) Scripts de automação.

Comentário: No Teste Baseado em Modelo, o sistema é representado por um modelo (FSM, tabelas, fluxos), e os casos de teste são derivados automaticamente.

2025

Questão 6

A inspeção de software é considerada uma técnica:

  • A) Dinâmica, pois executa o código.
  • B) Estática, pois não requer execução do código.
  • C) Estatística, pois usa métricas probabilísticas.
  • D) Experimental, pois requer testes em ambiente real.

2025

Questão 6

A inspeção de software é considerada uma técnica:

  • A) Dinâmica, pois executa o código.
  • B) Estática, pois não requer execução do código.
  • C) Estatística, pois usa métricas probabilísticas.
  • D) Experimental, pois requer testes em ambiente real.

Comentário: Inspeções são parte dos testes estáticos, onde o código é analisado sem execução.

2025

Questão 7

Uma limitação da inspeção de software é:

  • A) Detectar falhas de desempenho.
  • B) Substituir testes dinâmicos.
  • C) Não detectar erros que só aparecem em execução.
  • D) Avaliar tempo de resposta do sistema.

2025

Questão 7

Uma limitação da inspeção de software é:

  • A) Detectar falhas de desempenho.
  • B) Substituir testes dinâmicos.
  • C) Não detectar erros que só aparecem em execução.
  • D) Avaliar tempo de resposta do sistema.

Comentário: Inspeções identificam defeitos em artefatos, mas não em interações de tempo de execução.

2025

Questão 8

No Teste Baseado em Modelo, a tabela de decisão é ideal para:

  • A) Mapear o fluxo de dados.
  • B) Validar transições de estados.
  • C) Representar regras de negócio complexas (condições e ações).
  • D) Simular erros de execução.

2025

Questão 8

No Teste Baseado em Modelo, a tabela de decisão é ideal para:

  • A) Mapear o fluxo de dados.
  • B) Validar transições de estados.
  • C) Representar regras de negócio complexas (condições e ações).
  • D) Simular erros de execução.

Comentário: A tabela de decisão ajuda a visualizar combinações de condições e resultados possíveis.

2025

Questão 9

O modelo de fluxo de dados é usado para:

  • A) Simular regras de negócio.
  • B) Verificar integridade e rastreamento das informações processadas.
  • C) Gerar casos de teste manuais.
  • D) Medir desempenho do sistema.

2025

Questão 9

O modelo de fluxo de dados é usado para:

  • A) Simular regras de negócio.
  • B) Verificar integridade e rastreamento das informações processadas.
  • C) Gerar casos de teste manuais.
  • D) Medir desempenho do sistema.

Comentário: Esse modelo acompanha o ciclo das informações dentro do sistema e ajuda a detectar inconsistências.

2025

Questão 10

No processo do Teste Baseado em Modelo, definir que todas as transições devem ser testadas está relacionado à etapa de:

  • A) Criação do modelo.
  • B) Definição da cobertura.
  • C) Execução dos testes.
  • D) Análise dos resultados.

2025

Questão 10

No processo do Teste Baseado em Modelo, definir que todas as transições devem ser testadas está relacionado à etapa de:

  • A) Criação do modelo.
  • B) Definição da cobertura.
  • C) Execução dos testes.
  • D) Análise dos resultados.

Comentário: A etapa de definição da cobertura estabelece quais partes do modelo (estados, transições, condições) serão testadas.

2

Entradas relacionadas: