Questão de Engenharia de Software — Teste de Software — FUNDATEC 2024
Engenharia de Software›Teste de Software
Código
qg164382
Banca
FUNDATEC
Órgão
IF Sul - MG
Ano
2024
Nível
Superior
Cargo
Professor do Ensino Básico, técnico e Tecnológico: MCH-02 - Informática
Analise o diagrama abaixo:Qual é o processo representado no diagrama acima?
ADesenvolvimento por lançamentos (releases).
BDesenvolvimento dirigido por testes.
CDesenvolvimento com base em requisitos.
DDesenvolvimento orientado a falhas.
EDesenvolvimento com foco em testes de aceitação.
Revelar gabarito e comentário▾
GabaritoB — Desenvolvimento dirigido por testes.
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”.
Desenvolvimento Dirigido por Testes (TDD)
Gabarito: letra B. O diagrama representa o ciclo do Desenvolvimento Dirigido por Testes (TDD), no qual se escreve primeiro um teste que falha, depois o código mínimo para fazê-lo passar e, por fim, refatora-se o código — repetindo o ciclo continuamente. Essa é a essência do TDD, uma prática ágil que inverte a ordem tradicional: o teste é escrito antes do código de produção.
O Desenvolvimento Dirigido por Testes (TDD, do inglês Test-Driven Development) é uma técnica de desenvolvimento de software que integra a criação de testes ao processo de codificação, em vez de deixá-los para o final. O ciclo é conhecido como Red-Green-Refactor: primeiro escreve-se um teste automatizado que falha (Red), porque a funcionalidade ainda não existe; depois implementa-se o código mínimo necessário para que o teste passe (Green); e, por fim, refatora-se o código, melhorando sua estrutura sem alterar o comportamento. Esse ciclo se repete para cada nova funcionalidade, garantindo que o código esteja sempre testado e que as mudanças não quebrem o que já funciona.
A lógica por trás do TDD é dupla: (1) forçar o desenvolvedor a pensar nos requisitos e no comportamento esperado antes de codificar, o que melhora o design; e (2) criar uma suíte de testes de regressão que protege contra defeitos introduzidos por alterações futuras. É uma prática fortemente associada ao Extreme Programming (XP), uma metodologia ágil que valoriza testes frequentes e feedback rápido. No XP, o TDD é uma das práticas centrais, e a banca frequentemente cobra a ordem exata do ciclo: escrever o teste, vê-lo falhar, implementar o código, ver o teste passar e refatorar.
O diagrama da questão, portanto, mostra exatamente esse fluxo: uma seta que parte de "escrever um teste que falha", passa por "implementar o código para passar no teste", chega a "refatorar" e retorna ao início — um ciclo contínuo. É isso que distingue o TDD de outras abordagens, como o desenvolvimento por lançamentos (que foca em entregas incrementais), o desenvolvimento baseado em requisitos (que prioriza a especificação) ou o desenvolvimento orientado a falhas (que não é um termo consagrado).
A pegadinha da banca está em confundir o TDD com outras práticas que também envolvem testes, mas com foco diferente. O TDD é uma técnica de desenvolvimento, não um nível de teste (como o teste de aceitação) nem um modelo de processo (como o cascata). O diagrama mostra o ciclo de escrever teste → código → refatorar, que é a assinatura do TDD. Guarde essa sequência: é ela que separa a alternativa correta das demais.
1Escrever teste que falha
2Implementar código mínimo
3Refatorar código
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O desenvolvimento por lançamentos (releases) é uma estratégia de entrega incremental, na qual o software é disponibilizado em versões sucessivas, cada uma agregando funcionalidades. Não há relação com o ciclo de escrever testes antes do código. O diagrama não mostra entregas parciais nem versões; mostra um ciclo de teste-código-refatoração, típico do TDD.
Alternativa B — ✅ Correta ⟵ GABARITO
O diagrama representa exatamente o ciclo do Desenvolvimento Dirigido por Testes (TDD): escrever um teste que falha (Red), implementar o código mínimo para passar (Green) e refatorar (Refactor), repetindo o ciclo. Essa é a definição clássica do TDD, uma prática ágil que inverte a ordem tradicional de desenvolvimento, colocando os testes como guia da implementação.
Alternativa C — ❌ Incorreta
O desenvolvimento com base em requisitos é uma abordagem que prioriza a especificação e o levantamento de requisitos antes da codificação, mas não envolve necessariamente o ciclo de testes antes do código. O diagrama não mostra atividades de análise de requisitos; mostra um ciclo de teste-código-refatoração, que é a marca do TDD.
Alternativa D — ❌ Incorreta
"Desenvolvimento orientado a falhas" não é um termo consagrado na engenharia de software. Pode-se pensar em técnicas como fault injection (injeção de falhas) ou testes de robustez, mas não há um processo de desenvolvimento com esse nome. O diagrama não representa injeção de falhas; representa o ciclo de TDD, no qual o teste é escrito antes do código.
Alternativa E — ❌ Incorreta
O desenvolvimento com foco em testes de aceitação refere-se ao ATDD (Acceptance Test Driven Development), no qual os testes de aceitação são escritos antes da implementação, mas o foco está em validar se o sistema atende aos requisitos do cliente, não no ciclo de teste-código-refatoração do TDD. O diagrama não mostra testes de aceitação; mostra o ciclo de TDD, que é uma prática de desenvolvimento mais ampla.
PEGA ESSA DICA!
Para identificar o TDD em um diagrama, procure pelo ciclo Red-Green-Refactor: escrever um teste que falha → implementar o código mínimo → refatorar. Se o diagrama mostrar esse ciclo, a resposta é TDD. Se mostrar apenas etapas de teste em sequência (unidade, integração, sistema, aceitação), é um nível de teste, não TDD.