23 de junho, 2016 desenvolvendo aplicações -...

109

Upload: hoangtram

Post on 01-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 2: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Desenvolvendo aplicações de qualidade com TDD

Huge

23 de junho, 2016

Page 3: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Isabella SilveiraWeb Engineer @ Huge.

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

Page 4: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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.

8. Conclusão.

Agenda.

Page 5: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Introdução.

Page 6: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Hoje em dia, a qualidade é um diferencial em tudo que

consumimos.

Page 7: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 8: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

E podemos dizer que o mundo moderno funciona a base

de código.

Page 9: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 10: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 11: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 12: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 13: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Qualidade de software é uma preocupação crescente.

Page 14: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

TDD é uma ótima ferramenta para nos ajudar a alcançar este objetivo.

Page 15: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

“E o que diabos é TDD?”

Page 16: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

O que é TDD?

Page 17: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Vamos falar de coisa boa

Page 18: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Testes de Software

Page 19: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Tipos de teste de software.O que é TDD?

Page 20: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Tipos de teste de software.

1. Testes unitários.

2. Testes de integração.

3. Testes de aceitação.

Page 21: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Tipos de testes de software.

1. Testes unitários.

2. Testes de integração.

3. Testes de aceitação.

Page 22: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Garantem o funcionamento de cada parte individual do sistema.

Page 23: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Tipos de testes de software.

1. Testes unitários.

2. Testes de integração.

3. Testes de aceitação.

Page 24: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Asseguram que duas ou mais unidades funcionam corretamente

quando trabalhando juntas.

Page 25: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Tipos de teste de software.

1. Testes unitários.

2. Testes de integração.

3. Testes de aceitação.

Page 26: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 27: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Integração

Unitários

Vista

Page 28: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

antes das funcionalidades em si.

O que é TDD?

Page 29: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 30: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

As três leis do TDD:

Page 31: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 32: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Robert C. Martin (Uncle Bob)

Page 33: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 34: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Você não deve escrever um teste que contenha mais do que o necessário para simular o comportamento da

função.

As três leis do TDD:

Page 35: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 36: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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 37: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Eric Elliott

Page 38: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

“ Mas como eu sei o que testar?”

Page 39: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Divida a sua user story em features, e as features em unidades atômicas.

Page 40: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

“Eu, enquanto usuário, gostaria de ser redirecionado para a home depois de logar no sistema.”

Page 41: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Definição da feature: Form de Login

Page 42: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Próximo passo: Definir as funcionalidades e o comportamento

esperado dessa feature.

Page 43: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 44: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 45: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Por que usar TDD?

Page 46: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Por que usar TDD?

1. Auxilia no design da API.

2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 47: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Por que usar TDD?

1.Auxilia no design da API.

2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 48: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

TDD te dá uma perspectiva mais clara do que realmente

é necessário.

Page 49: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 50: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

TDD reduz a complexidade do código.

Page 51: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Por que usar TDD?

1. Auxilia no design da API.

2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 52: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Cada teste documenta com exatidão o comportamento de cada

função.

Page 53: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Por que usar TDD?

1. Auxilia no design da API.

2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 54: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 55: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Por que usar TDD?

1. Auxilia no design da API.

2. Testes = Documentação.

3. Código de qualidade.

4. Viabiliza IC.

Page 56: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 57: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 58: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Testes previnem código quebrado.

Page 59: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 60: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Testes acabam com o medo de refactorings.

Page 61: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 62: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

TDD facilita a identificação de bugs de regressão.

Page 63: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

TDD estimula designs modulares.

Page 64: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Show me the code.

Page 65: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Quatro perguntas primordiais.Show me the code

Page 66: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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 67: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Exemplo prático: logIntoSystem()

Page 68: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Red.

Page 69: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 70: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 71: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 72: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 73: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Green.

Page 74: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 75: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 76: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Refactor.

Page 77: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 78: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 79: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 80: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 81: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 82: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 83: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 84: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 85: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Boas práticas.

Page 86: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Cada teste deve ser independente.

Page 87: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

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

Page 88: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Mocke os estados e recursos externos.

Page 89: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Use nomes e descrições consistentes.

Page 90: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Teste um comportamento de cada vez.

Page 91: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Ferramentas.

Page 92: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Frameworks de teste.Ferramentas

Page 93: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 94: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Test runners.Ferramentas

Page 95: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 96: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Próximos Passos.

Page 97: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Code Coverage.

Page 98: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Karma Coverage.

Page 99: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Integração Contínua.

Page 100: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira
Page 101: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Conclusão.

Page 102: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Qualidade agrega valor à sua aplicação.

Page 103: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

TDD não é a única forma de garantira qualidade do software, apesar de

ser um bom aliado.

Page 104: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Sempre prezar por um códigomodularizado e testável.

Page 105: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

E o mais importante de tudo:

Page 106: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Qualidade de

software não

é opcional.

Page 107: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Perguntas?

Page 108: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira

Get in touch./in/isabellasilveira

[email protected]

@silveira_bells

/bella-silveira

Page 109: 23 de junho, 2016 Desenvolvendo aplicações - scrumrio.comscrumrio.com/wp-content/uploads/2016/07/DesenvolvendoAplicacoe... · isilveira@hugeinc.com @silveira_bells /bella-silveira