Logo Passei Direto
Material
Study with thousands of resources!

Text Material Preview

TDD (Test Driven Development)
O que e TDD (Test Driven Development)?
a) Uma tecnica de desenvolvimento de software onde os testes sao escritos apos o codigo ser
implementado
b) Uma pratica de desenvolvimento agil onde os testes sao escritos antes do codigo
c) Uma metodologia que foca apenas em testes manuais
d) Um modelo de gestao de projetos que prioriza os testes de desempenho
Resposta correta: b)
Explicacao: TDD (Test Driven Development) e uma pratica de desenvolvimento de software onde
os testes sao escritos antes da implementacao do codigo, com o objetivo de garantir que o codigo
atenda aos requisitos desde o inicio.
Qual das seguintes afirmativas e uma das principais vantagens do TDD?
a) Aumenta o tempo de desenvolvimento, mas reduz o custo de manutencao
b) A diminuicao dos testes manuais no processo de desenvolvimento
c) Reduz a quantidade de codigo necessario para a solucao
d) Melhora a qualidade do codigo e ajuda na deteccao precoce de erros
Resposta correta: d)
Explicacao: O TDD ajuda a melhorar a qualidade do codigo, pois promove a escrita de testes antes
do codigo e garante que o sistema seja testado durante todo o processo de desenvolvimento, o que
ajuda a identificar erros precocemente.
Qual e a sequencia correta de etapas no ciclo do TDD?
a) Escrever o codigo, rodar os testes, refatorar o codigo
b) Escrever o teste, escrever o codigo, rodar os testes, refatorar o codigo
c) Refatorar o codigo, escrever o teste, rodar os testes
d) Escrever o codigo, refatorar o codigo, rodar os testes
Resposta correta: b)
Explicacao: No ciclo do TDD, a sequencia correta e escrever o teste primeiro, depois escrever o
codigo para que o teste passe, rodar os testes para garantir que o codigo funcione corretamente e,
por fim, refatorar o codigo para melhorar sua estrutura.
No contexto do TDD, o que significa refatorar?
a) Escrever testes mais especificos e detalhados
b) Reescrever o codigo de forma a melhorar sua estrutura, mantendo o comportamento inalterado
c) Apagar codigo redundante que nao e mais necessario
d) Ajustar os testes para que se adaptem melhor ao codigo
Resposta correta: b)
Explicacao: Refatorar no TDD significa melhorar a estrutura do codigo sem alterar seu
comportamento, com o objetivo de tornar o codigo mais limpo, legivel e eficiente.
Qual e a principal funcao dos testes no TDD?
a) Validar se o codigo atende aos requisitos apos sua implementacao
b) Garantir que o codigo funciona corretamente, sem a necessidade de testar manualmente
c) Garantir que o codigo foi escrito sem erros de sintaxe
d) Verificar a compatibilidade do codigo com diferentes ambientes de desenvolvimento
Resposta correta: b)
Explicacao: A principal funcao dos testes no TDD e garantir que o codigo atenda aos requisitos e
funcione corretamente desde o inicio, evitando a necessidade de testes manuais e diminuindo a
probabilidade de introduzir erros no sistema.
Como o TDD ajuda na manutencao do codigo a longo prazo?
a) Facilita a reescrita do codigo
b) Melhora a cobertura de testes, o que torna mais facil modificar e manter o codigo
c) Impede que o codigo seja alterado sem a execucao de testes
d) Reduz a quantidade de testes, tornando o processo mais rapido
Resposta correta: b)
Explicacao: O TDD melhora a cobertura de testes, tornando mais facil modificar e manter o codigo
a longo prazo. Como o codigo e sempre acompanhado de testes, qualquer alteracao pode ser
validada rapidamente para garantir que nao introduza erros.
Quais sao as "tres leis do TDD" que guiam o processo de desenvolvimento?
a) Escrever codigo, refatorar, testar
b) Escrever codigo, corrigir erros, documentar
c) Focar em pequenos testes, escrever codigo simples, refatorar constantemente
d) Reduzir a quantidade de codigo, evitar refatoracao, escrever testes complexos
Resposta correta: c)
Explicacao: As tres leis do TDD sao: escrever pequenos testes, garantir que o codigo seja simples
e o mais direto possivel e refatorar constantemente para manter a qualidade do codigo.
O que acontece se um teste falhar no TDD?
a) O codigo e refatorado imediatamente
b) O codigo e considerado correto, pois o teste nao e mais necessario
c) O codigo e alterado para corrigir o erro e o teste e reexecutado ate passar
d) O teste e removido e o processo e reiniciado
Resposta correta: c)
Explicacao: Quando um teste falha, o codigo deve ser alterado ate que o erro seja corrigido. O teste
e reexecutado ate que passe, garantindo que o codigo atenda ao que foi especificado.
O TDD pode ser usado em qualquer linguagem de programacao?
a) Nao, ele so pode ser usado em linguagens de baixo nivel
b) Nao, ele e exclusivo de linguagens orientadas a objetos
c) Sim, desde que existam frameworks de testes compativeis com a linguagem
d) Sim, mas apenas em linguagens de programacao modernas
Resposta correta: c)
Explicacao: O TDD pode ser usado em qualquer linguagem de programacao, desde que existam
frameworks de teste compativeis com a linguagem, como JUnit para Java, PyTest para Python,
entre outros.
Qual das alternativas descreve corretamente a abordagem do TDD em relacao ao desenvolvimento
agil?
a) O TDD e uma abordagem rigida e nao se adapta bem a mudancas rapidas
b) O TDD e uma tecnica que complementa o desenvolvimento agil ao garantir que o codigo seja
sempre testado
c) O TDD nao e compativel com metodologias ageis
d) O TDD impede que o codigo seja alterado durante o desenvolvimento agil
Resposta correta: b)
Explicacao: O TDD complementa o desenvolvimento agil, pois assegura que o codigo seja testado
continuamente. Isso ajuda a manter a qualidade do codigo, mesmo com as mudancas rapidas
caracteristicas das metodologias ageis.
Em TDD, qual e o objetivo de escrever um teste que falha?
a) Garantir que o codigo falhe inicialmente, para que a solucao seja mais simples
b) Validar que a estrutura do codigo esta correta
c) Verificar se o teste esta cobrindo todos os cenarios possiveis
d) Definir um ponto de partida claro para a implementacao do codigo
Resposta correta: d)
Explicacao: Escrever um teste que falha no inicio tem como objetivo definir um ponto de partida
claro para a implementacao do codigo, ou seja, o teste define a funcionalidade que deve ser
implementada.
Qual e o papel do "mocking" no TDD?
a) Simular o comportamento de partes do sistema que ainda nao foram implementadas ou nao
estao prontas para testes
b) Criar um codigo substituto para o sistema principal durante o desenvolvimento
c) Refatorar o codigo automaticamente
d) Fazer o codigo rodar em diferentes sistemas operacionais
Resposta correta: a)
Explicacao: O "mocking" no TDD e uma tecnica usada para simular o comportamento de partes do
sistema que ainda nao foram implementadas ou que nao estao prontas para serem testadas. Isso
permite que os testes sejam realizados sem a dependencia de componentes externos.
O que significa a frase "Red, Green, Refactor" no contexto do TDD?
a) Escrever um codigo ineficiente, otimizar e refatorar
b) Escrever um teste, implementar codigo para fazer o teste passar, e refatorar o codigo
c) Escrever testes complexos, passar os testes, e refatorar o codigo
d) Definir testes de unidade, rodar os testes, e limpar o codigo
Resposta correta: b)
Explicacao: "Red, Green, Refactor" e o ciclo basico do TDD. Primeiro, escreve-se um teste (Red),
depois implementa-se o codigo para que o teste passe (Green), e finalmente refatora-se o codigo
para melhorar sua qualidade sem alterar o comportamento (Refactor).
O TDD e eficaz apenas para testes unitarios?
a) Sim, pois o TDD se concentra apenas em testes unitarios
b) Nao, o TDD pode ser utilizado para diferentes tipos de testes, como testes de integracao
c) Sim, mas com a ajuda de outras ferramentas de teste
d) Nao, pois TDD so e aplicavel a pequenos testes de funcionalidade
Resposta correta: b)
Explicacao: Embora o TDD seja mais comumente usado para testes unitarios, ele tambem pode ser
aplicado para outros tipos de testes, como testes deintegracao, garantindo que diferentes partes
do sistema interajam corretamente.
Qual a relacao entre o TDD e o codigo legivel e manutenivel?
a) O TDD cria codigo complexo e dificil de entender
b) O TDD contribui para um codigo mais legivel e manutenivel, pois cada parte do codigo e escrita
para passar testes especificos
c) O TDD nao tem impacto sobre a legibilidade ou manutencao do codigo
d) O TDD enfoca a criacao de codigo sem se preocupar com legibilidade
Resposta correta: b)
Explicacao: O TDD contribui para a criacao de um codigo mais legivel e man