87
19 de Dezembro, 2015 R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com

All You Need Is TDD (Português)

  • Upload
    huge

  • View
    1.931

  • Download
    3

Embed Size (px)

Citation preview

Page 1: All You Need Is TDD (Português)

19 de Dezembro, 2015 R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com

Page 2: All You Need Is TDD (Português)

All You Need Is TDD

Huge

19 de dezembro, 2015

Page 3: All You Need Is TDD (Português)

1. Introdução 2. O que é TDD?

3. Por que usar TDD? 4. Show me the code

5. Boas práticas 6. Ferramentas

7. Próximos passos

Agenda.

Page 4: All You Need Is TDD (Português)

Introdução.

Page 5: All You Need Is TDD (Português)

Front-End Developer @ Huge.

Front-End, Back-End, DB, Agilee Integração Contínua.

/bella-silveira

Isabella Silveira

/in/isabellasilveira

@silveira_bells

[email protected]

Page 6: All You Need Is TDD (Português)

O que é TDD?

Page 7: All You Need Is TDD (Português)

Tipos de teste de software.O que é TDD?

Page 8: All You Need Is TDD (Português)

Tipos de teste de software.

1. Testes unitários.2. Testes de integração.

3. Testes de aceitação.

Page 9: All You Need Is TDD (Português)

Tipos de testes de software.

1. Testes unitários.2. Testes de integração.3. Testes de aceitação.

Page 10: All You Need Is TDD (Português)

Garantem o funcionamento de cada parte individual do sistema.

Page 11: All You Need Is TDD (Português)

Tipos de testes de software.

1. Testes unitários.2. Testes de integração.3. Testes de aceitação.

Page 12: All You Need Is TDD (Português)

Asseguram que duas ou mais unidades funcionam corretamente

quando trabalhando juntas.

Page 13: All You Need Is TDD (Português)

Tipos de teste de software.

1. Testes unitários.2. Testes de integração.

3. Testes de aceitação.

Page 14: All You Need Is TDD (Português)

Testes na vista, simulam o comportamento do usuário.

Page 15: All You Need Is TDD (Português)

Integração

Unitários

Vista

Page 16: All You Need Is TDD (Português)

“ Tá, então o que é TDD?”

Page 17: All You Need Is TDD (Português)
Page 18: All You Need Is TDD (Português)

Metodologia de desenvolvimento de software onde os testes são escritos

antes das funcionalidades em si.

O que é TDD?

Page 19: All You Need Is TDD (Português)

As três leis do TDD.O que é TDD?

Page 20: All You Need Is TDD (Português)

Você deve escrever um teste que falhe antes de escrever qualquer código de produção.

As três leis do TDD:

Page 21: All You Need Is TDD (Português)
Page 22: All You Need Is TDD (Português)

"Getting software to work is only half of the job."

Robert C. Martin (Uncle Bob)

Page 23: All You Need Is TDD (Português)

Primeiro fazer o código funcionar, depois melhorar a estrutura.

Page 24: All You Need Is TDD (Português)

Você não deve escrever um teste que contenha mais do que o necessário para fazê-lo falhar.

As três leis do TDD:

Page 25: All You Need Is TDD (Português)

Keep it simple: faça apenas o necessário no escopo da função.

Page 26: All You Need Is TDD (Português)

Você não deve escrever mais código de produção do que o

suficiente para fazer o teste passar.

As três leis do TDD:

Page 27: All You Need Is TDD (Português)

“A failing test should read like a high-quality bug report.“

Eric Elliott

Page 28: All You Need Is TDD (Português)
Page 29: All You Need Is TDD (Português)

Por que usar TDD?

Page 30: All You Need Is TDD (Português)

Por que usar TDD?

1. Auxilia no design da API.2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 31: All You Need Is TDD (Português)

Por que usar TDD?

1. Auxilia no design da API.2. Testes = Documentação.3. Código de qualidade.

4. Viabiliza IC.

Page 32: All You Need Is TDD (Português)

TDD te dá uma perspectiva mais clara do que realmente é necessário.

Page 33: All You Need Is TDD (Português)
Page 34: All You Need Is TDD (Português)

TDD reduz a complexidade do código.

Page 35: All You Need Is TDD (Português)

Por que usar TDD?

1. Auxilia no design da API.2. Testes = Documentação.3. Código de qualidade.

4. Viabiliza IC.

Page 36: All You Need Is TDD (Português)

Cada teste documenta com exatidão o comportamento de cada função.

Page 37: All You Need Is TDD (Português)

Por que usar TDD?

1. Auxilia no design da API.2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 38: All You Need Is TDD (Português)

Cada linha de código testado é uma linha de código confiável.

Page 39: All You Need Is TDD (Português)
Page 40: All You Need Is TDD (Português)

Por que usar TDD?

1. Auxilia no design da API.2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 41: All You Need Is TDD (Português)

A integração contínua fornece o panorama geral da aplicação.

Page 42: All You Need Is TDD (Português)
Page 43: All You Need Is TDD (Português)

Testes previnem código quebrado.

Page 44: All You Need Is TDD (Português)
Page 45: All You Need Is TDD (Português)

Testes mapeiam cada parte do comportamento da sua aplicação.

Page 46: All You Need Is TDD (Português)
Page 47: All You Need Is TDD (Português)

Testes acabam com o medo de refactorings.

Page 48: All You Need Is TDD (Português)
Page 49: All You Need Is TDD (Português)

TDD reduz a quantidade de bugs.

Page 50: All You Need Is TDD (Português)

TDD facilita testes de regressão.

Page 51: All You Need Is TDD (Português)

TDD estimula designs modulares.

Page 52: All You Need Is TDD (Português)

Show me the code.

Page 53: All You Need Is TDD (Português)

Quatro perguntas primordiais.Show me the code.

Page 54: All You Need Is TDD (Português)

Quatro perguntas primordiais.

1. O que eu estou testando?2. Quais os parâmetros?

3. Qual a saída obtida?

4. Qual a saída esperada?

Page 55: All You Need Is TDD (Português)

Exemplo prático: logIntoSystem()

Page 56: All You Need Is TDD (Português)

Red

Page 57: All You Need Is TDD (Português)
Page 58: All You Need Is TDD (Português)
Page 59: All You Need Is TDD (Português)
Page 60: All You Need Is TDD (Português)
Page 61: All You Need Is TDD (Português)

Green

Page 62: All You Need Is TDD (Português)
Page 63: All You Need Is TDD (Português)
Page 64: All You Need Is TDD (Português)

Refactor

Page 65: All You Need Is TDD (Português)
Page 66: All You Need Is TDD (Português)
Page 67: All You Need Is TDD (Português)

Testar o comportamento em caso de falha também é importante.

Page 68: All You Need Is TDD (Português)
Page 69: All You Need Is TDD (Português)
Page 70: All You Need Is TDD (Português)
Page 71: All You Need Is TDD (Português)
Page 72: All You Need Is TDD (Português)

Boas práticas.

Page 73: All You Need Is TDD (Português)

Cada teste deve ser independente.

Page 74: All You Need Is TDD (Português)

Não faça asserções desnecessárias.

Page 75: All You Need Is TDD (Português)

Mocke os estados e recursos externos.

Page 76: All You Need Is TDD (Português)

Use nomes e descrições consistentes.

Page 77: All You Need Is TDD (Português)

Teste um comportamento de cada vez.

Page 78: All You Need Is TDD (Português)

Ferramentas.

Page 79: All You Need Is TDD (Português)

Frameworks de teste.Ferramentas.

Page 80: All You Need Is TDD (Português)
Page 81: All You Need Is TDD (Português)

Test runners.Ferramentas.

Page 82: All You Need Is TDD (Português)
Page 83: All You Need Is TDD (Português)

Próximos Passos.

Page 84: All You Need Is TDD (Português)

Integração Contínua.

Page 85: All You Need Is TDD (Português)
Page 86: All You Need Is TDD (Português)

Perguntas?

Page 87: All You Need Is TDD (Português)

19 de Dezembro, 2015 R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com