Testes em uma startup do mundo financeiro

Post on 15-Aug-2015

551 views 0 download

Transcript of Testes em uma startup do mundo financeiro

@luiz_hespanha

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.

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.

Pra começar já jogando a bomba…

4

Processo

5

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

Processo

6

• Pair programming • Com outros DEVs e com pessoas

de negócio.

Processo

7

Linguagem ubíqua

Processo

8

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

Exemplo de testes

9

Processo

10

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

do desenvolvimento de uma funcionalidade.

Review de verdade

11

Review de verdade

12

• Todos revisam, inclusive pessoas de negócio.

Quando um bug é encontrado

13

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

Microservices

14

Monolítico Microservices

Por que isso importa para testes?

15

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

Por que isso importa para testes?

16

• Garantir o isolamento das mudanças.

Dentro de cada serviço

17

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

possíveis do negócio.

Dentro de cada serviço

18

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

cenários de cada funcionalidade.

Dentro de cada serviço

19

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

Dentro de cada serviço

20

Juntando tudo

21

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

funcionalidade. • Simula o ambiente real.

e2e

22

visível para todos

23

Alguns pontos importantes

24

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

minutos.

Alguns pontos importantes

25

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

alguns pontos importantes

26

• o e2e é DOLOROSO.

Alguns pontos importantes

27

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

Alguns pontos importantes

28

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

Alguns pontos importantes

29

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

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.

to-stag

31

Testes manuais SE necessário.

Além de tudo isso…

32

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

Além de tudo isso…

33

"Eating your own dog food”

Nunca acaba…

34

Aperfeiçoamento de todo o processo.

35

OBRIGADO!

36

Contatos

e-mail: luiz.hespanha@nubank.com.br twitter: @luiz_hespanha

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