Slide 1

Slide 1 text

Qualidade de Software & Cultura DevOps @samantacicilia

Slide 2

Slide 2 text

http://samantacicilia.com/ @samantacicilia

Slide 3

Slide 3 text

http://agiletesters.com.br/ @samantacicilia

Slide 4

Slide 4 text

"O maior risco para qualquer esforço de software é você acabar criando algo que não é útil. Quanto mais cedo e mais frequentemente você entrega software para usuários reais, mais rápido você obtém feedback para descobrir o quanto ele é realmente valioso." - Martin Fowler @samantacicilia

Slide 5

Slide 5 text

O que é "Qualidade de Software?" @samantacicilia

Slide 6

Slide 6 text

A famosa pirâmide de testes @samantacicilia

Slide 7

Slide 7 text

https://martinfowler.com/articles/practical-test-pyramid.html @samantacicilia

Slide 8

Slide 8 text

Será que só a visão de pirâmide é suficiente? @samantacicilia

Slide 9

Slide 9 text

Abordagem de Testes @samantacicilia

Slide 10

Slide 10 text

Testes? Unitários: funções testadas isoladamente, são testes mais rápidos e mais confiáveis já que o escopo é bem reduzido. Normalmente são utilizados dublês para substituir integrações. Integração: combina componentes para garantir que a comunicação entre eles atende aos requisitos estabelecidos. Aqui os testes começam a ficar mais dependentes. Contrato: validar se o contrato estabelecido entre um consumidor e provedor está sendo respeitado, e se não, alertar essa diferança antes da alteração chegar em produção. @samantacicilia

Slide 11

Slide 11 text

Testes? End-to-End: responsável pro validar os fluxos literalmente de uma ponta a outra para garantir que todo o ambiente atende aos requisitos. Regressão Visual: testes que, de forma automatizada, expõe qualquer alteração visual em comparação com um baseline. Sistema: testa o sistema já completamente integrado e pode ter como objetivo validar os requisitos funcionais e não funcionais. @samantacicilia

Slide 12

Slide 12 text

Testes? Mutação: altera o código em tempo de execução e espera que os testes falhem, mostrando que os mesmos são efetivos. Performance: avaliar capacidade de resposta, robustez, disponibilidade, confiabilidade e escalabilidade. Chaos: introduzir falhas na sua infraestrutura para observar como ela se recupera e antecipar possíveis problemas. @samantacicilia

Slide 13

Slide 13 text

Estratégia de Testes Testes Pequenos: executados em um único processo, sem uso de componentes externos, threads ou paralelismo. São testes rápidos e determinísticos Testes Médios: executam múltiplos processos mas ainda assim sem acessar componentes externos, podem usar threads e fazer chamadas externas (como chamadas de rede) para o localhost. Testes Grandes: esses testes são os que necessitam de uma maior complexidade para execução, nesse momento os sistemas já estão integrados. São mais lentos e menos determinísticos. @samantacicilia

Slide 14

Slide 14 text

@samantacicilia

Slide 15

Slide 15 text

E depois que vai para produção? Monitoramento Monitoramento Smoke Test Monitoramento Monitoramento Monitoramento Monitoramento Smoke Test Monitoramento Monitoramento Monitoramento Monitoramento Smoke Test Monitoramento Monitoramento @samantacicilia

Slide 16

Slide 16 text

Boas Práticas State Test ou Interaction Test? Testar integrado com terceiros? Dublês de Teste? DRY ou DAMP? @samantacicilia

Slide 17

Slide 17 text

CI & CD Integração Contínua: integrar continuamente as mudanças que serão verificadas por um build automatizado para detectar erros o mais rápido possível. Entrega Contínua: montagem contínua de versões candidatas, seguida pela promoção e testes das mesmas numa série de ambientes até chegar em produção. @samantacicilia

Slide 18

Slide 18 text

Tenha Quality Gates @samantacicilia

Slide 19

Slide 19 text

Atributos de Qualidade Manutenibilidade Segurança Acessibilidade Usabilidade Disponibilidade Internacionalização Confiabilidade Requerimentos Legais Estabilidade Observabilidade Resiliência Compatibilidade @samantacicilia

Slide 20

Slide 20 text

Testabilidade @samantacicilia 1 2 3 Logs Monitoramento Analytics 7 Arquitetura 5 Fronteiras 6 Setup de Ambiente 4 Decomposição

Slide 21

Slide 21 text

Visibilidade! Tenha métricas para conseguir ter visibilidade da eficiência da sua abordagem @samantacicilia

Slide 22

Slide 22 text

@samantacicilia Métricas Lead Time Frequência de Implantação Tempo Médio de Restauração % falhas por alteração

Slide 23

Slide 23 text

@samantacicilia Habilitar Entrega Contínua gera valor, mesmo que você não disponibilize todas essas mudanças para o cliente final

Slide 24

Slide 24 text

Qualidade é uma característica percebida, feita de expectativas do usuário (coisa que você não controla) Samanta Cicilia @samantacicilia

Slide 25

Slide 25 text

samantacicilia.com samantacici agiletesters.com.br Obrigada @samycici/palestras

Slide 26

Slide 26 text

Referências - Testes de Mutação: https://youtu.be/TIiVYhoEB8o - Desenvolvendo uma Estratégia de Testes: https://youtu.be/CtvChJbDGOM - Triângulo de Testes Não Mais: https://youtu.be/QSZYrVLcfto - Abordagem de Testes: https://medium.com/assertqualityassurance/abordagem-de-testes- 212b6238f0c3 - Os arquétipos do QA: https://medium.com/assertqualityassurance/os- arqu%C3%A9tipos-do-qa-90538e018ebe @samantacicilia