Com relação às metodologias ágeis de desenvolvimento, julgue...
Ao realizar o TDD (test-driven development), o programador é conduzido a pensar em decisões de design antes de pensar em código de implementação, o que cria um maior acoplamento, uma vez que seu objetivo é pensar na lógica e nas responsabilidades de cada classe.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é E - errado.
Vamos analisar o processo conhecido como TDD, ou Test-Driven Development, que é uma técnica de desenvolvimento de software que envolve a criação de testes antes do desenvolvimento do código propriamente dito. Neste método, o desenvolvedor escreve um teste que falha inicialmente, pois o código correspondente ainda não foi implementado. Em seguida, escreve-se o código mínimo necessário para passar no teste e, depois disso, refatora-se o código para melhorar a qualidade e a estrutura, mantendo sua funcionalidade.
Uma das principais vantagens do TDD é que ele promove um design mais limpo e desacoplado. Isso ocorre porque, ao pensar em como testar uma funcionalidade antes de sua implementação, o desenvolvedor é encorajado a pensar em interfaces claras e responsabilidades bem definidas para cada classe ou módulo, facilitando a escrita dos testes. Além disso, a necessidade de escrever testes que possam ser executados rapidamente e de maneira isolada leva a um menor acoplamento entre as classes, pois dependências complicadas tornam os testes mais difíceis de escrever e manter.
Portanto, a afirmação de que o TDD cria um maior acoplamento está equivocada. Na verdade, TDD tende a resultar em um menor acoplamento e um design mais coeso, já que o desenvolvedor precisa considerar a testabilidade do código desde o início, o que geralmente leva a uma melhor arquitetura de software. Por isso, a afirmação proposta no enunciado da questão não está correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
No TDD o foco é no objetivo final.
Por isso primeiro cria-se o teste, pois o teste é quem diz se o objetivo foi ou não alcançado, depois cria-se o código para que ele passe no teste. Essa questão do maior ou menor acoplamento diz respeito ao código em si, que não é o foco do TDD.
meeeenoss acoplamento
vc é forçado a pensar de um modo mais egoísta, tendendo a usar sempre injeção de dependências
E discordo da minha colega quase parente Janete Lacerda
O TDD tem TUUUUUUDDDDOO a ver com acoplamento e coesão.
Na verdade ele é muito mais uma técnica de Design do que de testes
recomendo a todos a leitura deste artigo
http://blog.caelum.com.br/tdd-e-sua-influencia-no-acoplamento-e-coesao/
http://blog.caelum.com.br/orientacao-a-objetos-uma-outra-perspectiva-sobre-o-acoplamento/
http://www.univale.com.br/unisite/mundo-j/artigos/41Testes.pdf
http://blog.caelum.com.br/mais-uma-vez-tdd-nao-e-bala-de-prata/
A própria questão já auxilia para a conclusão da questão:
quando o examinador coloca que o desenvolvedor é conduzido a pensar em decisões de design antes de pensar em código de implementação. Quando se projeta um software, a tendência é fazê-lo com o que tiver de melhor no mundo; não se pára pra projetar e fazer de qualquer jeito.
Portanto, o examinador diz que: é conduzido a pensar em decisões de design, ou seja, a fazer o melhor, então não se pode projetar algo com maior acoplamento. É uma contradição.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo