SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
#DESCOMPLICANDOTESTES
DESCOMPLICANDO
TESTES
AUTOMATIZADOS DE
CONTRATO
Com RestAssured e JsonSchemaValidator
. . . .
. . . .
. . . .
. . . .
. . . .
TDC
FUTURE
STATUS CODE
RESPONSE BODY
SCHEMA
HEADER
+
. . . .
. . . .
. . . .
. . . .
. . . .
Classificação da informação: Uso Interno
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
Porto Alegre - RS
+ 10 anos de TI
QEL no Sicredi
/brunolusa
/bruno.lusa
/in/brunolusa
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Bruno Lusa
Classificação da informação: Uso Interno
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
O que é teste de contrato?
O que é Pact FrameWork?
O que validar?
Exemplo de código
Estratégia de execução
Bibliotecas
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contract First
+
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
AGENDA
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
O QUE É TESTE DE CONTRATO?
. . . .
. . . .
. . . .
. . . .
. . . .
+
. . . .
. . . .
. . . .
. . . .
. . . .
• É diferente do Pact Framework;
• Tipo de teste realizado em aplicações, contido na
parte central da pirâmide de testes;
• É um dos testes mais importantes em arquiteturas
de microsserviços;
• A validação do jsonSchema é uma das etapas do
teste de contrato;
• Não substitui outros tipos de testes, complementa!
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
+
. . . .
. . . .
. . . .
. . . .
. . . .
O Pact Framework realiza a criação e os testes dos contratos entre as
partes sem contar com uma linguagem de programação.
Pontos Negativos:
• Necessidade de uma infraestrutura
• Curva de Aprendizado
• Manutenção de Pactos
• Falsos Positivos/Negativos
• Complexidade em Sistemas Grandes
• Necessidade de Coordenação
Pontos Positivos:
• Desenvolvimento Orientado a Consumidor
• Isolamento de Testes
• Integração Contínua
• Mock Services
• Documentação Viva
• Suporte a Múltiplas Linguagens
O QUE É O PACT
FRAMEWORK?
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
O QUE VALIDAR?
. . . .
. . . .
. . . .
. . . .
. . . .
+
. . . .
. . . .
. . . .
. . . .
. . . .
• Status Code: O código http retornado quando
interagirmos com um dos verbos da aplicação;
• Formato: O formato da resposta no corpo (quando
existente);
• Cabeçalho: Validar informações das autorizações
ou autenticações;
• Corpo: Validar a tipagem dos dados retornados.
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
+
. . . .
. . . .
. . . .
. . . .
. . . .
Projeto
E COMO FICA NO CÓDIGO?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
+
Projeto
Como estratégia devemos sempre executar após o deploy
da aplicação, garantindo assim que os contratos
acordados seguem inalterados!
. . . .
. . . .
. . . .
. . . .
. . . .
ESTRATÉGIA DE EXECUÇÃO
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
+
Projeto
Acesse o projeto para ter mais informações.
. . . .
. . . .
. . . .
. . . .
. . . .
BIBLIOTECAS UTILIZADAS
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
+
. . . .
. . . .
. . . .
. . . .
. . . .
CONTRACT FIRST
• "Contract-first" é uma abordagem usada no desenvolvimento de
aplicações onde o primeiro passo é definir um contrato;
• O contrato define o que o serviço vai fazer, quais operações ele suporta,
quais tipos de dados ele usa, e como as mensagens serão trocadas entre o
cliente e o serviço;
• Uma vez que o contrato é definido, ele habilita o desenvolvimento por
parte do cliente, do servidor e da automação;
• A abordagem "contract-first" é contrastada com a abordagem "code-
first", onde o código é escrito primeiro e o contrato é gerado a partir do
código.
Alternativas para iniciar a automação sem a Aplicação pronta e disponível: MockServer`s: Hoverfly,
Wiremock Server ou Cloud, jSonServer, etc.
Fonte: Material sobre Contract First: https://www.zup.com.br/blog/desenvolvimento-de-apis-design-first-e-code-first
Classificação da informação: Uso Interno
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
DESCOMPLICANDO
. . . .
. . . .
. . . .
. . . .
. . . .
+
. . . .
. . . .
. . . .
. . . .
. . . .
• Teste de contrato não é Pact Framework;
• Não confunda “Teste de Contrato” com “Teste de
Schema”, isso é uma parte do Teste de Contrato;
• O contrato é composto por status code, formato,
cabeçalho e corpo (quando existente);
• Lembre-se de construir o contrato antes da primeira
linha de código;
• Podemos começar por ele e já ter ganhos desde o
primeiro build da aplicação.
Classificação da informação: Uso Interno
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Obrigado!

Mais conteúdo relacionado

Semelhante a TheDevConf - DEVTEST - POA - 2023.pdf

Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1)
 Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1) Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1)
Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1)Mers Benevides
 
Inst configdebian
Inst configdebianInst configdebian
Inst configdebianTiago
 
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...RodrigoLuis21
 
Manual Navisworks_Manage_2012.pdf
Manual Navisworks_Manage_2012.pdfManual Navisworks_Manage_2012.pdf
Manual Navisworks_Manage_2012.pdfssuser258cf9
 
Monitoramento
MonitoramentoMonitoramento
MonitoramentoTiago
 
Relatorio final - Blinded Walker
Relatorio final - Blinded WalkerRelatorio final - Blinded Walker
Relatorio final - Blinded WalkerTiago Cunha
 
Postfix
PostfixPostfix
PostfixTiago
 
Python gtk
Python gtkPython gtk
Python gtkTiago
 
Intro redes
Intro redesIntro redes
Intro redesTiago
 
ZT230 - Manual de Usuário Para Impressora
ZT230 - Manual de Usuário Para ImpressoraZT230 - Manual de Usuário Para Impressora
ZT230 - Manual de Usuário Para ImpressoraUseZ
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbVinicius Fonseca
 

Semelhante a TheDevConf - DEVTEST - POA - 2023.pdf (20)

Manual dreamweaver cs4
Manual dreamweaver cs4Manual dreamweaver cs4
Manual dreamweaver cs4
 
Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1)
 Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1) Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1)
Platic--plataforma-da-tecnologia-da-informaacaao--vol-iii (1)
 
Aprendendo Action Script 2.0
Aprendendo  Action Script 2.0Aprendendo  Action Script 2.0
Aprendendo Action Script 2.0
 
Flash
Flash Flash
Flash
 
Inst configdebian
Inst configdebianInst configdebian
Inst configdebian
 
Reunião COMJOVEM SP - Palestra: Ferramentas Tecnológicas
Reunião COMJOVEM SP - Palestra: Ferramentas Tecnológicas Reunião COMJOVEM SP - Palestra: Ferramentas Tecnológicas
Reunião COMJOVEM SP - Palestra: Ferramentas Tecnológicas
 
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
 
Manual Navisworks_Manage_2012.pdf
Manual Navisworks_Manage_2012.pdfManual Navisworks_Manage_2012.pdf
Manual Navisworks_Manage_2012.pdf
 
Manual call report_v2.0
Manual call report_v2.0Manual call report_v2.0
Manual call report_v2.0
 
Manual call report_v2.0
Manual call report_v2.0Manual call report_v2.0
Manual call report_v2.0
 
Monitoramento
MonitoramentoMonitoramento
Monitoramento
 
Relatorio final - Blinded Walker
Relatorio final - Blinded WalkerRelatorio final - Blinded Walker
Relatorio final - Blinded Walker
 
Zt400 series
Zt400 seriesZt400 series
Zt400 series
 
Postfix
PostfixPostfix
Postfix
 
Sql
SqlSql
Sql
 
Horde
HordeHorde
Horde
 
Python gtk
Python gtkPython gtk
Python gtk
 
Intro redes
Intro redesIntro redes
Intro redes
 
ZT230 - Manual de Usuário Para Impressora
ZT230 - Manual de Usuário Para ImpressoraZT230 - Manual de Usuário Para Impressora
ZT230 - Manual de Usuário Para Impressora
 
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejbK19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
K19 k23-integracao-de-sistemas-com-webservices-jms-e-ejb
 

TheDevConf - DEVTEST - POA - 2023.pdf

  • 1. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #DESCOMPLICANDOTESTES DESCOMPLICANDO TESTES AUTOMATIZADOS DE CONTRATO Com RestAssured e JsonSchemaValidator . . . . . . . . . . . . . . . . . . . . TDC FUTURE STATUS CODE RESPONSE BODY SCHEMA HEADER + . . . . . . . . . . . . . . . . . . . .
  • 2. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Porto Alegre - RS + 10 anos de TI QEL no Sicredi /brunolusa /bruno.lusa /in/brunolusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bruno Lusa
  • 3. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O que é teste de contrato? O que é Pact FrameWork? O que validar? Exemplo de código Estratégia de execução Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contract First + . . . . . . . . . . . . . . . . . . . . AGENDA
  • 4. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O QUE É TESTE DE CONTRATO? . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . • É diferente do Pact Framework; • Tipo de teste realizado em aplicações, contido na parte central da pirâmide de testes; • É um dos testes mais importantes em arquiteturas de microsserviços; • A validação do jsonSchema é uma das etapas do teste de contrato; • Não substitui outros tipos de testes, complementa!
  • 5. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . O Pact Framework realiza a criação e os testes dos contratos entre as partes sem contar com uma linguagem de programação. Pontos Negativos: • Necessidade de uma infraestrutura • Curva de Aprendizado • Manutenção de Pactos • Falsos Positivos/Negativos • Complexidade em Sistemas Grandes • Necessidade de Coordenação Pontos Positivos: • Desenvolvimento Orientado a Consumidor • Isolamento de Testes • Integração Contínua • Mock Services • Documentação Viva • Suporte a Múltiplas Linguagens O QUE É O PACT FRAMEWORK?
  • 6. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . O QUE VALIDAR? . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . • Status Code: O código http retornado quando interagirmos com um dos verbos da aplicação; • Formato: O formato da resposta no corpo (quando existente); • Cabeçalho: Validar informações das autorizações ou autenticações; • Corpo: Validar a tipagem dos dados retornados.
  • 7. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . Projeto E COMO FICA NO CÓDIGO? . . . . . . . . . . . . . . . .
  • 8. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + Projeto Como estratégia devemos sempre executar após o deploy da aplicação, garantindo assim que os contratos acordados seguem inalterados! . . . . . . . . . . . . . . . . . . . . ESTRATÉGIA DE EXECUÇÃO
  • 9. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + Projeto Acesse o projeto para ter mais informações. . . . . . . . . . . . . . . . . . . . . BIBLIOTECAS UTILIZADAS
  • 10. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . CONTRACT FIRST • "Contract-first" é uma abordagem usada no desenvolvimento de aplicações onde o primeiro passo é definir um contrato; • O contrato define o que o serviço vai fazer, quais operações ele suporta, quais tipos de dados ele usa, e como as mensagens serão trocadas entre o cliente e o serviço; • Uma vez que o contrato é definido, ele habilita o desenvolvimento por parte do cliente, do servidor e da automação; • A abordagem "contract-first" é contrastada com a abordagem "code- first", onde o código é escrito primeiro e o contrato é gerado a partir do código. Alternativas para iniciar a automação sem a Aplicação pronta e disponível: MockServer`s: Hoverfly, Wiremock Server ou Cloud, jSonServer, etc. Fonte: Material sobre Contract First: https://www.zup.com.br/blog/desenvolvimento-de-apis-design-first-e-code-first
  • 11. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DESCOMPLICANDO . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . • Teste de contrato não é Pact Framework; • Não confunda “Teste de Contrato” com “Teste de Schema”, isso é uma parte do Teste de Contrato; • O contrato é composto por status code, formato, cabeçalho e corpo (quando existente); • Lembre-se de construir o contrato antes da primeira linha de código; • Podemos começar por ele e já ter ganhos desde o primeiro build da aplicação.
  • 12. Classificação da informação: Uso Interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obrigado!