TDD: A abordagem orientada a testes (questões de concursos)


O Desenvolvimento Orientado a Testes (TDD) é uma metodologia de desenvolvimento de software que coloca os testes no centro do processo de codificação.

O Desenvolvimento Orientado a Testes (TDD) é uma metodologia de desenvolvimento de software que coloca os testes no centro do processo de codificação. Consiste em um ciclo iterativo de curto prazo, no qual os testes são escritos antes do código de produção. Esse ciclo segue uma sequência de passos: escrever um teste que inicialmente falhe, implementar o código mínimo necessário para passar no teste e, por fim, refatorar o código para melhorar sua estrutura, mantendo os testes funcionando.

Escrevi um artigo no blog do Gran Cursos sobre o tema:

TDD: A abordagem orientada a testes

Depois da leitura do artigo, volte aqui para resolvermos questões sobre o assunto.

Questões de concursos

[UFSCAR 2023 UFSCAR – Analista de Tecnologia da Informação] Sobre Integração Contínua e a metodologia Test Driven Development (TDD), é correto afirmar:

  • [A] A integração contínua é muito importante em equipes que aplicam TDD, pois os desenvolvedores devem estar alinhados e a integração entre eles garante o bom funcionamento do time.
  • [B] Ambas são importantes para entregas ágeis e com qualidade, mas não devem ser utilizadas em conjunto, pois podem causar sobrecarga na equipe.
  • [C] A integração contínua tem como pré-requisito a automação de tarefas como a realização de testes de aceitação. Dessa forma, a utilização de TDD é dispensável.
  • [D] No TDD, o desenvolvedor deve analisar os requisitos e implementar os testes antes de implementar os requisitos em si. De certa forma, o TDD pode causar atrasos no processo de desenvolvimento, pois é praticamente impossível desenvolver testes sem o software pronto.
  • [E] Ambas podem ser utilizadas em ambientes que utilizam metodologias ágeis, pois visam, por exemplo, automação de tarefas e melhoria na qualidade do produto entregue.

Comentários:

Letra A: ERRADO.

  • A integração contínua é importante em equipes que aplicam TDD, mas esta afirmação não é completamente precisa. A IC garante que as alterações de código de vários desenvolvedores sejam integradas frequentemente para evitar conflitos. Embora seja relevante para equipes que utilizam TDD, não é o único motivo para sua importância.

Letra B: ERRADO.

  • Na verdade, IC e TDD são frequentemente utilizadas em conjunto em práticas de desenvolvimento de software ágil para promover entregas frequentes e com qualidade.

Letra C: ERRADO.

  • Embora a IC se beneficie da automação de tarefas, o TDD não é dispensável. O TDD enfatiza a criação de testes antes da implementação do código, enquanto a IC se concentra na integração frequente do código.

Letra D: ERRADO.

  • No TDD, o ciclo é criar testes antes de escrever o código de produção. Embora possa parecer um atraso inicial, a prática tende a melhorar a qualidade do código e reduzir a necessidade de revisões extensivas, o que pode economizar tempo a longo prazo.

Letra E: CERTO.

  • Tanto a Integração Contínua quanto o Test Driven Development são práticas valiosas em ambientes ágeis, pois buscam melhorar a automação, qualidade e entrega contínua de software.

[FGV 2023 Banco do Brasil – Analista Tecnológico] O desenvolvimento orientado a testes (TDD) é um processo que se baseia na repetição em ciclos de desenvolvimento curtos. Ele é baseado no conceito test-first oriundo da programação extrema (XP) que incentiva o design simples com alto nível de confiança.

O procedimento que conduz este ciclo é denominado

  • [A] refatoração vermelho-verde.
  • [B] documentação executável.
  • [C] testes da caixa-branca.
  • [D] testes da caixa-preta.
  • [E] mocking up.

Comentários:

A opção correta, de acordo com a descrição dada, é a [A] refatoração vermelho-verde.

A refatoração vermelho-verde é a essência do ciclo de TDD. Esse ciclo é representado pelos seguintes estágios:

  • Vermelho:
    • Onde um teste é escrito e falha inicialmente (indicando um teste negativo);
  • Verde:
    • Onde o código de produção é escrito para fazer o teste passar (indicando um teste positivo); e
  • Refatoração:
    • Onde o código é aprimorado sem alterar o comportamento funcional, mantendo os testes passando.

É chamado de “vermelho-verde” por conta da mudança de estado do teste, inicialmente falhando (vermelho) e, depois, passando com sucesso (verde).

Portanto, a opção correta que conduz o ciclo de Desenvolvimento Orientado a Testes (TDD) é [A] refatoração vermelho-verde.

Espero que gostem do conteúdo e desejo que se preparem conosco durante essa jornada na conquista de uma tão sonhada vaguinha em um concurso público.

É isso aí, galera.
[]’s e até a próxima.
——————————————
Rogerão Araújo
@profRogeraoAraujo

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.