Existem estatísticas disponíveis sobre quanto tempo levará para desenvolver aplicativos ao criar teste de unidade durante o desenvolvimento em comparação com apenas a codificação?
Há algumas pesquisas muito interessantes sobre isso. Leia o seguinte white paper:
Percebendo a melhoria da qualidade através do desenvolvimento orientado a testes: resultados e experiências de quatro equipes industriais
O whitepaper e outras pesquisas de um de seus autores, Nachi Nagappan , são discutidos aqui:
http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx
O estudo e seus resultados foram publicados em um artigo intitulado Realizando a melhoria da qualidade através do desenvolvimento orientado a testes: resultados e experiências de quatro equipes industriais, por Nagappan e colegas de pesquisa E. Michael Maximilien, do IBM Almaden Research Center; Thirumalesh Bhat, principal líder de desenvolvimento de software da Microsoft; e Laurie Williams, da Universidade Estadual da Carolina do Norte. O que a equipe de pesquisa descobriu foi que as equipes do TDD produziram código 60 a 90% melhor em termos de densidade de defeitos do que as equipes que não são do TDD. Eles também descobriram que as equipes de TDD levaram mais tempo para concluir seus projetos - 15 a 35% mais.
"Em um ciclo de desenvolvimento de 12 meses, 35% são outros quatro meses, o que é enorme", diz Nagappan. “No entanto, a desvantagem é que você reduz significativamente os custos de manutenção após a liberação, pois a qualidade do código é muito melhor. Novamente, essas são decisões que os gerentes precisam tomar - para onde devem levar o golpe? Mas agora, eles realmente têm dados quantificados para tomar essas decisões. ”
Além disso, Jason Gorman foi proposto como um experimento para a conferência de Artesanato de software este ano. Ele está tentando um experimento criando o mesmo aplicativo usando uma abordagem TDD e não TDD e publicou recentemente um blog sobre seus resultados :
Em três iterações, o tempo médio necessário para concluir o kata sem TDD foi de 28m 40s. O tempo médio com TDD foi de 25m 27s. Sem TDD, em média, fiz 5,7 passes (entregando em testes de aceitação). Com o TDD, em média, eu fiz 1,3 passes (em duas tentativas, eles passaram pela primeira vez, em um foram necessários 2 passes).
Agora, este foi um experimento para bebês, é claro. E não exatamente as condições de laboratório. Mas noto algumas coisas interessantes, todas iguais.
Será interessante ver os resultados completos desse experimento quando mais pessoas o realizarem.
Existem estatísticas disponíveis que mostram quantas horas de manutenção diminuem ao se realizar (bons) testes de unidade?
No whitepaper acima:
Os resultados dos estudos de caso indicam que a densidade de defeitos de pré-liberação dos quatro produtos diminuiu entre 40% e 90% em relação a projetos semelhantes que não usavam a prática de TDD.