Pular para o conteúdo principal

Questão de Engenharia de Software — Teste de Software — FGV 2025

Engenharia de SoftwareTeste de Software
Código
fg108659
Banca
FGV
Órgão
DPE-RO
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas - Classe B
TDD é uma das práticas de programação propostas dentro do escopo das metodologias ágeis.Com relação aos objetivos propostos pelo TDD, analise os itens a seguir.I. Favorecer a escrita de códigos com alta testabilidade. Essa característica é uma consequência natural da manutenção do fluxo de trabalho proposta pela metodologia XP. Por exemplo, como o desenvolvedor sabe que ele terá que escrever a classe C e depois o teste T, é natural que desde o início ele planeje C de forma a facilitar a escrita de T.II. Prática relacionada não apenas com testes, mas também com a melhoria do design de um sistema. Isso acontece porque o desenvolvedor, coloca-se na posição de um usuário da classe C para escrever um teste T.III. Evitar que os desenvolvedores esqueçam de escrever testes. TDD promove testes à primeira atividade de qualquer tarefa de programação, seja ela corrigir um bug ou implementar o código de uma nova funcionalidade.Está correto o que se afirma em:
  1. AI, apenas.
  2. BIII, apenas.
  3. CI e II, apenas.
  4. DII e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoB — III, apenas.

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”.

TDD – Test Driven Development

Gabarito: letra B. Apenas o item III está correto. O item I descreve a ordem inversa da prática de TDD; o item II contém imprecisão quanto ao momento da escrita dos testes.

  1. 1Escrever teste que falha
  2. 2Escrever código mínimo
  3. 3Refatorar código
LEVEL · soulevel.com.br

Item I — ❌ Incorreto

O TDD estabelece que o teste deve ser escrito antes do código de produção. O item afirma que o desenvolvedor escreveria a classe C e depois o teste T, o que é o oposto do ciclo TDD (Red-Green-Refactor). Portanto, a afirmação de que o TDD "favorece a escrita de códigos com alta testabilidade" é verdadeira, mas a justificativa apresentada está errada, tornando o item como um todo incorreto.

Conteúdo de apoio: O TDD implica escrever o código de teste antes do código de produção, um teste de cada vez, tendo certeza de que o teste falha antes de escrever o código que irá fazê-lo passar.

Item II — ❌ Incorreto

Embora o TDD realmente contribua para a melhoria do design (pois força o desenvolvedor a pensar na interface antes da implementação), a descrição do item é imprecisa. O desenvolvedor não se coloca na posição de "usuário da classe C" porque a classe C ainda não existe – ele escreve o teste para uma classe que será criada. Além disso, a afirmação de que a prática "está relacionada não apenas com testes" é verdadeira, mas o enunciado como um todo foi considerado incorreto pela banca, provavelmente pela imprecisão conceitual.

Item III — ✅ Correta ⟵ GABARITO

O TDD define que a primeira atividade de qualquer tarefa de programação (nova funcionalidade ou correção de bug) é escrever um teste automatizado que falhe. Isso garante que os testes não sejam esquecidos e que o código produza o comportamento esperado.

Gabarito: letra B (apenas o item III está correto).

Link permanente: /questoes/fg108659