Post on 15-Aug-2015
@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