O Que É Testar Notebooks? Validar Jupyter Notebooks Explicado
Testar notebooks é verificar que um Jupyter notebook executa sem erros e produz os resultados esperados, para que os notebooks permaneçam confiáveis ao longo do tempo.
Testar notebooks fecha a lacuna entre a ciência de dados exploratória e o software confiável. Um notebook que roda uma vez num laptop não é o mesmo que um que roda toda vez em qualquer máquina. Testar torna os notebooks confiáveis o suficiente para entregar e depender deles.
O que é testar notebooks
Testar notebooks significa rodar um notebook automaticamente e verificar o resultado. No mínimo, confirma que cada célula executa sem lançar um erro. Melhor ainda, faz asserções sobre as saídas - que uma métrica calculada, o formato de uma tabela ou um gráfico correspondam às expectativas.
Níveis de teste
O nível mais simples é o teste de execução: rodar o notebook e falhar se qualquer célula der erro. Além disso, ferramentas como nbval comparam saídas de células com saídas esperadas armazenadas, e o testbook permite importar funções do notebook para uma suíte pytest normal para fazer asserções sobre elas.
Execuções parametrizadas
O papermill pode injetar parâmetros num notebook e executá-lo, o que é útil para testar o mesmo notebook com diferentes entradas e para usar notebooks como jobs agendados e parametrizados, em vez de apenas documentos interativos.
Testar notebooks no CI
Integre a execução do notebook e as verificações de saída ao CI para que uma mudança que quebre um notebook seja pega no pull request.
steps:
- run: pip install pytest nbval
- run: pytest --nbval notebooks/ # execute and check outputsNota Latchkey
Suítes de teste de notebook podem ser lentas quando os notebooks carregam grandes dados ou modelos. No Latchkey, fazer cache desses ativos e rodar em runners maiores ou com GPU mantém a suíte rápida, e o auto-retry lida com as buscas de dados transitórias que de outra forma deixariam uma execução inteira instável.
Principais conclusões
- Testar notebooks verifica que um notebook roda de forma limpa e produz as saídas esperadas.
- Os níveis vão de verificações apenas de execução até comparação de saída (nbval) e importação de funções para pytest (testbook).
- Integrar testes de notebook ao CI pega quebras no pull request em vez de semanas depois.