Desvios comuns em TDD

3,400 views

Published on

Apresentação sobre "Desvios comuns em TDD" na Agile Brazil 2010.

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,400
On SlideShare
0
From Embeds
0
Number of Embeds
1,762
Actions
Shares
0
Downloads
66
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Desvios comuns em TDD

  1. 1. ERROS COMUNS EM TEST-DRIVEN DEVELOPMENT Mauricio Aniche mauricio@aniche.com.br @mauricioaniche Thursday, June 24, 2010
  2. 2. DESVIOS COMUNS EM TEST-DRIVEN DEVELOPMENT Mauricio Aniche mauricio@aniche.com.br @mauricioaniche Thursday, June 24, 2010
  3. 3. MAS O QUE É TDD MESMO? Thursday, June 24, 2010
  4. 4. É SOBRE TESTES? Thursday, June 24, 2010
  5. 5. Thursday, June 24, 2010
  6. 6. Thursday, June 24, 2010
  7. 7. Thursday, June 24, 2010
  8. 8. Thursday, June 24, 2010
  9. 9. NÃO! Thursday, June 24, 2010
  10. 10. É SOBRE DESIGN! Thursday, June 24, 2010
  11. 11. QUE CONFUSÃO! :-( Thursday, June 24, 2010
  12. 12. Test-driven development (TDD) is the craft of producing automated tests for production code, and using that process to drive design and programming. For every tiny bit of functionality in the production code, you first develop a test that specifies and validates what the code will do. You then produce exactly as much code as will enable that test to pass. Then you refactor (simplify and clarify) both the production code and the test code. www.agilealliance.org/programs/ roadmaps/Roadmap/tdd/tdd_index.htm Thursday, June 24, 2010
  13. 13. Thursday, June 24, 2010
  14. 14. É SIMPLES! Thursday, June 24, 2010
  15. 15. MAS NÃO É FÁCIL! Thursday, June 24, 2010
  16. 16. PROGRAMADORES ÀS VEZES COMETEM DESVIOS... Thursday, June 24, 2010
  17. 17. FATORES DE INFLUÊNCIA Thursday, June 24, 2010
  18. 18. QUESTIONÁRIO Thursday, June 24, 2010
  19. 19. NÃO VER O TESTE FALHAR Thursday, June 24, 2010
  20. 20. 50 •55% nunca esquece ou esquece raramente de ver o 38 teste falhar; 25 •24% esquece regularmente 13 ou frequentemente; 0 Never Sometimes Frequently •4% sempre esquece; Rarely Regularly Always Thursday, June 24, 2010
  21. 21. ESQUECER DE REFATORAR Thursday, June 24, 2010
  22. 22. 40 •44% dos programadores 30 experientes e 52% dos iniciantes cometem esse 20 erro regularmente ou frequentemente; 10 0 •1% sempre esquece. Never Sometimes Frequently Rarely Regularly Always Thursday, June 24, 2010
  23. 23. REFATORAR OUTRO TRECHO DE CÓDIGO ENQUANTO TRABALHA EM UM TESTE Thursday, June 24, 2010
  24. 24. 40 •40% refatora outro trecho de código regularmente ou frequentemente; 30 •5% refatora o tempo todo; 20 •6% nunca refatora; •38% dos experientes 10 fazem isso regularmente ou frequentemente. No 0 entendo, 44% nunca faz ou Never Sometimes Frequently Rarely Regularly Always faz apenas raramente. Thursday, June 24, 2010
  25. 25. NÃO COMEÇAR PELO TESTE MAIS SIMPLES POSSÍVEL Thursday, June 24, 2010
  26. 26. 50 •33% não começam pelo teste mais simples possível 38 regularmente ou frequentemente; 25 •2% sempre cometem o 13 erro; 0 Never Sometimes Frequently •10% nunca cometem. Rarely Regularly Always Thursday, June 24, 2010
  27. 27. RODAR APENAS O TESTE CORRENTE Thursday, June 24, 2010
  28. 28. 40 •16% rodam apenas o teste corrente regularmente ou frequentemente; 30 •2% cometem o erro o tempo todo; 20 •25% nunca esquecem de rodar a suíte inteira; 10 •Programadores experientes cometem esse erro mais 0 Never Sometimes Frequently frequentemente do que os Rarely Regularly Always iniciantes (21% contra 15%). Thursday, June 24, 2010
  29. 29. ESCREVER TESTES COMPLEXOS Thursday, June 24, 2010
  30. 30. 40 •50% escrevem cenários complexos regularmente ou 30 frequentemente; •4% escreve o tempo todo; 20 •3% nunca escreve; 10 •35% dos programadores experientes e 53% dos iniciantes fazem isso regularmente ou 0 Never Sometimes Frequently frequentemente; Rarely Regularly Always Thursday, June 24, 2010
  31. 31. NÃO IMPLEMENTAR O CÓDIGO MAIS SIMPLES QUE FAÇA O TESTE PASSAR Thursday, June 24, 2010
  32. 32. 50 •35% dos iniciantes e 38 17% dos experientes tendem a não 25 implementar o código mais simples que faça o teste passar regularmente 13 ou frequentemente; 0 Never Sometimes Frequently Rarely Regularly Always Thursday, June 24, 2010
  33. 33. NOMES NÃO CLAROS PARA OS TESTES Thursday, June 24, 2010
  34. 34. 40 •32% usam nomes não 30 claros regularmente ou frequentemente; 20 •1% usam nomes não claros o tempo todo; 10 •14% nunca usam e 45% 0 nunca usa ou usa raramente. Never Sometimes Frequently Rarely Regularly Always 30 Thursday, June 24, 2010
  35. 35. NÃO REFATORAR CÓDIGO DE TESTE Thursday, June 24, 2010
  36. 36. 50 •23% não refatora o código 38 de teste regularmente ou frequentemente; 25 •1% sempre esquece de 13 refatorar; 0 •16% nunca comete o erro; Never Sometimes Frequently Rarely Regularly Always 32 Thursday, June 24, 2010
  37. 37. DESVIOS MAIS COMUNS Desvio Média/Desvio Padrão Correlação de Pearson Frequente ou sempre Escrever testes complexos 2.58 / 1.21 -0.1 26.61% Esquecer de refatorar 2.37 / 1.17 -0.03 19.72% Refatorar outro trecho de 2.34 / 1.36 -0.13 23.85% código Não comecar pelo teste mais 2.00 / 1.28 -0.09 15.14% simples possível Não implementar o código mais 1.90 / 1.19 -0.24 11.01% simples que faz o teste passar Nomes de testes não claros 1.84 / 1.25 -0.02 11.01% Não ver o teste falhar 1.75 / 1.35 -0.22 14.22% Não refatorar o código de teste 1.67 / 1.19 -0.21 8.72% Rodar apenas o teste corrente 1.40 / 1.20 -0.01 5.96% 33 Thursday, June 24, 2010
  38. 38. PRECISO SEGUIR A RISCA O TEMPO TODO? 34 Thursday, June 24, 2010
  39. 39. O QUE ELES PENSAM SOBRE TDD? 35 Thursday, June 24, 2010
  40. 40. PROBLEMAS A VALIDAR 36 Thursday, June 24, 2010
  41. 41. CONCLUSÃO 37 Thursday, June 24, 2010
  42. 42. TRABALHOS FUTUROS 38 Thursday, June 24, 2010
  43. 43. AONDE POSSO LER MAIS SOBRE ISSO? •O artigo foi publicado no 1st International Workshop on Test- Driven Development e pode ser encontrado na biblioteca da IEEE Digital. •Ou através da página dedicada ao trabalho em http://www.ime.usp.br/~aniche/tdd-survey 39 Thursday, June 24, 2010
  44. 44. GOSTOU E QUER AJUDAR? 40 Thursday, June 24, 2010
  45. 45. @mauricioaniche mauricio@aniche.com.br 41 Thursday, June 24, 2010

×