Slide 1

Slide 1 text

Triângulos de Teste Não Mais! @samantacicilia

Slide 2

Slide 2 text

@samantacicilia

Slide 3

Slide 3 text

Disclaimer: não é uma receita de bolo! Ouça e critique @samantacicilia

Slide 4

Slide 4 text

@samantacicilia

Slide 5

Slide 5 text

@samantacicilia https://twitter.com/noahsussman/status/836612175707930625

Slide 6

Slide 6 text

@samantacicilia https://twitter.com/FriendlyTester/status/1079470289396867080?s=20

Slide 7

Slide 7 text

Pirâmides, Triângulos, Troféus, Pipas e mais ... @samantacicilia

Slide 8

Slide 8 text

@samantacicilia

Slide 9

Slide 9 text

@samantacicilia

Slide 10

Slide 10 text

Figuras geométricas deviam mesmo ser nossa maior preocupação? @samantacicilia

Slide 11

Slide 11 text

@samantacicilia https://twitter.com/kentcdodds/status/977018512689455106

Slide 12

Slide 12 text

"Não existe uma regra rígida aqui, depende da sua aplicação. O ponto importante é que você precisa dedicar algum tempo para entender que tipo de teste agrega mais valor à sua aplicação. A pirâmide de teste é apenas uma sugestão sobre a aplicação. quantidade de testes que você deve criar. " http://blog.codepipes.com/testing/software-testing-antipatterns.html @samantacicilia

Slide 13

Slide 13 text

Suportar testes em vez de replicar testes Testabilidade em vez de automatização Teste de experiência em vez de codificação Problemas em vez de ferramentas Foco no risco em vez de cobertura Observabilidade em vez de compreensão https://automationintesting.com/#principles @samantacicilia

Slide 14

Slide 14 text

PIRÂMIDE É HEURÍSTICA Escolha mais fácil e rápida Ignora parte da informação 01 02 @samantacicilia

Slide 15

Slide 15 text

SAMY QUOTE: "Meu incômodo é que a gente ainda fala pouco sobre riscos. Testes unitários são mais rápidos e menos intermitentes mas se você abusa do uso de mocks, você tem muitos testes com baixa fidelidade em relação ao comportamento real. Os testes podem continuar passando e o seu mock estar desatualizado. Não é só criar um monte de teste unitário, é comprar o risco da baixa fidelidade nos testes e inclusive o risco de que a qualidade dos mesmos pode ser questionável. Coverage não diz muita coisa sozinho." @samantacicilia

Slide 16

Slide 16 text

O que fazer então? @samantacicilia

Slide 17

Slide 17 text

O QUE DEVERÍAMOS CONSIDERAR? Escopo Tamanho 01 02 Risco 03 @samantacicilia

Slide 18

Slide 18 text

http://blog.codepipes.com/testing/software-testing-antipatterns.html @samantacicilia

Slide 19

Slide 19 text

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. OUTRA FORMA DE CATEGORIZAR @samantacicilia

Slide 20

Slide 20 text

OUTRA FORMA DE CATEGORIZAR @samantacicilia

Slide 21

Slide 21 text

O QUE É MELHOR ENTÃO? Assumir % de testes intermitentes e garantir uma cobertura integrada? 01 Assumir a baixa fidelidade dos mocks e deixar pontos de falha? 02 @samantacicilia

Slide 22

Slide 22 text

@samantacicilia

Slide 23

Slide 23 text

E lembrando que, além de criar os testes, eles precisam estar no fluxo de desenvolvimento de forma automática... @samantacicilia

Slide 24

Slide 24 text

OUTROS PONTOS PARA CONSIDERAR Pré-push: - testes rápidos e confiáveis - produtividade do time - rodar apenas os testes relacionados ao escopo da mudança? Versão Candidata: - testes maiores e mais instáveis - utilizar um ambiente temporário e controlado - teste de sanidade Testes de Produção: - testes relevantes - verificar o estado - monitoramento @samantacicilia

Slide 25

Slide 25 text

OUTROS PONTOS PARA CONSIDERAR 1. AGILIDADE 2. AUTOMAÇÃO 3. ISOLAMENTO 4. CONFIABILIDADE 5. DECISÕES DIRIGIDAS POR DADOS 6. ROLLOUT FASEADO @samantacicilia

Slide 26

Slide 26 text

QUALIDADE É MUITO MAIS @samantacicilia

Slide 27

Slide 27 text

Testabilidade @samantacicilia

Slide 28

Slide 28 text

TESTABILIDADE - Logs - Monitoramento - Analytics - Decomposição - Fronteiras - Setup de ambiente - Arquitetura @samantacicilia

Slide 29

Slide 29 text

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