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

Atualizando versões de API externas sem medo

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Atualizando versões de API externas sem medo

Apresentação realizada no TDC São Paulo 2018

Avatar for Alisson Bruno

Alisson Bruno

July 20, 2018

Other Decks in Programming

Transcript

  1. Globalcode – Open4education Trilha DevTest – Atualizando versões de API

    externas sem medo Bruno Tanoue QA Engineer @ResultadosDigitais Alisson Bruno Software Engineer @ResultadosDigitais
  2. Globalcode – Open4education Introdução • Abril de 2016 • Impacto

    real • Postagem em Mídias Sociais • Monitoramento de Mídias Sociais • Relatório de Mídias Sociais
  3. Globalcode – Open4education Introdução • Aprendizados (Post-mortem) • Changelog •

    Impacto da alteração • Monitoramento • Testes automatizados • Testes de Contrato http://brodzinski.com/2008/03/post-mortem-basics.html
  4. Globalcode – Open4education “Test Double é um termo genérico para

    qualquer caso em que você substitui um objeto de produção para fins de teste.” — Martin Fowler
  5. Globalcode – Open4education • Março de 2018 • Deadline de

    depreciação de API do Facebook(Abril/2018) • Versão atual: v2.5 • Proposta de modificação inicial: v2.6 (+3 meses) Atualização de versão da API do Facebook
  6. Globalcode – Open4education • Antipattern de Testes de Contrato https://docs.pact.io/faq#why-are-the-pacts-generated-and-not-static

    Atualização de versão da API do Facebook “Modificação de contratos de forma estática”
  7. Globalcode – Open4education • Antipattern de Testes de Contrato •

    Feedback de quebras • Custo de alteração • Segurança • Planejamento Atualização de versão da API do Facebook
  8. Globalcode – Open4education Esforços necessários • Atualização da versão do

    cliente da API • Removidos os testes que não eram mais necessários • Atualização dos testes “mockados” • Atualização dos arquivos de contrato • Removidos contratos alterados manualmente • Gerados novos contratos de forma automática
  9. Globalcode – Open4education • Aprendizado com erros do passado •

    Post-mortems • PR (Atualização problemática) • Pair (Desenvolvedor & QA) • Levantamento de impacto • Changelogs • Monitoramento Lições aprendidas