Testes

Preview:

DESCRIPTION

Como avaliar a sua suíte de testes automatizados?

Citation preview

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

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

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

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

Globalcode  –  Open4education

Maior grupo financeiro de câmbio do Brasil

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Qualidade não é negociável!!!

Você tem o direito de fazer direito!

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Testes Unitários

Testes de Integração

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

BDD

Desenvolvimento de Framework Próprio

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Testes Funcionais

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

BDD + Testes Funcionais

+

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Abandono Testes Integração

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Alta Taxa de Cobertura

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Deploy 3x/SemanaPlataforma Bancária

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Cliente Feliz4 anos de projeto (~12 pessoas)

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

“Continuous Delivery”

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Explosão na Quantidade de Testes Funcionais

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

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

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Time Triste

sexta-feira, 19 de outubro de 2012

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

Globalcode  –  Open4education

Bugs em Produção

Seus testes não passam?

Você não tem testes?

sexta-feira, 19 de outubro de 2012

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

Globalcode  –  Open4education

Em produção funciona?

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

Teste quebra

sexta-feira, 19 de outubro de 2012

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

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

Globalcode  –  Open4education

Você altera o sistema

Não tem feedback rápido dos testes?

sexta-feira, 19 de outubro de 2012

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

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

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

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

Globalcode  –  Open4education

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

sexta-feira, 19 de outubro de 2012

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

Globalcode  –  Open4education

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

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Não existe bala de prata

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

Mas o que talvez (provavelmente) funcione?

sexta-feira, 19 de outubro de 2012

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

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

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

“Isolada”

Um teste não pode influenciar o resultado de outro

Feedback Rápido

sexta-feira, 19 de outubro de 2012

Duráveis

Mantém seu valor durante toda a vida do produto

sexta-feira, 19 de outubro de 2012

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

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

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

Mas o que é mais importante?

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

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

sexta-feira, 19 de outubro de 2012

Globalcode  –  Open4education

@ederign

sexta-feira, 19 de outubro de 2012

Recommended