hoje fui questionado na empresa que eu trabalho, ao falar de TDD.
Escutei o seguinte:
"TDD vai morrer na literatura. Qual empresa você conhece que
implementa isso?". E eu fiquei sem saber responder, pois na realidade
nunca vi alguma empresa que adota essa regra na prática. Any??
Abs.,
--
Daniel C. Freire
Analista Desenvolvedor
MCP, MCTS - Web Applications 2.0
(31) 8467-2331
--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br
Aqui vai uma pesquisa do Dr Dobbs sobre o assunto (essa é de 2007 mas
se vc procurar deve achar mais recente)
http://www.drdobbs.com/architecture-and-design/200001986
- Rodrigo
2010/6/18 Daniel Freire <danie...@gmail.com>:
É pessoal!
existe um gap entre o mundo idéal e o mundo real!!!!
fui!
|




É bem verdade que não usar TDD certamente não significa que vc não utilize
Testes Unitários Automatizados, ou seja, podemos ter testes sem TDD.
Porém hoje, depois de experimentar TDD, penso que não faz mais sentido (pra
mim) escrever testes depois. TDD ajuda na comunicação e no Design da
Aplicação, é uma prática muito valiosa.
Na equipe que eu trabalho estamos começando a adotar TDD, aos poucos, e um
dos motivos que nos fez adotar TDD é justamente porque ninguém da equipe
escreve o teste depois da funcionalidade pronta, sendo assim, estipulamos
que escrever o teste primeiro é o mais indicado.
Abaixo alguns posts que podem ser interessantes para a sua equipe ler:
http://sinnema313.wordpress.com/2010/04/03/the-case-for-test-driven-developm
ent/
http://www.infoq.com/br/articles/relacao-tdd-qualidade
http://rodbv.wordpress.com/2009/03/23/um-mes-de-tdd/
============================================
Luiz Henrique C. Corrêa
MCP, RUP, ITIL
(61) 8143.8430 e (61) 3036.5150
luizh...@gmail.com
============================================
-----Mensagem original-----
De: dotnetar...@googlegroups.com
[mailto:dotnetar...@googlegroups.com] Em nome de Daniel Freire
Enviada em: sexta-feira, 18 de junho de 2010 20:10
Para: dotnetar...@googlegroups.com
Assunto: [dotnetarchitects] Onde existe TDD de verdade no Brasil?
Pessoal,
Abs.,
--
--
Nas minhas primeiras experiências com TDD não me senti mais produtivo. É uma forma um tanto o quanto diferente de pensar, logo me fez ser mais lento no início (ainda me considero no início, mas as maiores dores já passaram).
Certamente não será utilizando TDD em poucas semanas que iremos sentir uma grande diferença, a diferença vem com a prática constante, com retrospectivas e melhorias na forma de escrever os testes.
Pelo pouco que já pratiquei TDD, posso dizer que:
É mais produtivo?
No curto prazo não tanto, no médio e longo sim. Com TDD acabamos por escrever um código mais limpo e direto (o necessário para passar no teste), o que acaba por nos tornar mais pragmáticos com o nosso código. Além disso, não vejo porque “5 linhas” de código a mais de testes poderá prejudicar tanto assim na nossa produtividade.
Aplicável a qualquer time?
Deveria ser, acho até que serve como um filtro para os times. Caso um desenvolvedor não consiga se expressar via um código de teste, devemos repensar o papel dele no time, não é mesmo?
Aplicável em qualquer cenário?
Certamente existem cenários (políticos, culturais, tecnológicos e etc..) que TDD não seja viável. Mas acho que seria o caso de repensar o cenário para enfim fazer da “forma correta” e utilizar TDD.
O que eu vejo muito por ai, é gente dizendo que TDD não é tão valioso ou que te faz ser menos produtivo. Mas a grande maioria dos que eu ouço falar isso, não tem nenhuma experiência com essa prática (não estou dizendo que é o caso de quem não concorda com TDD aqui na lista, mas foi isso que eu presenciei nas minhas discussões sobre esse tema na minha empresa).
============================================
Luiz Henrique C. Corrêa
MCP, RUP, ITIL
( (61) 8143.8430 e (61) 3036.5150
* luizh...@gmail.com
============================================
"Aplicável a qualquer time? |
Deveria ser, acho até que serve como um filtro para os times. Caso um desenvolvedor não consiga se expressar via um código de teste, devemos repensar o papel dele no time, não é mesmo?" |
Luiz, Não concordei com esta parte!
vc disse que esta no começo da utilização do TDD e vc mesmo disse que foi doloroso, vc acha que o que vc escreveu se aplica a um bom desenvolvedor (Aquele cara que mesmo sem TDD escreve codigos muito legais e resolve sempre bem os problemas apresentados?) O que estou dizendo é que não é todo desenvolvedor que já aplica TDD no dia a dia, e se o cara vai começar, certamente o começo será "dolorozo" pois a pratica do teste antes exige que mudemos completamente a maneira como pensavamos no desenvolvimento.
[]´s
|
|
@Vinicius,
Desculpe a discordancia, mas o que vc listou como Produtividade no meu entendimento tem mais haver com Qualidade (todos os tópicos).
@Valente, eu estava com saudades dos seus pontos de vista nas discussões! Não fique longe muito tempos vc nos faz refletir melhor!
Ri muito desta parte:
|
"eu já vivi exemplos de pessoas que usam TDD e quando tivemos que fazer algo rapidamente pra algum objetivo (uma apresentação p. ex.) e qual a minha surpresa qdo ele não usou TDD.... Aí eu perguntei e ele disse: "ah, assim é mais rápido!" rsrss.... Sem críticas" |
--- Em sáb, 19/6/10, Alexandre Valente <alexandre...@gmail.com> escreveu: |
|
http://portal.acm.org/citation.cfm?id=776892&coll=GUIDE&dl=GUIDE&ret=1
"In a software development group of IBM Retail Store Solutions, we
built a non-trivial software system based on a stable standard
specification using a disciplined, rigorous unit testing and build
approach based on the test- driven development (TDD) practice. Using
this practice, we reduced our defect rate by about 50 percent compared
to a similar system that was built using an ad-hoc unit testing
approach. The project completed on time with minimal development
productivity impact. Additionally, the suite of automated unit test
cases created via TDD is a reusable and extendable asset that will
continue to improve quality over the lifetime of the software system.
The test suite will be the basis for quality checks and will serve as
a quality contract between all members of the team. "
Vinicius Quaiato
http://viniciusquaiato.com
Twitter
vinicius.quaiato--

Na verdade unit-tests são um requerimento para que o TDD aconteça. Escuto muito por ae "TDD isn't about testing, is about Design", então uma cultura de testes por si só não carateriza a aplicação da técnica. O TDD é um tipo de técnica que muda um pouco a forma de pensar, primeiro você testa, esse teste vai falhar(porque você não fez o código a ser testado ainda), depois você escreve o mínimo de código suficiente para que esse teste passe, depois disso você faz um refactor para melhorar a escalabilidade(removendo código duplicado, verificar se está realmente usando o princípio SRP etc....).