Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

testando interfaces web

Palestra apresentada por Andrews Medina no Front In Rio 2012, sobre como 'Testar Interfaces Web'.

Abordado o "porque, o que, como e quando testar" interfaces web.

  • Be the first to comment

testando interfaces web

  1. 1. testando interfaces web @andrewsmedina
  2. 2. andrews medina•?
  3. 3. andrews medina• o que os outros pensam...
  4. 4. andrews medina• o que eu penso...
  5. 5. andrews medina• o que minha mãe pensa...
  6. 6. andrews medina• como realmente é!
  7. 7. interfaces?
  8. 8. http://farm4.static.flickr.com/3293/3045994303_6f2a4f36d2.jpg
  9. 9. http://farm4.static.flickr.com/3522/3468280305_fb2681f996.jpg
  10. 10. testes?
  11. 11. teste + interface = ???• porque testar?• o que testar?• como testar?• quando testar?
  12. 12. porque testar?• garantir que a interface está tendo o comportamento esperado
  13. 13. o que testar?• css?• visual?• comportamento/funcionamento?
  14. 14. o que testar?• css?• visual?• comportamento/funcionamento!
  15. 15. o que testar?• interface?• componentes?
  16. 16. o que testar?• interface e componentes!
  17. 17. componente?
  18. 18. como testar?• componentes• interface
  19. 19. testando componentes• qUnit• jasmine
  20. 20. qUnit• jquey• unitário• api “feia”• ruim para testes assíncronos
  21. 21. jasmine• bdd• api “bonita”• inspirado no rspec• baseado em tópicos• bom para testes assíncronos
  22. 22. como rodar jasmine/qunit?• jasmine-splinter-runner
  23. 23. como rodar jasmine/qunit?• abrir o browser toda vez para rodar um teste?• jasmine/qunit + integração contínua (ci) ?
  24. 24. jasmine-splinter-runner• https://github.com/cobrateam/jasmine-splinter-runner
  25. 25. jasmine-splinter-runner• pip install jasmine-splinter-runner• jasmine-splinter URI
  26. 26. testando interfaces• selenium 1.0 • htmlunit• pyccuracy • zombie.js• selenium 2.0 • zope testbrowser• capybara • mechanize• splinter • phantomjs
  27. 27. selenium 1• lento• necessita de server• obsoleto• funcionalidades legais
  28. 28. selenium 2• não necessita server• vários browsers (firefox, ie, opera, chrome)• instável• diferença entre browsers (api)• features legais
  29. 29. zope testbrowser• rápido• headless• não renderiza js• api estável• trata formulários de forma especial
  30. 30. zombie.js• rápido• headless• suporta js• node.js• instável
  31. 31. htmlunit• rápido• headless• suporta js• java :-(
  32. 32. webkit• rápido• headless• suporta js• phantomjs, ghost.py
  33. 33. headless ou não headless?
  34. 34. headless• rápido• não consome muitos recursos (memória x processamento)• difícil de debugar• mas não é um browser...
  35. 35. não headless• lento• usa o browser• fácil de debugar (você pode ver o que está acontecendo)
  36. 36. headless + não headless
  37. 37. headless• TDD• executar os testes localmente
  38. 38. não headless• escrever os testes• rodar os testes em uma máquina de integração contínua (ci)
  39. 39. headless + não headless?• #comofaz???
  40. 40. headless + não headless?• capybara• splinter
  41. 41. capybara• api• ruby• drivers: firefox• third party drivers: webkit, chrome, zombie.js...
  42. 42. capybara• seletores css, xpath, tag, name• ajax• javascript
  43. 43. splinter• api• python• drivers: chrome, firefox, zope testbrowser• em andamento: webkit, zombie.js
  44. 44. splinter• seletores css, xpath, tag, name• ajax• javascript• cookies• iframes, alerts• http status code
  45. 45. bônus!• http://sikuli.org/• http://needle.readthedocs.org/
  46. 46. perguntas? @andrewsmedinaandrewsmedina.com

×