• Blog
    • Tecnologia
    • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast
  • Nossas vagas
  • Site Movile
Menu
  • Blog
    • Tecnologia
    • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast
  • Nossas vagas
  • Site Movile
  • Banco de Dados, Ciência de Dados, Data Specialist, Movile, Technology, Tecnologia

Desenvolvimento Orientado a Testes na Ciência de Dados

Compartilhe

Compartilhar no facebook
Compartilhar no google
Compartilhar no twitter
Compartilhar no linkedin

Test-Driven Development (TDD)

TDD é uma técnica de programação muito utilizada em desenvolvimento de software, onde cada recurso do software é testado antes de sua implementação. 

Unit Tests (UT) são trechos de código feitos com o objetivo de testar partes de um software. Os UT servem para garantir que cada trecho do software está funcionando de acordo com o objetivo esperado.

Normalmente adota-se a seguinte rotina:

Passo 1. escrita de um teste para um recurso do software;

Passo 2. execução e falha do teste, pois a funcionalidade testada ainda não foi implementada no sistema;

Passo 3. implementação da funcionalidade, da maneira mais simples possível, para fazer o teste passar;

Passo 4. depois que o teste passar, refatorar o código da funcionalidade, para ficar de acordo com o design/padrão adotado no projeto – e também elegante, afinal gostamos de códigos bonitos, correto?

Passo 5. retornar ao Passo 1 a cada novo recurso adicionado ao sistema.

Vantagens

Além de ajudar a garantir o funcionamento da aplicação, o uso de testes unitários colaboram com a adoção  de algumas boas práticas do desenvolvimento de software, como:

  • estruturação do código em funções e/ou métodos;
  • métodos/funções com objetivos melhor definidos;
  • práticas que facilitam na manutenção e interpretação;
  • ganho de tempo nas etapas finais de projetos, uma vez que problemas (bugs) se tornam menos recorrentes;

Quando o TDD pode ajudar um Cientista de dados?

O dia a dia na ciência de dados pode ser bem diverso e não precisamos (e nem devemos), aplicar o TDD em todas as situações.

Análise exploratória de dados (Exploratory Data Analysis – EDA): 

Normalmente realizadas quando queremos entender o comportamento dos dados, identificar padrões, levantar hipóteses, etc. Tudo a fim de nos guiar ao começar o desenvolvimento de um modelo de machine learning, por exemplo. 

As EDAs não precisam de uma estrutura muito robusta para serem feitas, sendo viáveis através de jupyter notebooks (ou similares), e também em scripts. Usam conjuntos de dados menores ou uma amostra, quando o volume de dados é grande. 

Como essa rotina é feita no início de um projeto ou apenas com o fim de conhecer melhor os dados, e o objetivo não é criar scripts e/ou um software que serão reusados, não é preciso, e nem vantajoso utilizar TDD.

Desenvolvimento de modelos de Inteligência Artificial

O desenvolvimento de modelos em ciência de dados é uma prática recorrente, e como um modelo nada mais é do que um software, podemos aplicar práticas e técnicas da área de desenvolvimento no dia a dia de cientistas. Para a aplicação do TDD vamos ponderar duas situações: 

  1. Um modelo pode ser criado tendo como objetivo apoiar alguma decisão, responder perguntas ou sustentar um planejamento estratégico para o período futuro, não tendo a necessidade de integração com outro sistema ou,  uso recorrente. Portanto, nesse caso, não aconselho a adoção de TDD, pois modelos desse tipo normalmente são feitos por uma pessoa, e não usam  estruturas robustas de arquitetura, além de não precisarem de manutenção, por só serem usados uma vez.
  2. O modelo será colocado em produção, – isto é, acoplado a outros sistemas e com todas as suas rotinas automatizadas, situação bem similar com a de um software “tradicional”.

Nesse contexto, temos:

  • disponibilização do software produzido para uso de outros sistemas e/ou plataformas;
  • pipeline e rotinas robustas e frágeis, no sentido de não muito tolerável a falhas e erros inesperados;
  • manutenção compartilhada ― projetos como esse são maiores e podem exigir mais de um par de mãos;

Esse caso é uma ótima oportunidade para aplicar o TDD, e levanto algumas razões para isso, como por exemplo: testar as etapas do pipeline, ter a certeza de que as funções estão realizando o que é preciso, e que isso se mantém após refatorações e mudanças no código, e verificar se todos os casos e condições satisfazem o esperado.

Te convido, então, a adotar práticas do desenvolvimento de software à rotina da ciência de dados e com isso ganhar muito mais qualidade do software produzido.

Compartilhe isso:

  • Tweet

Curtir isso:

Curtir Carregando...
Maria Clara Villas Boas

Maria Clara Villas Boas

Deixe um comentário

Categorias

Categorias
  • Android
  • Backend
  • Banco de Dados
  • BI
  • Carreira
  • Carreira e Cultura
  • Carreira e Cultura
  • Ciência de Dados
  • Cultura
  • Data Specialist
  • Design
  • Diversidade
  • Front-end
  • Frontend
  • Fundação 1Bi
  • Grupo Movile
  • Histórias
  • iFood
  • Infraestrutura
  • Inteligência Artificial
  • iOS
  • iOS App Development
  • Kotlin
  • kubernetes
  • LeaderShift
  • Material
  • Mobile
  • Mobile Dream
  • Movile
  • Movilian@s
  • News
  • PlayKids
  • Podcast
  • Produto
  • Projetos
  • React
  • RESPECT
  • Software Architecture
  • Software Engineering
  • Solid
  • Swift
  • SwiftUI
  • Sympla
  • Technology
  • Tecnologia
  • testes
  • UX
  • Vagas
  • Wavy
  • Zoop

Posts relacionados

Whitepaper: API’s no iFood

Leia mais »
Swift

Swift: Princípio da Segregação de Interface [Artigo 4]

Leia mais »
Um primer em CRM para times de Data

Um primer em CRM para times de Data

Leia mais »

Dart Extension Methods na prática

Leia mais »
Tags
Agile Android Apache api App Apps Arquitetura Autoconhecimento Backend Banco de Dados BI Blog bot Bots Cache Carreira Carreira e Cultura Cloud code containers Continuos integration Cultura Dados Dados Probabilísticos data Data Center Data Science Desenvolvimento Design devs digital diversidade DSL Entrevista Evento eventos Experiências Facebook front Front-end Frontend Full-stack Fundação 1Bi Gestão GO google Groovy grupo Grupo Movile histórias home iFood Infraestrutura Inteligencia artificial iOS Java jetpack Json Kotlin kubernetes layout Liderança linguagem loadview Machine Learning marketplace Mobile Movile Movilianos news Objective-C PlayKids podcast produto Projetos pwa python Rapiddo react Reativas Redis research review RH Room spark Spring stack storyboards Superplayer Swift Sympla Talentos tdd Tecnologia Testes transformação digital Unity ux vagas Valores view viewcode viewcontroller viper Voxel vue wavy web Widget Zoop

Siga-nos

Facebook-f
Linkedin
Instagram
Youtube
Twitter

Baixe nosso e-book!

Receba conteúdos exclusivos em seu email!

Seus dados estão protegidos conosco.

Menu

  • Tecnologia
  • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast
Menu
  • Tecnologia
  • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast

principais categorias

  • Tecnologia
  • Carreira e Cultura
  • News
  • Movile
  • Backend
  • Android
Menu
  • Tecnologia
  • Carreira e Cultura
  • News
  • Movile
  • Backend
  • Android

FEED RSS

RSS Feed RSS - Posts

RSS Feed RSS - Comentários

redes sociais

  • Facebook
  • LinkedIn
  • Instagram
  • Youtube
  • Twitter

Copyright 2021 © Todos os direitos reservados. Criação de Site por UpSites & Weblab

  • Novas Vagas!

  • Último Podcast!

%d blogueiros gostam disto: