48
Globalcode – Open4education sexta-feira, 19 de outubro de 2012

Testes

Embed Size (px)

DESCRIPTION

Como avaliar a sua suíte de testes automatizados?

Citation preview

Page 1: Testes

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Page 2: Testes

Globalcode  –  Open4education

Lições do Futuro: O que eu queria saber há alguns anos atrás

sobre como manter uma suíte de testessexta-feira, 19 de outubro de 2012

Page 3: Testes

Globalcode  –  Open4education

Eder Ignatowicz...

Software Craftsman @ Dextra(Arquitetura, NoSQL, Devops, QA)

Doutorando na Unicamp (Polyglot Persistence em Cidades Digitais)

Professor na Faccamp e Unisal

Editor líder no InfoQ Brasil

@ederign

sexta-feira, 19 de outubro de 2012

Page 4: Testes

Globalcode  –  Open4education

Fábio Lima Santos

Software Craftsman @ Dextra(Arquitetura, NoSQL, Devops, QA)

Doutorando na Unicamp (Polyglot Persistence em Cidades Digitais)

Professor na Faccamp e Unisal

Editor líder no InfoQ Brasil

@ederign

sexta-feira, 19 de outubro de 2012

Page 5: Testes

Globalcode  –  Open4education

Maior grupo financeiro de câmbio do Brasil

sexta-feira, 19 de outubro de 2012

Page 6: Testes

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Page 7: Testes

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Page 8: Testes

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Page 9: Testes

Globalcode  –  Open4education

Qualidade não é negociável!!!

Você tem o direito de fazer direito!

sexta-feira, 19 de outubro de 2012

Page 10: Testes

Globalcode  –  Open4education

Testes Unitários

Testes de Integração

sexta-feira, 19 de outubro de 2012

Page 11: Testes

Globalcode  –  Open4education

BDD

Desenvolvimento de Framework Próprio

sexta-feira, 19 de outubro de 2012

Page 12: Testes

Globalcode  –  Open4education

Testes Funcionais

sexta-feira, 19 de outubro de 2012

Page 13: Testes

Globalcode  –  Open4education

BDD + Testes Funcionais

+

sexta-feira, 19 de outubro de 2012

Page 14: Testes

Globalcode  –  Open4education

Abandono Testes Integração

sexta-feira, 19 de outubro de 2012

Page 15: Testes

Globalcode  –  Open4education

Alta Taxa de Cobertura

sexta-feira, 19 de outubro de 2012

Page 16: Testes

Globalcode  –  Open4education

Deploy 3x/SemanaPlataforma Bancária

sexta-feira, 19 de outubro de 2012

Page 17: Testes

Globalcode  –  Open4education

Cliente Feliz4 anos de projeto (~12 pessoas)

sexta-feira, 19 de outubro de 2012

Page 18: Testes

Globalcode  –  Open4education

“Continuous Delivery”

sexta-feira, 19 de outubro de 2012

Page 19: Testes

Globalcode  –  Open4education

Explosão na Quantidade de Testes Funcionais

sexta-feira, 19 de outubro de 2012

Page 20: Testes

Globalcode  –  Open4education

Lentidão na execução da suíte de testes

sexta-feira, 19 de outubro de 2012

Page 21: Testes

Globalcode  –  Open4education

Time Triste

sexta-feira, 19 de outubro de 2012

Page 22: Testes

Globalcode  –  Open4education

Onde erramos?

Como saber se minha suíte de testes não está indo para o buraco?

sexta-feira, 19 de outubro de 2012

Page 23: Testes

Globalcode  –  Open4education

Bugs em Produção

Seus testes não passam?

Você não tem testes?

sexta-feira, 19 de outubro de 2012

Page 24: Testes

Globalcode  –  Open4education

Seus testes passam?

Você não está testando a funcionalidade certa!

Você não está testando o sistema correto

Bugs em Produção

sexta-feira, 19 de outubro de 2012

Page 25: Testes

Globalcode  –  Open4education

Em produção funciona?

Você não está testando o sistema certo!

Teste quebra

sexta-feira, 19 de outubro de 2012

Page 26: Testes

Globalcode  –  Open4education

Funcionalidade é alterada

Seu teste passa sem precisar de alteração?

Você não está testando a funcionalidade correta!

sexta-feira, 19 de outubro de 2012

Page 27: Testes

Globalcode  –  Open4education

Você corrige um defeito

Seu teste passa a quebrar?

Você não está focando seus testes na funcionalidade e sim no sistema

sexta-feira, 19 de outubro de 2012

Page 28: Testes

Globalcode  –  Open4education

Você altera o sistema

Não tem feedback rápido dos testes?

sexta-feira, 19 de outubro de 2012

Page 29: Testes

Globalcode  –  Open4education

Você tem um problema arquitetural nos seus testes!

Você não vai rodar a sua suíte! (sob pressão)

sexta-feira, 19 de outubro de 2012

Page 30: Testes

Globalcode  –  Open4education

Você faz uma pequena alteração no sistema

É difícil identificar um teste que possa ser rodado agora?

É difícil identificar qual teste foi afetado?

sexta-feira, 19 de outubro de 2012

Page 31: Testes

Globalcode  –  Open4education

Você não vai testar a funcionalidade e nem rodar a suíte completa porque ela é lenta

Você vai implantar com a suíte quebrada

sexta-feira, 19 de outubro de 2012

Page 32: Testes

Globalcode  –  Open4education

Você vai demorar para identificar o que quebrou

Você vai implantar em produção com a sua suíte

quebrada

Pequena alteração, muitos testes quebram?

sexta-feira, 19 de outubro de 2012

Page 33: Testes

Globalcode  –  Open4education

Mas quais são as características de uma boa suíte de testes?

sexta-feira, 19 de outubro de 2012

Page 34: Testes

Globalcode  –  Open4education

Uma boa suíte de testes é qualquer suíte de testes que não tenha os

problemas apresentados!

sexta-feira, 19 de outubro de 2012

Page 35: Testes

Globalcode  –  Open4education

Mas e se eu tivesse uma máquina do tempo?

sexta-feira, 19 de outubro de 2012

Page 36: Testes

Globalcode  –  Open4education

Não existe bala de prata

sexta-feira, 19 de outubro de 2012

Page 37: Testes

Globalcode  –  Open4education

Mas o que talvez (provavelmente) funcione?

sexta-feira, 19 de outubro de 2012

Page 38: Testes

3 F’s - Corey Haines

FastCiclo TDD - < 1 min

Ciclo Integração - rápido o suficiente Suíte Lenta == Builds Quebradas

FocusedUm Teste = Uma Razão pra Mudança

Feedback Rápido

FullCobrir o maior % possível do sistema

sexta-feira, 19 de outubro de 2012

Page 39: Testes

Código de teste é tão importante quanto código de produção

Testes bem escritos e em grupos pequenos no mesmo contexto

Toda a equipe deve escrever a suíte de testes

sexta-feira, 19 de outubro de 2012

Page 40: Testes

Consistente e Confiável

A sua suíte de testes deve conquistar a confiança da sua equipe, do seu gerente e do cliente

sexta-feira, 19 de outubro de 2012

Page 41: Testes

“Isolada”

Um teste não pode influenciar o resultado de outro

Feedback Rápido

sexta-feira, 19 de outubro de 2012

Page 42: Testes

Duráveis

Mantém seu valor durante toda a vida do produto

sexta-feira, 19 de outubro de 2012

Page 43: Testes

Documentação

Testes servem como documentação (são a melhor documentação que

você vai ter)

Documentação viva, especificação executável.

Testes devem informar a intenção de um desenvolvedor

sexta-feira, 19 de outubro de 2012

Page 44: Testes

Foque a cobertura nas funcionalidades que mudam com

maior frequência

Faça testes para os bugs em produção - você automaticamente

estará testando o mais crítico

sexta-feira, 19 de outubro de 2012

Page 45: Testes

Não deixe o teste para o finalNão rode a suíte somente antes de

gerar a versão

Faça integração contínua

Não se preocupe com a performance de execução de um teste, mas sim com o paralelismo e concorrência.

sexta-feira, 19 de outubro de 2012

Page 46: Testes

Mas o que é mais importante?

sexta-feira, 19 de outubro de 2012

Page 47: Testes

Globalcode  –  Open4education

Saber se sua suíte está indo para o buraco

sexta-feira, 19 de outubro de 2012

Page 48: Testes

Globalcode  –  Open4education

@ederign

sexta-feira, 19 de outubro de 2012