Testes - Pra qu - 2013

  • Published on
    06-Jul-2015

  • View
    151

  • Download
    2

DESCRIPTION

Palestra apresentada no evento do Guru-CE dia 20/7

Transcript

  • 1. Testes pra que? @rodrigodealer sbado, 20 de julho de 13

2. Eu sbado, 20 de julho de 13 3. Pergunta sbado, 20 de julho de 13 4. Por qu? sbado, 20 de julho de 13 5. Noite de sono :-) sbado, 20 de julho de 13 6. Cliente satisfeito :D sbado, 20 de julho de 13 7. Todos felizes :-D sbado, 20 de julho de 13 8. Exemplo :-) sbado, 20 de julho de 13 9. (Ruby) sbado, 20 de julho de 13 10. E esse? Meio grande, n? sbado, 20 de julho de 13 11. Ruby feito para ser bonito. Se est feio, est errado. Matz sbado, 20 de julho de 13 12. Extract method - Faz bem Aquele if, else foi embora o/ sbado, 20 de julho de 13 13. Cdigo repetido Varivel desnecessria Deletar cdigo faz bem :D sbado, 20 de julho de 13 14. Ok, z esse refactoring, que garantia eu tenho que vai funcionar? sbado, 20 de julho de 13 15. Com testes! sbado, 20 de julho de 13 16. Testes unitrios sbado, 20 de julho de 13 17. Certa vez um sbio disse: A test is not a unit test if: * it talks to the database * it communicates across the network * it touches the file system * it cant run at the same time as any of your other unit tests * you have to do special things to your environment (such as editing config files) to run it Tests that do these things arent bad. Often they are worth writing, and they can be written in a unit test harness. However, it is important to keep them separate from true unit tests so that we can run the unit tests quickly whenever we make changes. -- Ou um chapa disse em portugus: Um teste no um teste unitrio se: - Comunica com o banco de dados - Comunica pela rede - Toca no sistema de arquivos - Se no pode ser rodado ao mesmo tempo de outros testes unitrios - Se voc tem que congurar determinadas coisas como arquivos de congurao sbado, 20 de julho de 13 18. Testar unitariamente sbado, 20 de julho de 13 19. Testar a menor poro de cdigo sbado, 20 de julho de 13 20. Devem rodar rapidamente, em poucos segundos sbado, 20 de julho de 13 21. Devem rodar rapidamente, em poucos segundos Feedback rpido! sbado, 20 de julho de 13 22. Seu cdigo vai sofrer um impacto grande a partir do momento que comear a escrever testes e refatorar sbado, 20 de julho de 13 23. Seu cdigo vai sofrer um impacto grande a partir do momento que comear a escrever testes e refatorar Como assim? sbado, 20 de julho de 13 24. Red - Green - Refactor sbado, 20 de julho de 13 25. Exemplo :-D (Java) (Camada de modelo) sbado, 20 de julho de 13 26. O que estou testando? sbado, 20 de julho de 13 27. Se esse mtodo reete o Enum sbado, 20 de julho de 13 28. Menor unidade, lembra? sbado, 20 de julho de 13 29. Testes de integrao sbado, 20 de julho de 13 30. Rodam mais lentamente sbado, 20 de julho de 13 31. Fazem operaes num banco de dados Ou no sistema de arquivos Existe I/O Ou em rede sbado, 20 de julho de 13 32. Para que? Meus dados esto vindo de forma correta? Meus dados esto sendo gravados de forma correta? Minha camada de modelo est se comunicando corretamente com o ORM? sbado, 20 de julho de 13 33. Que ferramentas posso usar? RubyJava sbado, 20 de julho de 13 34. Testes de aceitao sbado, 20 de julho de 13 35. Pra que? sbado, 20 de julho de 13 36. Minha aplicao est com a camada de servios bem testada sbado, 20 de julho de 13 37. E a integrao com a camada de viso? sbado, 20 de julho de 13 38. TextTextText JavaScript no funciona! sbado, 20 de julho de 13 39. Que ferramentas uso? sbado, 20 de julho de 13 40. Que ferramentas uso? sbado, 20 de julho de 13 41. Eu testo toda a aplicao? sbado, 20 de julho de 13 42. Eu testo toda a aplicao? Depende. sbado, 20 de julho de 13 43. Porque? sbado, 20 de julho de 13 44. Porque? Testes de aceitao demoram mais a rodar sbado, 20 de julho de 13 45. Porque? Testes de aceitao demoram mais a rodar Tem feedback demorado sbado, 20 de julho de 13 46. Porque? Testes de aceitao demoram mais a rodar Tem feedback demorado Escrever os testes tambm demora sbado, 20 de julho de 13 47. Porque? Testes de aceitao demoram mais a rodar Tem feedback demorado Escrever os testes tambm demora sbado, 20 de julho de 13 48. Porque? Testes de aceitao demoram mais a rodar Tem feedback demorado Escrever os testes tambm demora Ou seja... sbado, 20 de julho de 13 49. Demora! sbado, 20 de julho de 13 50. Por isso... sbado, 20 de julho de 13 51. Por isso... aconselhvel testar apenas as telas mais importantes sbado, 20 de julho de 13 52. Por isso... aconselhvel testar apenas as telas mais importantes Telas mais utilizadas ou com nvel de complexidade maior sbado, 20 de julho de 13 53. Por isso... aconselhvel testar apenas as telas mais importantes Telas mais utilizadas ou com nvel de complexidade maior Contanto que faa! sbado, 20 de julho de 13 54. Junte tudo Testes unitrios + de integrao + de aceitao E coloque em um servidor de integrao contnua sbado, 20 de julho de 13 55. Existem vrios Jenkins TeamCity CruiseControl sbado, 20 de julho de 13 56. Feedback rpido! sbado, 20 de julho de 13 57. Feedback rpido! Via email sbado, 20 de julho de 13 58. Feedback rpido! Via email Via IDE sbado, 20 de julho de 13 59. Feedback rpido! Via email Via IDE Via IM sbado, 20 de julho de 13 60. Feedback rpido! Via email Via IDE Via IM ... sbado, 20 de julho de 13 61. Quanto antes voc for avisado que algo est errado, melhor! sbado, 20 de julho de 13 62. Cobertura de testes sbado, 20 de julho de 13 63. Cobertura de testes 100% de cobertura? sbado, 20 de julho de 13 64. Cobertura de testes 100% de cobertura? importante sbado, 20 de julho de 13 65. Cobertura de testes 100% de cobertura? importante, mas no tudo sbado, 20 de julho de 13 66. Como assim? sbado, 20 de julho de 13 67. Cobertura de testes 100% de cobertura garante que o cdigo est coberto sbado, 20 de julho de 13 68. Cobertura de testes 100% de cobertura garante que o cdigo est coberto Mas no garante que est efetivamente testado sbado, 20 de julho de 13 69. E que critrio eu utilizo? sbado, 20 de julho de 13 70. E que critrio eu utilizo? Bom senso sbado, 20 de julho de 13 71. E que critrio eu utilizo? Bom senso sbado, 20 de julho de 13 72. E que critrio eu utilizo? Teste o que pode quebrar sbado, 20 de julho de 13 73. E o que eu no testo? 1. No precisa testar mtodos da linguagem sbado, 20 de julho de 13 74. E o que eu no testo? 1. No precisa testar mtodos da linguagem 2. No precisa testar mtodos do framework sbado, 20 de julho de 13 75. E o que eu no testo? 1. No precisa testar mtodos da linguagem 2. No precisa testar cdigo dos frameworks 3. No precisa testar cdigo dos plugins sbado, 20 de julho de 13 76. E o que eu no testo? 1. No precisa testar mtodos da linguagem 2. No precisa testar cdigo dos frameworks 3. No precisa testar cdigo dos plugins Esse cdigo j deveria estar testado, n? sbado, 20 de julho de 13 77. Para concluir... sbado, 20 de julho de 13 78. Para concluir... Teste suas aplicaes sbado, 20 de julho de 13 79. Para concluir... Teste suas aplicaes Todo mundo agradece, lembra? sbado, 20 de julho de 13 80. Voc Cliente sbado, 20 de julho de 13 81. Todos felizes :-D sbado, 20 de julho de 13 82. Sugesto http://www.infoq.com/br/presentations/o-que-nao-testar http://www.infoq.com/br/news/2010/06/cobertura-testes-falsa-impressao sbado, 20 de julho de 13 83. Perguntas? sbado, 20 de julho de 13 84. Obrigado! @rodrigodealer sbado, 20 de julho de 13