Your SlideShare is downloading. ×
0
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Desmistificando Testes de Software
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desmistificando Testes de Software

259

Published on

Apresentação feita em 10 de outubro de 2013 na PUC-Rio, Rio de Janeiro, Brasil. …

Apresentação feita em 10 de outubro de 2013 na PUC-Rio, Rio de Janeiro, Brasil.
Aborda as diferentes formas de testes de software e como elas se aplicam no desenvolvimento do dia a dia. O objetivo é fazer com que conceitos antes abstratos e acadêmicos sejam compreendidos em contextos mais próximos da realidade dos desenvolvedores.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
259
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desmistificando Testes de Software 10/11/2013Rodrigo Dumont 1
  • 2. Sobre mim Rodrigo Dumont  Engenheiro de Software  Trabalho na VTEX rodrigodumont.com rdumont 10/11/2013Rodrigo Dumont 2
  • 3. 10/11/2013Rodrigo Dumont 3 Seu sistema tem testes automatizados?
  • 4. 10/11/2013Rodrigo Dumont 4 Claro! Em poucos passos você garante que tudo está funcionando
  • 5. 10/11/2013Rodrigo Dumont 5 Criar um site no servidor Web apontadndo para a aplicação 1.
  • 6. 10/11/2013Rodrigo Dumont 6 Criar o banco de dados de acordo com o esquema na pasta docs 2.
  • 7. 10/11/2013Rodrigo Dumont 7 Abrir o projeto na IDE 3.
  • 8. 10/11/2013Rodrigo Dumont 8 Tentar executar os testes 4.
  • 9. 10/11/2013Rodrigo Dumont 9 Passar duas horas encontrando o que foi configurado errado 5.
  • 10. 10/11/2013Rodrigo Dumont 10 Executar os testes novamente 6.
  • 11. 10/11/2013Rodrigo Dumont 11 Perceber que ainda faltou instalar um componente 7.
  • 12. 10/11/2013Rodrigo Dumont 12 8
  • 13. 10/11/2013Rodrigo Dumont 13
  • 14. O que eu realmente queria $ cd locadora $ jake test ..... --> success! 10/11/2013Rodrigo Dumont 14
  • 15. Motivação  Se testes forem difíceis:  Eu não vou testar tanto  Não vou saber saber se algo quebrou  Feedback demorado … ou pior: código em produção com erros 10/11/2013Rodrigo Dumont 15
  • 16. A velha questão do custo 10/11/2013Rodrigo Dumont 16 projeto desenvolvimento integração entrega $$custo
  • 17. Testes automatizados devem:  Ter pré-requisitos sucintos  Ser facilmente executáveis  Ser legíveis  Ter resultado legível 10/11/2013Rodrigo Dumont 17
  • 18. Estrutura de um teste 10/11/2013Rodrigo Dumont 18  Pré-condição  Teste  Pós-condição  Contexto  Ação  Verificação  Arrumar  Agir  Afirmar
  • 19. Conhecem isso? == Inicializar valores =declararparm baralho1 int 1 =declararparm baralho2 int 2 =declararparm AsOur int 0 =declararparm DoisOur int 1 =declararparm TresOur int 2 =declararparm QuatroOur int 3 == Comparar naipes =compararnaipe baralho2 AsOur CincoOur NpIgual =compararnaipe baralho2 AsPau SeisCop NpDifer == Comparar valores =compararvalor baralho2 TresPau TresOur VlIgual =compararvalor baralho2 AsPau SeisCop VlDifer 10/11/2013Rodrigo Dumont 19 Contexto Ação Verificação
  • 20. Testes unitários  São muito rápidos ( < 30s)  Testam unidades de código isoladamente  Parte do processo de Test- Driven Development 10/11/2013Rodrigo Dumont 20 Funcionalidade OK OK OK OK OK OK FAIL OK OK OK OK OK OK OK FAIL OK OK OK
  • 21. Exemplo de teste unitário 10/11/2013Rodrigo Dumont 21
  • 22. Frameworks de testes unitários 10/11/2013Rodrigo Dumont 22 JavaScript  Qunit  Mocha  Jasmine .NET  NUnit  MSTest  xUnit.Net Python  unittest Java  JUnit
  • 23. Testes de integração  São rápidos ( < 2min)  Testam a integração dos componentes em cada funcionalidade  Costuma integrar o processo de Behaviour- Driven Development 10/11/2013Rodrigo Dumont 23 Funcionalidade OK ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 24. Behaviour Driven Development  Artigo publicado por Dan North em 2006 Introducing BDD  Inspirou o projeto Cucumber  E, portanto, a linguagem Gherkin “Acceptance criteria should be executable” “Critérios de aceitação devem ser executáveis” Dan North
  • 25. Exemplo de especificação executável 10/11/2013Rodrigo Dumont 25 specflow
  • 26. Gherkin suporta vários idiomas Inglês Feature: Sum Scenario: Add two numbers Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then the result should be 120 on the screen
  • 27. Gherkin suporta vários idiomas Português Funcionalidade: Sum Cenário: Somar dois números Dado que escrevi 50 na calculadora E que escrevi 70 na calculadora Quando pressionar o botão de somar Então o resultado na tela deverá ser 120
  • 28. Gherkin suporta vários idiomas LOLCAT OH HAI: Sum MUSHUN: Add two numbers I CAN HAZ entered 50 into the calculator AN entered 70 into the calculator WEN I press add DEN the result should be 120 on the screen
  • 29. Testes de Sistema  Geralmente são manuais  Podem ser automatizados  Testam interações completas 10/11/2013Rodrigo Dumont 29
  • 30. Testando interfaces gráficas  Testes naturalmente frágeis  Selenium Web Driver 10/11/2013Rodrigo Dumont 30
  • 31. Recapitulando  Execute o tempo todo os testes unitários! Eles devem:  Ser muito rápidos  Ser uito fáceis de executar  Ter grande cobertura do seu código  Não suba nada sem executar os testes de integração  Eles não devem demorar  Devem apontar problemas não cobertos pelos testes unitários  Observe atentamente os resultados dos testes de Sistema  Se houver falhas, volte à versão anterior 10/11/2013Rodrigo Dumont 31
  • 32. Obrigado! 10/11/2013Rodrigo Dumont 32
  • 33. Referências The Art of Unit Testing Ray Osherove  List of unit testing frameworks (http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks)  Introducing BDD | Dan North (http://dannorth.net/introducing-bdd/)  Cucumber – Making BDD fun (http://cukes.info/)  Gherkin – Tool Support (https://github.com/cucumber/gherkin/wiki/Tool-Support)  Selenium – Web Browser Automation (http://www.seleniumhq.org/) 10/11/2013Rodrigo Dumont 33

×