Testes em uma startup do mundo financeiro

36
@luiz_hespanha Testes em uma startup do mundo financeiro

Transcript of Testes em uma startup do mundo financeiro

Page 1: Testes em uma startup do mundo financeiro

@luiz_hespanha

Testes em uma startup do mundo financeiro

Page 2: Testes em uma startup do mundo financeiro

2

Sobre o Nubank

Startup brasileira que está construindo um banco totalmente digital do zero, SEM USAR COBOL.

Page 3: Testes em uma startup do mundo financeiro

Pontos importantes sobre a palestra

3

• Foco em testes para o backend.

• Não existe “certo" ou “errado”, é apenas o processo que seguimos e funciona para nós.

Page 4: Testes em uma startup do mundo financeiro

Pra começar já jogando a bomba…

4

Page 5: Testes em uma startup do mundo financeiro

Processo

5

Não temos um time de QA, tão pouco terceirizamos os testes para uma consultoria.

Page 6: Testes em uma startup do mundo financeiro

Processo

6

• Pair programming • Com outros DEVs e com pessoas

de negócio.

Page 7: Testes em uma startup do mundo financeiro

Processo

7

Linguagem ubíqua

Page 8: Testes em uma startup do mundo financeiro

Processo

8

Pessoas de negócio DEVEM conseguir ler e entender código, especialmente testes.

Page 9: Testes em uma startup do mundo financeiro

Exemplo de testes

9

Page 10: Testes em uma startup do mundo financeiro

Processo

10

• Review de código com o Github • Abertura de “Pull Request” ao fim

do desenvolvimento de uma funcionalidade.

Page 11: Testes em uma startup do mundo financeiro

Review de verdade

11

Page 12: Testes em uma startup do mundo financeiro

Review de verdade

12

• Todos revisam, inclusive pessoas de negócio.

Page 13: Testes em uma startup do mundo financeiro

Quando um bug é encontrado

13

• Primeira coisa é escrever um teste que simule este bug.

Page 14: Testes em uma startup do mundo financeiro

Microservices

14

Monolítico Microservices

Page 15: Testes em uma startup do mundo financeiro

Por que isso importa para testes?

15

• Em um ano e meio temos mais de 100k linhas de código.

Page 16: Testes em uma startup do mundo financeiro

Por que isso importa para testes?

16

• Garantir o isolamento das mudanças.

Page 17: Testes em uma startup do mundo financeiro

Dentro de cada serviço

17

• Testes unitários • Regras de negócio. • Exercitar todos os cenários

possíveis do negócio.

Page 18: Testes em uma startup do mundo financeiro

Dentro de cada serviço

18

• Postman • Teste caixa preta do serviço. • Exercitamos apenas os principais

cenários de cada funcionalidade.

Page 19: Testes em uma startup do mundo financeiro

Dentro de cada serviço

19

• Uma vez que o “Pull Request” é “mergeado" no “MASTER”…

Page 20: Testes em uma startup do mundo financeiro

Dentro de cada serviço

20

Page 21: Testes em uma startup do mundo financeiro

Juntando tudo

21

• testes e2e • Integração entre os serviços. • Apenas o caminho feliz de cada

funcionalidade. • Simula o ambiente real.

Page 22: Testes em uma startup do mundo financeiro

e2e

22

Page 23: Testes em uma startup do mundo financeiro

visível para todos

23

Page 24: Testes em uma startup do mundo financeiro

Alguns pontos importantes

24

• Feedback "rápido" • Nossa suíte roda em média em 10

minutos.

Page 25: Testes em uma startup do mundo financeiro

Alguns pontos importantes

25

• Uma funcionalidade chega em PROD após 25 minutos em média, já testada!

Page 26: Testes em uma startup do mundo financeiro

alguns pontos importantes

26

• o e2e é DOLOROSO.

Page 27: Testes em uma startup do mundo financeiro

Alguns pontos importantes

27

• Se quebrar ninguém coloca mais nada em PROD.

Page 28: Testes em uma startup do mundo financeiro

Alguns pontos importantes

28

• É importante ter um “dono" do e2e que pega no pé das pessoas que podem ter “quebrado" o e2e.

Page 29: Testes em uma startup do mundo financeiro

Alguns pontos importantes

29

• Não arrumou em 30 minutos, “reverte" o Pull Request que “provavelmente" quebrou o e2e.

Page 30: Testes em uma startup do mundo financeiro

Tratar código de teste igual código de produção

30

• Começou dar problemas, refatora. • Começou a demorar, refatora. • Quebra de vez em quando, refatora

para deixar 100% e não quebrar nunca.

Page 31: Testes em uma startup do mundo financeiro

to-stag

31

Testes manuais SE necessário.

Page 32: Testes em uma startup do mundo financeiro

Além de tudo isso…

32

Certas funcionalidades de maior risco são lançadas inicialmente para um grupo controlado de usuários.

Page 33: Testes em uma startup do mundo financeiro

Além de tudo isso…

33

"Eating your own dog food”

Page 34: Testes em uma startup do mundo financeiro

Nunca acaba…

34

Aperfeiçoamento de todo o processo.

Page 35: Testes em uma startup do mundo financeiro

35

OBRIGADO!

Page 36: Testes em uma startup do mundo financeiro

36

Contatos

e-mail: [email protected] twitter: @luiz_hespanha

Temos VAGAS! Para + infos acessem: http://www.nubank.com.br