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

testando interfaces web

1.847 visualizações

Publicada em

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.

Publicada em: Tecnologia
0 comentários
10 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.847
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
37
Comentários
0
Gostaram
10
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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

    ×