Skip to content
Latchkey

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.

Notebook tests in CI
steps:
  - run: pip install pytest nbval
  - run: pytest --nbval notebooks/   # execute and check outputs

Nota 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.

Guias relacionados