Pular para o conteúdo principal

Questão de Engenharia de Software — Processos de Software - Desenvolvimento Ágil — CESPE / CEBRASPE 2023

Engenharia de SoftwareProcessos de Software - Desenvolvimento Ágil
Código
ce154646
Banca
CESPE / CEBRASPE
Órgão
EMPREL
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas
Ao adotar uma prática ágil para a criação de um software, seu desenvolvedor optou pela implementação com qualidade de uma funcionalidade do sistema; para isso, escreveu um caso de teste automatizado, com base nos requisitos especificados, e realizou testes de unidade em uma linguagem similar à usada no desenvolvimento da funcionalidade.Da situação hipotética precedente infere-se que a prática adotada pelo desenvolvedor está associada ao
  1. Adesenvolvimento orientado por comportamento (BDD).
  2. Bgerenciamento de produtos com Scrum.
  3. Cdesenvolvimento guiado por testes (TDD).
  4. Ddesenvolvimento guiado por testes de aceitação (ATDD).
  5. Egerenciamento de produtos com Kanban.
Revelar gabarito e comentário

GabaritoC — desenvolvimento guiado por testes (TDD).

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

Práticas ágeis – Test-Driven Development (TDD)

Gabarito: letra C. A descrição da conduta do desenvolvedor – escrever um caso de teste automatizado com base nos requisitos e depois realizar testes de unidade em linguagem similar à da funcionalidade – corresponde exatamente ao ciclo do Test-Driven Development (TDD): escrever o teste antes do código, ver falhar, implementar o código e refatorar. TDD é uma prática técnica do desenvolvimento ágil, originada da Programação Extrema (XP), e não um framework de gerenciamento como Scrum ou Kanban.

O enunciado coloca o foco no ato de criar o teste antes da implementação e na execução de testes de unidade. Cada alternativa deve ser contrastada com essas duas características centrais.

Prática Ágil

Característica Central

Foco do Teste

Relação com o Enunciado

TDD (Test-Driven Development)

Escrever teste de unidade antes do código

Teste de unidade (código)

✅ O desenvolvedor escreveu teste automatizado antes da implementação e realizou testes de unidade.

BDD (Behavior-Driven Development)

Descrever comportamento em linguagem natural (Gherkin)

Teste de aceitação (comportamento)

❌ Não menciona linguagem natural ou cenários de comportamento.

ATDD (Acceptance Test-Driven Development)

Testes de aceitação escritos com o cliente

Teste de aceitação (funcionalidade completa)

❌ Foco em testes de unidade, não em testes de aceitação.

Scrum

Framework de gerenciamento (papéis, eventos, artefatos)

Não define técnica de codificação

❌ É prática de engenharia, não de gerenciamento.

Kanban

Gerenciamento visual de fluxo de trabalho

Não define técnica de codificação

❌ É prática de gerenciamento, não de engenharia.

  1. 1Escrever teste
  2. 2Ver falhar
  3. 3Implementar código
  4. 4Refatorar
LEVEL · soulevel.com.br

Alternativa A – ❌ Incorreta

O Behavior-Driven Development (BDD) é uma evolução do TDD que utiliza linguagem natural (ex.: Gherkin) para descrever comportamentos esperados, geralmente em testes de aceitação. A descrição não menciona cenários em linguagem natural, nem testes de aceitação; o foco em testes de unidade e em uma linguagem similar à de desenvolvimento aponta para TDD, não BDD.

Alternativa B – ❌ Incorreta

Scrum é um framework de gerenciamento de projetos ágeis, que define papéis, eventos e artefatos. Não prescreve uma técnica específica de codificação ou testes. A atividade narrada é uma prática de engenharia de software, não um ritual do Scrum (como Sprint Planning, Daily Scrum, etc.).

Alternativa C – ✅ Correta ⟵ GABARITO

O Test-Driven Development (TDD) tem como premissa escrever primeiro um teste automatizado (de unidade, tipicamente) que expressa o requisito, depois implementar o código mínimo para passar no teste e, por fim, refatorar. Tudo isso é exatamente o que o desenvolvedor fez: "escreveu um caso de teste automatizado, com base nos requisitos especificados, e realizou testes de unidade". É a resposta direta e mais específica.

Alternativa D – ❌ Incorreta

O Acceptance Test-Driven Development (ATDD) foca em testes de aceitação escritos em colaboração com o cliente, geralmente em nível de sistema ou funcionalidades completas. Embora também use testes automatizados, o enunciado destaca testes de unidade (nível mais baixo) e não menciona envolvimento do cliente ou critérios de aceitação. O ATDD é mais amplo e voltado à validação de histórias de usuário.

Alternativa E – ❌ Incorreta

Kanban é um método de gerenciamento de fluxo de trabalho, visualizado por um quadro, que busca otimizar a entrega contínua. Não define práticas de codificação ou teste; é uma abordagem de gestão, não uma técnica de desenvolvimento. A atividade descrita é puramente técnica, não gerencial.


PEGA ESSA DICA!

Para diferenciar TDD, ATDD e BDD, lembre-se: TDD → testes de unidade escritos pelo desenvolvedor antes do código; ATDD → testes de aceitação escritos colaborativamente antes da implementação; BDD → cenários em linguagem natural que guiam o desenvolvimento. No enunciado, a palavra "teste de unidade" é a chave para eliminar ATDD e BDD.

Gabarito: letra C

Link permanente: /questoes/ce154646