Questão nº 29
Questão de Engenharia de Software, DevOps e Ciência de Dados · FCC MPEPE 2018 (nº 29)
FCC2018Analista Ministerial - Área InformáticaEngenharia de Software, DevOps e Ciência de Dados
Gabarito: Bver comentário ↓
Um Analista está trabalhando em um projeto de desenvolvimento de software utilizando o método Extreme Programming (XP) e executando testes com base no ciclo definido no Test-Driven Development (TDD). Nesse ciclo,
- Ao código de programa é escrito e depois é submetido aos testes.
- Bo teste escrito inicialmente falhará porque o código ainda não foi desenvolvido. (alternativa correta)
- Cprimeiro se escreve o teste de aceitação para depois escrever o código correspondente.
- Do código é considerado concluído assim que passa no primeiro teste.
- Ecada teste engloba um conjunto de requisitos funcionais e/ou não funcionais.
Resposta comentada
Gabarito Alternativa B
O Test-Driven Development (TDD) é uma prática onde você escreve um teste automatizado para uma pequena funcionalidade antes de escrever o código que a implementa. O ciclo principal do TDD é "Red-Green-Refactor" (Vermelho-Verde-Refatorar).
- (A) Incorreta: Esta é a abordagem tradicional, onde o código é escrito primeiro e os testes vêm depois para verificá-lo, o que é o oposto da filosofia "test-first" do TDD.
- (B) Correta: No ciclo TDD, o primeiro passo é escrever um teste para uma funcionalidade que ainda não existe ou está incompleta. Consequentemente, esse teste deve falhar (fase "Red"), sinalizando que o código correspondente precisa ser desenvolvido.
- (C) Incorreta: Embora testes de aceitação sejam importantes em XP e possam ser escritos primeiro para guiar o desenvolvimento, o ciclo específico do TDD foca em escrever testes de unidade (pequenos e isolados) antes do código de produção. Testes de aceitação são de nível mais alto.
- (D) Incorreta: O código não é considerado concluído apenas por passar no primeiro teste. Após o teste passar (fase "Green"), o código ainda precisa ser refatorado (fase "Refactor") para melhorar sua qualidade e design, garantindo que o teste continue passando.
- (E) Incorreta: No TDD, cada teste é projetado para verificar uma única e pequena unidade de funcionalidade ou um comportamento específico, não um conjunto amplo de requisitos. Isso garante testes mais focados e fáceis de depurar.
Fonte: FCC MPEPE 2018 Analista Ministerial - Área Informática (Caderno Tipo 1). Reproduzida para fins de estudo.