Slide 1

Slide 1 text

Automatizar Testes não é o suficiente @samantacicilia

Slide 2

Slide 2 text

http://samantacicilia.com/ @samantacicilia

Slide 3

Slide 3 text

O que acontece em 60 segundos na internet? @samantacicilia

Slide 4

Slide 4 text

https://www.visualcapitalist.com/what-happens-in-an-internet-minute-in-2019/ @samantacicilia

Slide 5

Slide 5 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 6

Slide 6 text

Como as pessoas definem "Qualidade de Software?" @samantacicilia

Slide 7

Slide 7 text

@samantacicilia

Slide 8

Slide 8 text

A famosa pirâmide de testes @samantacicilia

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Abordagem de Testes @samantacicilia

Slide 12

Slide 12 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 13

Slide 13 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 14

Slide 14 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 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

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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