Pular para o conteúdo principal

Questão de Engenharia de Software — Conceitos e Tipos de Testes de Software — INSTITUTO AOCP 2023

Engenharia de SoftwareConceitos e Tipos de Testes de Software
Código
qa541455
Banca
INSTITUTO AOCP
Órgão
MPE MS
Ano
2023
Cargo
Ana ( )
Dentre as alternativas a seguir, assinale a que apresenta um teste de análise de vulnerabilidades em aplicações, enviando entradas inválidas de maneira automatizada para identificação de erros ou comportamento inesperado.
  1. AFuzzing.
  2. BSAST.
  3. CFagan.
  4. DRegression.
  5. EAsset tagging.
Revelar gabarito e comentário

GabaritoA — Fuzzing.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Teste de Software: Fuzzing e Análise de Vulnerabilidades

Gabarito: letra A. O fuzzing é a técnica de teste que envia entradas inválidas, inesperadas ou aleatórias de forma automatizada para uma aplicação, com o objetivo de identificar erros, crashes ou comportamentos inesperados — exatamente o que o enunciado descreve. As demais alternativas (SAST, Fagan, Regression e Asset tagging) referem-se a outros conceitos da engenharia de software e segurança, que serão detalhados a seguir.

O fuzzing (ou fuzz testing) é uma técnica de teste de software amplamente utilizada na área de segurança. Seu princípio é simples: em vez de testar apenas com entradas válidas e esperadas, o testador (ou a ferramenta automatizada) submete o programa a uma grande quantidade de dados malformados, aleatórios ou inesperados — como strings gigantes, caracteres especiais, números negativos, valores fora de faixa, etc. O objetivo é forçar o software a se comportar de maneira anormal, revelando falhas como estouros de buffer, vazamentos de memória, exceções não tratadas ou até mesmo vulnerabilidades exploráveis. É uma técnica de caixa-preta, pois não exige acesso ao código-fonte, e é especialmente valiosa para descobrir bugs que não seriam encontrados por testes convencionais.

A relação do fuzzing com a análise de vulnerabilidades é direta: ao enviar entradas inválidas de forma automatizada, o fuzzer busca identificar pontos de falha que possam ser explorados por um atacante. Por isso, é uma ferramenta essencial no arsenal de segurança de aplicações, complementando outras técnicas como a análise estática (SAST) e a análise dinâmica (DAST). Enquanto o SAST analisa o código-fonte em busca de padrões de vulnerabilidade sem executá-lo, o fuzzing executa a aplicação e observa seu comportamento diante de entradas hostis — uma abordagem dinâmica e empírica.

Para entender a questão, é fundamental distinguir os conceitos apresentados nas alternativas. O SAST (Static Application Security Testing) é uma análise estática que examina o código-fonte, bytecode ou binário em busca de vulnerabilidades conhecidas, sem executar o programa. O teste de regressão, por sua vez, é uma técnica que reexecuta testes já aplicados em versões anteriores do software para garantir que novas alterações não introduziram defeitos em funcionalidades previamente testadas. O termo "Fagan" refere-se à inspeção de software, um processo formal de revisão estática do código ou documentação, conduzido por uma equipe para encontrar defeitos. Já "asset tagging" é um conceito de gestão de ativos, que consiste em etiquetar e catalogar recursos (hardware, software, dados) para fins de inventário e controle — não é um tipo de teste de software.

A pegadinha desta questão está em confundir o fuzzing com outras técnicas de segurança ou teste. O candidato pode associar "análise de vulnerabilidades" ao SAST, mas o SAST é estático e não envolve envio de entradas. O fuzzing, por outro lado, é dinâmico e exatamente o que o enunciado descreve: envio automatizado de entradas inválidas para identificar erros ou comportamento inesperado. Guarde essa distinção: estático (SAST) vs. dinâmico (fuzzing/DAST).

Testes de software
  • 1Dinâmicos (executam a aplicação)
    • Fuzzing
      • Envia entradas inválidas/aleatórias
      • Identifica erros e crashes
      • Análise de vulnerabilidades
    • Regressão
      • Reexecuta testes anteriores
      • Verifica se mudanças quebraram algo
  • 2Estáticos (não executam)
    • SAST
      • Examina código-fonte/bytecode
      • Busca vulnerabilidades conhecidas
    • Fagan
      • Inspeção formal por equipe
      • Revisão manual do código
  • 3Gestão de ativos
    • Asset tagging
      • Etiqueta e cataloga recursos
      • Inventário e controle
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O fuzzing é a técnica que envia entradas inválidas, inesperadas ou aleatórias de forma automatizada para uma aplicação, com o objetivo de identificar erros, crashes ou comportamentos inesperados. É uma técnica de caixa-preta, dinâmica, amplamente usada na análise de vulnerabilidades. O enunciado descreve exatamente essa prática: "enviando entradas inválidas de maneira automatizada para identificação de erros ou comportamento inesperado".

Alternativa B — ❌ Incorreta

SAST (Static Application Security Testing) é uma análise estática que examina o código-fonte, bytecode ou binário em busca de vulnerabilidades conhecidas, sem executar o programa. Não envolve envio de entradas inválidas nem execução da aplicação. O candidato pode confundir "análise de vulnerabilidades" com SAST, mas a descrição do enunciado (envio automatizado de entradas) aponta para uma técnica dinâmica, não estática.

Alternativa C — ❌ Incorreta

Fagan refere-se à inspeção de software, um processo formal de revisão estática do código ou documentação, conduzido por uma equipe para encontrar defeitos. Não é uma técnica automatizada de envio de entradas inválidas. É uma revisão manual e estruturada, não um teste dinâmico.

Alternativa D — ❌ Incorreta

O teste de regressão é uma técnica que reexecuta testes já aplicados em versões anteriores do software para garantir que novas alterações não introduziram defeitos em funcionalidades previamente testadas. Não envolve envio de entradas inválidas nem análise de vulnerabilidades. O foco é verificar se mudanças recentes não quebraram funcionalidades existentes.

Alternativa E — ❌ Incorreta

Asset tagging é um conceito de gestão de ativos, que consiste em etiquetar e catalogar recursos (hardware, software, dados) para fins de inventário e controle. Não é um tipo de teste de software nem está relacionado à análise de vulnerabilidades. É um termo da área de governança e gestão de TI.

NÃO CAIA NESSA!

A banca explora a confusão entre técnicas de segurança estáticas e dinâmicas. O candidato pode associar "análise de vulnerabilidades" ao SAST (alternativa B), mas o SAST é estático e não envolve envio de entradas. O fuzzing é dinâmico e exatamente o que o enunciado descreve. Lembre-se: estático (SAST) analisa o código sem executar; dinâmico (fuzzing/DAST) executa e observa o comportamento.

PEGA ESSA DICA!

Para diferenciar na prova, foque nas palavras-chave do enunciado: "enviando entradas inválidas" e "automatizada" apontam diretamente para fuzzing. Se a questão mencionar "análise do código-fonte" ou "antes da execução", pense em SAST. Se mencionar "simular ataques" ou "aplicação em execução", pense em DAST ou fuzzing.

Gabarito: letra A.

Link permanente: /questoes/qa541455