Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Porque todo QA deveria saber testes de APIs

Porque todo QA deveria saber testes de APIs

Palestra apresentada no Agile Testers Conference de Belo Horizonte em 2017.

Frederico Moreira

June 05, 2017
Tweet

More Decks by Frederico Moreira

Other Decks in Technology

Transcript

  1. Frederico Moreira @fredaomoreira Porque todo QA deveria saber testes de

    API ?
  2. MG • Café, testes e pão de queijo • MTC

    - Minas Testing Conference Agile Testers • Fórum • Agile Testers Conference UAI, TREM, SÔ, PÃO DE QUEIJO • if(pinga && torresmo) @fredaomoreira @ConcreteS
  3. Mas porque? Porque eu como QA deveria saber testar API?

    O que teste de API pode me ajudar no meu dia a dia?
  4. Quem aqui testa API hoje? Quem já testou API?

  5. Arquitetura Calabash IOS https://github.com/calabash/calabash-ios-server

  6. Front-End Back-End Node.js HTML 5 CSS 3 Angular.js iOS Android

  7. O que é uma API?

  8. Uma API é criada quando uma empresa de software tem

    a intenção de que outros criadores de software desenvolvam produtos associados ao seu serviço. “ Fonte: https://goo.gl/zMwp3U
  9. Exemplos de APIs: Companhias Aéreas • Google Flights • Sky

    Scanner Cálculo de entrega (CEP) • e-commerce Geolocalização • API Google Maps
  10. Pirâmide de Testes “Ideal” Mike Cohn UI Service Unit Manual

  11. Testes no Nível de Serviço Preenche o gap entre testes

    unitários e de UI Acontecem em paralelo ao desenvolvimento Foco na funcionalidade e não no comportamento/experiência Testa critérios de aceite mesmo antes da interface(mobile ou web) estar desenvolvida. Subcutaneous Test - Martin Fowler
  12. REST em cima de protocolo HTTP mas você pode usar

    REST com outro protocolos como TCP, UDP e gRPC (http://www.grpc.io/). O mais comum de encontrar no mercado são projetos novos usando
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. http://racksburg.com/choosing-an-http-status-code/

  23. Como testar manualmente?

  24. Ferramentas http://www.telerik.com/fiddler https://www.getpostman.com/

  25. Entendendo transações HTTP

  26. request response VIEW

  27. None
  28. #COMANDO CURL curl -i -X GET "http://localhost:5000/contacts?name=Tester" #HEADER HTTP/1.1 200

    OK X-Powered-By: Express Content-Type: application/json; charset=utf-8 Content-Length: 110 ETag: W/"6e-Za+ESrkoytVXhydy0NJoFA" Date: Mon, 14 Mar 2016 18:17:19 GMT Connection: keep-alive #BODY [{"_id":"56d5efa8c82593800291c02b","name":"Tester","mobilephone":"05 52188889999","homephone":"0552133332222"}]
  29. Mas eu preciso mesmo automatizar testes de API? “ disse

    o QA
  30. None
  31. Mundo JS http://frisbyjs.com/ http://www.fredmoreira.com/2014/11/como-voce-anda-testando-sua-api-rest.htm l http://dareid.github.io/chakram/ https://github.com/fredmoreira/ApiTest

  32. Mundo Ruby https://ruby-doc.org/stdlib-2.3.1/libdoc/net/http/rdoc/Net/HTTP.html https://github.com/jnunemaker/httparty https://github.com/jnunemaker/httparty https://github.com/lostisland/faraday https://github.com/fredmoreira/api-test-ruby

  33. Mundo Java https://github.com/fredmoreira/demo-rest-assured https://www.youtube.com/watch?v=dShI6n1CSoY @juliodelimas

  34. Mundo Python https://github.com/fredmoreira/demo-pyresttest https://github.com/svanoort/pyresttest

  35. https://github.com/fredmoreira/phone-book

  36. Segurança O que eu como QA consigo pensar em segurança,

    nos testes de APIs?
  37. Dependências NodeJs • Snyk • NSP Java e .NET •

    OWASP Dependency-check Python • Dependency-check-py
  38. X-XSS-Protection

  39. Appcanary Tudo que você precisa saber sobre segurança em headers

    HTTP https://blog.appcanary.com/2017/http-securit y-headers.html
  40. E se eu sou preguiçoso(a) ?

  41. http://www.mocky.io/

  42. https://apiary.io/

  43. Links: • https://snyk.io/ • https://github.com/nodesecurity/nsp • https://www.owasp.org/index.php/OWASP_Dependency_Check • https://github.com/jhermann/dependency-check-py

  44. • http://www.fredmoreira.com/2014/11/como-voce-anda-te stando-sua-api-rest.html • https://httpstatuses.com/ • http://apimetrics.io/2015/03/31/automated-api-testing-ne cessary/ • https://goo.gl/5vM84j

    • http://sensedia.com/blog/apis/sites-para-descobrir-apis/ • http://keeptesting.com.br/2014/09/09/testando-suas-api s-com-frisby-js/ Links:
  45. Repositórios: • https://github.com/fredmoreira/demo-pyresttest • https://github.com/fredmoreira/demo-rest-assured • https://github.com/fredmoreira/ApiTest • https://github.com/fredmoreira/api-test-ruby •

    https://github.com/fredmoreira/phone-book
  46. Dúvidas?

  47. None