em produção sem antes ter um spec falhando. 2ª Lei: Você não pode escrever mais do que um teste de unidade para fazer seu spec falhar, e não compilar é falhar. 3ª Lei: Você não pode escrever mais do que o necessário para fazer o seu teste passar.
produziram código que passaram em, aproximadamente, 50% mais testes caixa-preta do que o código produzido por grupos de controle que não usavam TDD. O grupo que usava TDD gastou menos tempo depurando. A complexidade dos algoritmos era muito menor e a quantidade e cobertura dos testes era maior nos códigos escritos com TDD. [Jan05] David S. Janzen. Software architecture improvement through test-driven development. Em Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA ’05, páginas 240–241, New York, NY, USA, 2005. ACM. 6, 8, 31
Williams [MW03] mostrou uma redução de 40-50% na quantidade de defeitos e um impacto mínimo na produtividade quando programadores usaram TDD.” [MW03] E. Michael Maximilien e Laurie Williams. Assessing test-driven development at IBM. Em Proceedings of the 25th International Conference on Software Engineering, ICSE ’03, páginas 564–569, Washington, DC, USA, 2003. IEEE Computer Society. 6
Chan [LC04] comparando dois grupos, um utilizando TDD e o outro escrevendo testes apenas após a implementação, mostrou uma redução no número de defeitos no grupo que utilizava TDD. Além disso, os defeitos que foram encontrados eram corrigidos mais rapidamente pelo grupo que utilizou TDD.” [LC04] Kim Man Lui e Keith C.C. Chan. Test driven development and software process improvement in China. Em Jutta Eckstein e Hubert Baumeister, editors, Extreme Programming and Agile Processes in Software Engineering, volume 3092 of Lecture Notes in Computer Science, páginas 219–222. Springer Berlin / Heidelberg, 2004. 6
Williams [GW03] mostrou que, apesar de TDD poder reduzir inicialmente a produtividade dos desenvolvedores mais inexperientes, o código produzido passou entre 18% a 50% mais em testes caixa-preta do que códigos produzidos por grupos que não utilizavam TDD. Esse código também apresentou uma cobertura de testes entre 92% a 98%.” [GW03] Boby George e Laurie Williams. An initial investigation of test driven development in industry. Em Proceedings of the 2003 ACM symposium on Applied computing, SAC ’03, páginas 1135–1139, New York, NY, USA, 2003. ACM. 7, 8, 31
TDD facilitou o entendimento dos requisitos • 95.8% acreditam que TDD reduziu o tempo gasto com depuração • 78% acreditam que TDD aumentou a produtividade da equipe • Entretanto, apenas 50% dos participantes disseram que TDD ajuda a diminuir o tempo de desenvolvimento. • Sobre qualidade, 92% pensam que TDD ajuda a manter um código de maior qualidade • 79% acreditam que ele promove um projeto de classes mais simples. https://www.teses.usp.br/teses/disponiveis/45/45134/tde-31072012- 181230/publico/dissertacao.pdf
na Microsoft e na IBM e os resultados indicaram que o número de defeitos de quatro produtos diminuiu de 40% a 90% em relação a projetos similares que não usaram TDD. Entretanto, o estudo mostrou também que TDD aumentou o tempo inicial de desenvolvimento entre 15% a 35%.” [BN06] Thirumalesh Bhat e Nachiappan Nagappan. Evaluating the efficacy of test-driven development: industrial case studies. Em Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, ISESE ’06, páginas 356–363, New York, NY, USA, 2006. ACM. 7
a qualidade código, provê uma facilidade maior de manutenção e ajuda a produzir 33% mais testes comparado a abordagens tradicionais” [Lan01] J. Langr. Evolution of test and code via test-first design. http://eisc.univalle.edu.co/ materias/TPS/archivos/articulosPruebas/test_first_design.pdf, 2001. Último acesso em 01/03/2011. 7, 8