Programação · tema 25 de 40
Testes e reprodutibilidade em projetos de dados
30 min · 2 vídeos · 11 cards · 1 drill
Por que cai
A pergunta chega assim: 'como você sabe que esse número está certo?'. Quem responde 'conferi' não convence. Quem separa teste de código de teste de dado, dá exemplos dos dois e explica como outra pessoa reproduz o mesmo resultado amanhã, mostra maturidade que a maioria dos candidatos não tem.
Pré-teste · 1 de 2
responda antes de verUm pipeline roda sem erro e o relatório fica zerado. Que tipo de teste pegaria isso?
Vídeo · português · 20 min
Em uma frase
Em dados, a suíte tem duas metades — teste de código e teste do dado — e reprodutibilidade tem três pernas: ambiente congelado, entrada identificada e execução sem estado escondido.
Por que testar o dado, e não só o código
A transformação pode estar perfeita e o número sair errado, porque a entrada mudou sem o seu código mudar: coluna passou a vir nula, apareceu categoria nova, surgiu duplicata, o arquivo veio vazio.
| Momento | O que verificar |
|---|---|
| Entrada | Volume dentro da faixa, campos obrigatórios não nulos, conjunto de valores aceito, esquema esperado |
| Saída | Unicidade da chave, integridade com as dimensões, total batendo com a origem |
| Código | Casos de borda das funções: divisão por zero, lista vazia, data inválida |
Para categoria nova na entrada, prefira alerta a falha: categoria nova costuma ser legítima, e você quer decidir, não quebrar a madrugada.
O teste que passa junto com o bug
Um teste que calcula o resultado do mesmo jeito que o código não testa nada: ele reproduz a lógica, inclusive o erro. Teste bom afirma o valor esperado, obtido de fora — da regra escrita, de um cálculo manual, da origem.
E os melhores testes não são imaginados: vêm de incidentes. Cada vez que algo quebra, a causa vira teste. A suíte cresce a partir do que aconteceu.
As três pernas da reprodutibilidade
- 1Ambiente congelado: versões das bibliotecas fixadas em arquivo versionado, porque a mesma análise com outra versão pode arredondar ou ordenar diferente.
- 2Entrada identificada: não 'a tabela de vendas', mas o corte — data de referência ou versão da tabela. A tabela de hoje não é a de seis meses atrás.
- 3Execução sem estado escondido: reiniciar e rodar do zero. Notebook que funciona na tela pode não funcionar de cima para baixo.
Junto com o número, entregue o que foi assumido. Premissa não escrita é o que ninguém consegue recuperar seis meses depois.
Quando sai do notebook
Indicador recorrente não mora em notebook. Ele vira transformação versionada, com teste, orquestração e dono — exatamente para não depender da sua memória nem da sua máquina. O notebook fica onde ele é bom: exploração.
Como responder isso em voz alta
Separe as duas metades da suíte e dê exemplo de cada. Para reprodutibilidade, cite as três pernas e o teste concreto do notebook. Termine dizendo que os melhores testes vêm de incidentes — isso mostra que você já operou algo, e não só leu a respeito.
Se quiser outro ângulo1 vídeo
Como cai na sabatina
“Como você garante que o número que você entregou hoje pode ser reproduzido daqui a seis meses?”
Erros comuns
- Testar só o código. A transformação pode estar correta e o número errado, porque o dado de entrada mudou. Teste de dado é metade da suíte.
- Escrever teste que repete a implementação. Se o teste calcula do mesmo jeito que o código, ele passa junto com o bug; teste bom afirma o resultado esperado, de fora.
- Achar que notebook que roda é reproduzível. Ele carrega estado de execuções anteriores e a ordem das células pode não ser a de cima para baixo; reiniciar e rodar do zero é o teste.
- Esquecer de fixar a versão das bibliotecas. Mesma análise, biblioteca diferente, resultado diferente, meses depois.
- Não registrar qual corte do dado foi usado. 'Rodei ontem' não reproduz nada; é preciso a data de corte ou a versão da tabela.
- Cobrar cobertura de teste como número. Cobertura alta com asserções fracas dá falsa segurança; o que importa é o caso de borda coberto.
Flashcards
Card 1 de 11
0 certos · 0 a reverDrill
Qual teste pega isso?
Para cada falha, diga o tipo de teste que a detectaria.
1.A função de cálculo de percentual divide por zero quando o denominador é vazio.
2.O arquivo de origem chegou vazio e o pipeline terminou com sucesso.
3.A tabela final tem chaves duplicadas depois de uma junção nova.
4.A definição de cliente ativo usada no cálculo não é a que a área usa.
5.Uma categoria nova apareceu na origem e não é tratada.
Quiz · 1 de 2
Qual afirmação sobre testes em projetos de dados é mais defensável?
Explique para um gerente
Explique em um minuto por que um relatório que roda sem erro pode estar errado, e o que se testa para pegar isso.
Se travar numa palavra técnica, é sinal de que ainda não entendeu essa parte.
Prefiro falar em voz alta
00:00
Toque para gravar, ou responda em voz alta sem gravar
Perguntas de sabatina deste tema2
- · Como você garante que o número que entregou hoje pode ser reproduzido daqui a seis meses?
- · Um pipeline rodou sem nenhum erro e o relatório saiu zerado. O que isso diz sobre a sua suíte de testes, e o que você acrescenta?