SlideShare uma empresa Scribd logo
1 de 21
Testes em Webservice
Ricardo Moura – Tester @ Tecban
Eu
www.linkedin.com/in/ricardoamr
QA desde 2010 e desde 2014 na equipe de QA da Tecban.
Certificado pelo BSTQB nos níveis Foundation e Agile Tester
“Team Integration Matters”
Amante dos carros velhos e rápidos
#BlockChain
Evangelista DIY
“Por que comprar se eu posso fazer gastando o dobro?”
Conceitos Stub++ Tipos de Teste Ferramentas
O que
Tem
Pra
Hoje
Conceitos
WebService
Solução utilizada na integração entre diferentes aplicações.
Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já
existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis.
OpenBank
OpenBanking é um termo relativamente novo
https://labsbank.com/
Bancos fornecem uma API publica para desenvolvedores criarem soluções
Aplicativos possuem permissão para movimentar as contas dos clientes
One Bank,
one Public API,
available in the cloud,
for developers of
multiple platforms.
SOAP
É uma especificação para a troca de informação entre sistemas
Formata os dados trocados entre diferentes sistemas e estabelece um padrão que garanta
a interoperabilidade entre eles.
Requer um WSDL(Web Services Description Language) para cada serviço disponibilizado
É baseado em XML para composição das mensagens
Método de transporte genérico
Pode usar qualquer meio de transporte existente para enviar sua requisição, SMTP, HTTP,
JMS
Simple Object Access Protocol
REST
Diferente do SOAP pois é somente um estilo arquitetural usado em projetos de aplicações
Utiliza para transporte o protocolo HTTP e seus métodos(GET, POST, PUT, DELETE, HEAD)
Mais simples que SOAP e não requer um WSDL pois interage com os serviços sempre da
mesma forma(http)*
Flexivel para composição das mensagens, pode utilizar XML, JSON, HTML
Pode possuir um contrato WADL(Web Application Description Language) que determina o
contrato entre as partes.
Representational State Transfer
XML / JSON
Formato para a criação de documentos com dados organizados hierárquicamente.
Não depende das plataformas de hardware ou de software, um banco de dados pode,
através de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode
ler então estes mesmos dados.
Trabalha com <tags>, requer abertura e fechamento de cada elemento da estrutura.
Padrão amplamente utilizado em diversos sistemas(Excel, TestLink, Mantis, ...)
JavaScript Object Notation
Formato leve para intercâmbio de dados computacionais.
Fácil leitura para humanos e fácil criação para maquinas
Não utiliza <tags>, estrutura mais simples
Utilizado em sistemas de comunicação assíncrona
É um formato independente
eXtensible Markup Language
Stub++
É um disparador de transação, as mensagens partem dele contra
um sistema, é usado para emular estímulos, muito usado para
testar webservices.
Driver
Request A
Request B
Request C
WS
É um rebatedor, responde sempre da mesma forma, é “burro”,
muito simples e sem capacidade de tomar decisões complexas
além de responder X para A, Y para B...
Stub
Request A
Request B
Request C
Response X
Response Y
Response Z
Mock
Responde de maneira condicional, possui a inteligência não
presente nos Stubs pois faz verificações no conteúdo das
chamadas para determinar as respostas.
Request A
Request B
Request C
Response X
Response Y
Response Z
Service Virtualization
Inteligente como um Mock na maneira de responder, porém é
capaz de aprender como o sistema se comporta e substitui-los.
WSSem SV
WSSV Learn
WS
SV SV
1
2
3
Tipos de Teste
Testes de contrato validam se as aplicações envolvidas em uma integração,
tiveram suas entradas e saídas desenvolvidas em conformidade com um
contrato WSDL/WADL pré-definido.
Essencial em sistemas do tipo WebService
Pode ser feito manualmente ou automaticamente através de ferramentas.
Ajuda a limpar o “lixo” criado durante a fase de desenvolvimento,
principalmente quando esta é iniciada sem uma especificação mensagens
pronta.
Reduz significativamente a quantidade de problemas de integração nas fases
posteriores de teste
Contrato
Valida o conteúdo trafegado nas mensagens esta correto.
Se os inputs dos usuários do sistema forem persistidos de alguma forma nas
mensagens, o conteúdo destas deve ser verificado.
É mais abrangente se feito utilizando Drivers e Mocks.
Também valida o comportamento do sistema em caso de respostas http
inválidas.
Funcional
Não devem obrigatoriamente identificar em que momento uma aplicação cai,
este é apenas um dos objetivos.
Denominados testes negativos.
Ajuda a equipe a simular a carga de um ambiente de produção, permitindo
otimizações no código do software ou no hardware onde esta instalado.
Deve-se isolar bem o sistema alvo para não serem gerados falsos resultados.
Divididos geralmente em Carga e Stress, onde o primeiro simula um numero
crescente de usuários até o momento de ruptura da aplicação e o segundo
além do grande volume de requisições, insere algum cenários de crash a fim
de validar a recuperação da aplicação.
A monitoração da aplicação durante o teste é tão ou mais importante que o
próprio teste.
Performance
Ferramentas
Online Parsers
http://www.freeformatter.com/xml-formatter.html
http://jsonlint.com/
Links úteis e Referências
https://smartbear.com
https://getpostman.com
http://jmeter.apache.org
http://www.freeformatter.com/xml-formatter.html
http://jsonlint.com
https://community.smartbear.com
https://www.soapui.org/rest-testing/working-with-rest-services.html
https://pt.stackoverflow.com/questions/36745/qual-a-diferen%C3%A7a-entre-mock-stub
http://jmeter.com.br/2013/04/qual-a-diferenca-entre-teste-de-stress-performance-e-carga/
http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html
https://labsbank.com/
Ferramentas
Fóruns/guias/tutoriais

Mais conteúdo relacionado

Semelhante a Testes em Webservice

Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal RailsLuiz Costa
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
Arquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisArquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisLucas Cavalcanti dos Santos
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Introdução ASP.NET Core
Introdução ASP.NET CoreIntrodução ASP.NET Core
Introdução ASP.NET Corelacerda2
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 

Semelhante a Testes em Webservice (20)

WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Cursos
CursosCursos
Cursos
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Android + web service
Android + web serviceAndroid + web service
Android + web service
 
Web services
Web servicesWeb services
Web services
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Arquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisArquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depois
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
ESB - detalhes
ESB - detalhesESB - detalhes
ESB - detalhes
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Architecture performance using micro services
Architecture performance using micro servicesArchitecture performance using micro services
Architecture performance using micro services
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Introdução ASP.NET Core
Introdução ASP.NET CoreIntrodução ASP.NET Core
Introdução ASP.NET Core
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 

Testes em Webservice

  • 1. Testes em Webservice Ricardo Moura – Tester @ Tecban
  • 2. Eu www.linkedin.com/in/ricardoamr QA desde 2010 e desde 2014 na equipe de QA da Tecban. Certificado pelo BSTQB nos níveis Foundation e Agile Tester “Team Integration Matters” Amante dos carros velhos e rápidos #BlockChain Evangelista DIY “Por que comprar se eu posso fazer gastando o dobro?”
  • 3. Conceitos Stub++ Tipos de Teste Ferramentas O que Tem Pra Hoje
  • 5. WebService Solução utilizada na integração entre diferentes aplicações. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis.
  • 6. OpenBank OpenBanking é um termo relativamente novo https://labsbank.com/ Bancos fornecem uma API publica para desenvolvedores criarem soluções Aplicativos possuem permissão para movimentar as contas dos clientes One Bank, one Public API, available in the cloud, for developers of multiple platforms.
  • 7. SOAP É uma especificação para a troca de informação entre sistemas Formata os dados trocados entre diferentes sistemas e estabelece um padrão que garanta a interoperabilidade entre eles. Requer um WSDL(Web Services Description Language) para cada serviço disponibilizado É baseado em XML para composição das mensagens Método de transporte genérico Pode usar qualquer meio de transporte existente para enviar sua requisição, SMTP, HTTP, JMS Simple Object Access Protocol
  • 8. REST Diferente do SOAP pois é somente um estilo arquitetural usado em projetos de aplicações Utiliza para transporte o protocolo HTTP e seus métodos(GET, POST, PUT, DELETE, HEAD) Mais simples que SOAP e não requer um WSDL pois interage com os serviços sempre da mesma forma(http)* Flexivel para composição das mensagens, pode utilizar XML, JSON, HTML Pode possuir um contrato WADL(Web Application Description Language) que determina o contrato entre as partes. Representational State Transfer
  • 9. XML / JSON Formato para a criação de documentos com dados organizados hierárquicamente. Não depende das plataformas de hardware ou de software, um banco de dados pode, através de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode ler então estes mesmos dados. Trabalha com <tags>, requer abertura e fechamento de cada elemento da estrutura. Padrão amplamente utilizado em diversos sistemas(Excel, TestLink, Mantis, ...) JavaScript Object Notation Formato leve para intercâmbio de dados computacionais. Fácil leitura para humanos e fácil criação para maquinas Não utiliza <tags>, estrutura mais simples Utilizado em sistemas de comunicação assíncrona É um formato independente eXtensible Markup Language
  • 11. É um disparador de transação, as mensagens partem dele contra um sistema, é usado para emular estímulos, muito usado para testar webservices. Driver Request A Request B Request C WS
  • 12. É um rebatedor, responde sempre da mesma forma, é “burro”, muito simples e sem capacidade de tomar decisões complexas além de responder X para A, Y para B... Stub Request A Request B Request C Response X Response Y Response Z
  • 13. Mock Responde de maneira condicional, possui a inteligência não presente nos Stubs pois faz verificações no conteúdo das chamadas para determinar as respostas. Request A Request B Request C Response X Response Y Response Z
  • 14. Service Virtualization Inteligente como um Mock na maneira de responder, porém é capaz de aprender como o sistema se comporta e substitui-los. WSSem SV WSSV Learn WS SV SV 1 2 3
  • 16. Testes de contrato validam se as aplicações envolvidas em uma integração, tiveram suas entradas e saídas desenvolvidas em conformidade com um contrato WSDL/WADL pré-definido. Essencial em sistemas do tipo WebService Pode ser feito manualmente ou automaticamente através de ferramentas. Ajuda a limpar o “lixo” criado durante a fase de desenvolvimento, principalmente quando esta é iniciada sem uma especificação mensagens pronta. Reduz significativamente a quantidade de problemas de integração nas fases posteriores de teste Contrato
  • 17. Valida o conteúdo trafegado nas mensagens esta correto. Se os inputs dos usuários do sistema forem persistidos de alguma forma nas mensagens, o conteúdo destas deve ser verificado. É mais abrangente se feito utilizando Drivers e Mocks. Também valida o comportamento do sistema em caso de respostas http inválidas. Funcional
  • 18. Não devem obrigatoriamente identificar em que momento uma aplicação cai, este é apenas um dos objetivos. Denominados testes negativos. Ajuda a equipe a simular a carga de um ambiente de produção, permitindo otimizações no código do software ou no hardware onde esta instalado. Deve-se isolar bem o sistema alvo para não serem gerados falsos resultados. Divididos geralmente em Carga e Stress, onde o primeiro simula um numero crescente de usuários até o momento de ruptura da aplicação e o segundo além do grande volume de requisições, insere algum cenários de crash a fim de validar a recuperação da aplicação. A monitoração da aplicação durante o teste é tão ou mais importante que o próprio teste. Performance
  • 21. Links úteis e Referências https://smartbear.com https://getpostman.com http://jmeter.apache.org http://www.freeformatter.com/xml-formatter.html http://jsonlint.com https://community.smartbear.com https://www.soapui.org/rest-testing/working-with-rest-services.html https://pt.stackoverflow.com/questions/36745/qual-a-diferen%C3%A7a-entre-mock-stub http://jmeter.com.br/2013/04/qual-a-diferenca-entre-teste-de-stress-performance-e-carga/ http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html https://labsbank.com/ Ferramentas Fóruns/guias/tutoriais