1 / AgileBrazil 2011 Melhorando a Qualidade dos Códigos de Teste Maurício Eduardo

Slides:



Advertisements
Apresentações semelhantes
Tecnologias para Internet Thyago Maia Tavares de Farias Aula 19.
Advertisements

Test Driven Development (TDD) Carlos Morais Desenvolvimento Dirigido por Testes.
Testes de Unidade Paulo Cheque 10/02/2009 Verão 2009.
Com isto a variável (que geralmente é o X) terá um único valor!
Estudo de Mercado Previsão de demanda.
Luiz Fernando Veríssimo
Como escrever um Artigo científico?
(baseado em slides de ex-alunos)
Editora Zahar, 2015, tradução de Denise Bottmann.
Princípios Bíblicos na Educação de Filhos
GRUPO DE PASSOS Espaço para viver um aprofundamento nos 12 Passos
Você sabe como agir com um cão-guia?
Clique para ir mudando o quadro
IP – Condicionais e controle de fluxo
Administrando seu tempo
REGRAS PARA SER HUMANO Quando você nasceu não veio com manual do proprietário. As dicas seguintes fazem a vida funcionar melhor.
Introdução à Programação
Sempre ouvimos as regras do lado feminino
Testes e Qualidade de Software
“Opção” Tudo na minha e na sua vida, é pura
Amor. Gratidão a todos os Mestres Espirituais que “trilharam o caminho” antes de nós...
Workshop Agile tdd - Test Driven development
SINAIS.
Citações diretas e indiretas – pontos para observar
IP – Repetições Prof. Eduardo Falcão.
Nunca diga que algo é impossível...
Introdução à Programação
S S U N C A M I S E T A S NENHUM DE NÓS É MELHOR DO QUE TODOS NÓS JUNTOS. Marco Aurélio Gonçalves.
SUPREMA TREINAMENTOS EMPRESARIAIS
DEPOIS DE ALGUM TEMPO. Depois de algum tempo, você aprende a diferenciar a sutil diferença, entre dar a mão e acorrentar uma alma. Desconheço o autor do.
Escolha você também a sua frase preferida.
Moisés, chamado por Deus
11ª F E N A V I D MOTIVAÇÃO E VENDAS Atitudes que geram RESULTADOS
Fotos: TUDO BRANCO Texto: FELICIDADE.
Fotos: TUDO BRANCO Texto: FELICIDADE.
Atravessando águas turbulentas
APRESENTAÇÃO DO TRABALHO DE CONCLUSÃO CURSO
Preparado por Dinis Bento
Escolha você também a sua frase preferida.
Preparado por: Dinis Bento
O ANEL
A Magia está em você A Magia está em você Paulo Araújo Paulo Araújo
GRUPO “SEM” 1º ENCONTRO Fazendo Slides no Power Point
FELIZ OLHAR NOVO!!!. FELIZ OLHAR NOVO!!! O grande barato da vida é olhar para trás e sentir orgulho da sua história. O grande lance é viver cada momento.
Desafio: Sugestões de projetos baratos de melhoria do ambiente no prédio da engenharia civil, não exigindo reformas, envolvendo acústica, aproveitamento.
Livre arbítrio Letícia Thompson.
CONTABILIDADE CONSULTIVA
O Mestre, com muita tranquilidade, falou:
Clique para mudar slides
1 minuto com DeuS.
Esse é um teste muito interessante.
SEJAM BEM-VINDOS!! Slide de abertura – opção 2 Rubens Berredo.
O Anel
Vamos Fazer um Filme....
Clique para mudar slides
Preparado por Dinis Bento
Preparado por Dinis Bento
Padronização / Especificação
HONESTAMENTE.
Formas de fazer sua apresentação
Preparado por: Dinis Bento
PERSONIFICANDO A MINHA IDENTIDADE.
Só depende de você Cecília Sfalsin.
Texto: Autor Desconhecido
Prof. Elisson de Andrade
Dicas para um bom PITCH Deu Certo
Dicas para um bom PITCH Deu Certo Cultura da Inovação Brasil
O Triplo Filtro.
Prof. Elisson de Andrade
Transcrição da apresentação:

1 / AgileBrazil 2011 Melhorando a Qualidade dos Códigos de Teste Maurício Eduardo

2 / about:me Programador Ruby, Java, Python, Scala, C/C++, etc... Scrum Master Test-Addicted Clean-Code Addicted Enfim...

3 / Intro Agilidade, mudanças contínuas, requisitos mutantes Garantia de estabilidade – testes ”Dedo duro” - sempre saber o estado de seu sistema Confiabilidade no código, acabar com o ”medo de mudar” Requisitos mudam == testes mudam

4 / Intro – Testes se Pagam Testes demoram para ser escritos?

5 / Mudança - Exemplo Parsing de HTML Quero uma lista de todos os homens na página Para saber se o Ariovaldo está aparecendo na listagem de homens

6 / Minha Abordagem: BDD Testes x Comportamento Deixa eu ver se isso funciona... assert(this, works()); Deixa eu ver se está fazendo isso mesmo... assertThat(this, isDoing(right)); Assert x Should (Assert x Matcher) Big Picture – Small Picture – Smaller Picture – Unit Test

7 / Primeiros Exemplos Situação: elemento está verde?

8 / Mudança de ”Estilo” Situação: salário válido deve calcular IRPF

9 / (Evitar Cometer) Erros Comuns

10 / JAMAIS!!!

11 / Oops... Certos testes não dizem NADA Certos testes dizem DEMAIS

12 / Framework de Testes O que usar, como usar, por que usar?

13 / Framework de Testes Test/Unit, JBehave, RSpec, ScalaTest, JUnit, Jasminne, JSpec... Mocks: Mocha, FlexMock, Mockito, JMock, etc... Escolha corretamente: Um framework de testes: Deve ser extensível Deve ser flexível Um framework de mocks: Deve refletir a forma como você pensa

14 / Framework de Testes

15 / Codebase Comparação entre código e linhas de teste 1:1 (se possível) Testes devem crescer junto com seu código Classes auxiliares, métodos, custom matchers, etc Conforme seu projeto vai crescendo, a dificuldade de escrever novos testes deve ficar constante ou diminuir!

16 / Mocks Expectations: antes do teste, o define-se o que esperamos que o mock receba (Mocha, RSpec, FlexMock, JMock) Assertions: depois do teste, vemos o que o mock recebeu (Mockito)

17 / Eu uso... Para Ruby: RSpec, e às vezes, Mocha Para Scala: ScalaTest com Mockito Para Java: JUnit (com os Hamcrest matchers) e Mockito Para JavaScript: Jasminne

18 / Primeiro, resolva o problema Represente! A vida é um teatro! Não escreva NADA antes de resolver o problema Protótipos são válidos, mas devem ser descartados

19 / Então, escreva o código Teste vem PRIMEIRO Código vem DEPOIS Somente um teste deve falhar por vez Quer dizer...

20 / Somente um teste falhando? Mini-integrações

21 / Ambiente Isolado Todo teste, no BDD, é um cenário Pensar num teatro: Montar o cenário (Setup) Apresentação (para o código) Aceitação do público Desmontar tudo Peça foi um fracasso: ainda assim, desmontar tudo TearDown Infra-Estrutura do Teatro Setup Apresentação Aceitação

22 / Preparação não pode ficar implícita (Muito comum no RSpec / Ruby)

23 / Mas também, nada de explícita (Comum com situações que exigem muito ”setup”)

24 / Meio-Termo Métodos que ajudam a construir o cenário ideal

25 / Métricas (LOC) Setup (montar o cenário): Ideal: de 1 a 4 linhas Ruim: de 5 a 7 linhas Maior que 7: Rever a preparação do Cenário Chamada de método: Ideal: 1 linha Péssimo: maior que 2 linhas JAMAIS: Use IF, CASE, ou qualquer condicional!

26 / Estilo de Teste Como fazer seu teste ter menos cara de código e mais cara de texto.

27 / Bee English Dê sentido para as coisas!

28 / Bee English Falta de Sentido: ”que é que isso fazia mesmo???”

29 / Bee English Pense em como você descreveria aquele pedaço Adapte o texto até chegar à linguagem de teste

30 / Bee English Monte sua ”história” baseando-se na linguagem

31 / Uma Última Coisa Mocks e Stubs

32 / Stub! Stub como forma de ”controle” Programação Funcional Stub em algum lugar aqui dentro...

33 / Devil's Advocate Mas... e com a correria? Mas... você não demora mais pra fazer isso? Mas... a empresa (coloque aqui sua empresa favorita) não usa isso... Mas... meu código sequer tem testes, como eu vou aplicar isso?

34 / That's It Perguntas? Idéias?