Beta

Learning from Commits

Melhorar a qualidade e a agilidade do desenvolvimento de software através de métodos inteligentes e ciência de dados.

🔍 Detecção Antecipada

Identifique mudanças arriscadas antes que cheguem à produção e atue com antecedência.

🎯 Revisões Focadas

Priorize o que importa: direcione revisões para commits de maior risco.

💸 Redução de Custos

Reduza retrabalhos caros com previsões e ações corretivas antecipadas.

Sobre

Produzir sistemas de software cada vez maiores e mais complexos em maior velocidade é um grande desafio para a indústria. Essa demanda ocasiona defeitos de software que têm um impacto significativo na aceitação do produto. Estima-se que correções em softwares custam mundialmente 381 bilhões de dólares anualmente. Reduzir e corrigir defeitos de software são problemas importantes, ainda mais com a forte pressão para produção de soluções rápidas. Essa velocidade das entregas faz com que desenvolvedores priorizem determinadas partes do código-fonte para inspeção e teste. A qualidade dessa priorização pode levar ao sucesso ou à falha no desenvolvimento de um sistema de software.

Nesse contexto, várias abordagens de aprendizado de máquina foram propostas para prever mudanças críticas (indutoras de defeitos) no código-fonte assim que essas mudanças são implementadas. Tais métodos podem ajudar desenvolvedores a identificar as partes do código-fonte mais suscetíveis a defeitos e alocar mais recursos para testá-las.

No entanto, as predições produzidas por essas abordagens podem não ser confiáveis devido a mudanças no processo subjacente de geração de defeitos que foi aprendido, pois tal processo pode ter desvios de conceitos, o que torna as predições obsoletas. Como esses desvios de conceitos podem acontecer a qualquer momento, os desenvolvedores não têm confiança se o modelo aprendido está atualizado ou não, o que pode causar erros graves de predição e levar a atrasos nas entregas.

Esta pesquisa irá estudar novos algoritmos de aprendizado de máquina online para acelerar a adaptação a desvios de conceito na predição de mudanças críticas em softwares. As soluções encontradas por este projeto, quando integradas a sistemas de controle de versão de software, fornecerão alertas precoces, confiáveis e automatizados de alterações indutoras de defeitos ao longo da vida útil dos projetos de software.

Prevenção proativa de Bugs

Utilizando inteligência artificial e o algoritmo SZZ, o Learning from Commits analisa o histórico de commits do seu projeto para prever quais alterações têm maior probabilidade de introduzir defeitos. Essa abordagem permite identificar potenciais problemas antes que eles afetem o produto final, possibilitando ações corretivas antecipadas e reduzindo custos com correções tardias.

Otimização da Revisão de Código

Ao destacar commits com maior risco de introduzir bugs, o Learning from Commits auxilia as equipes de desenvolvimento a priorizar suas revisões de código de forma mais eficiente. Isso resulta em um processo de revisão mais focado e eficaz, melhorando a qualidade do software entregue e aumentando a produtividade da equipe.

Nosso Time

Cleviton Monteiro
Cleviton Monteiro
Doutor em engenharia de software
Cofundador do FlowUp | Doutor em engenharia de software | Gestão, inovação e impacto com eficiência
Rodrigo G F Soares
Rodrigo G F Soares
Doutor em ciência da computação
Concluiu o doutorado em Ciência da Computação pela University of Birmingham (UK). Possui mestrado em Ciências da Computação pela Universidade Federal de Pernambuco (2008) e graduação em Engenharia de Computação pela Universidade Federal do Rio Grande do Norte (2005). Tem experiência na área de Ciência da Computação, com ênfase em Inteligência Artificial, atuando principalmente nos seguintes temas: aprendizado semi-supervisionado, computação evolucionária, ensembles, redes neurais, clustering e meta-aprendizado.
João Victor Vieira
João Victor Vieira
Desenvolvedor Full Stack
Desenvolvedor Full stack | Python | JavaScript | Typescript | React
Douglas Vidal
Douglas Vidal
Pesquisador
PESQUISADOR | Python
Aline Costa
Aline Costa
Bacharela em Ciência da Computação
Bacharela em Ciência da Computação – UFRPE com ênfase em Inteligência Artificial e Ciência de Dados
Igor de Castro
Igor de Castro
Engenheiro de Software
Engenheiro de Software | Python | Java | PHP
Guilherme Salgueiro
Guilherme Salgueiro
Pesquisador
PESQUISADOR | Python
Italo Santos
Italo Santos
Pesquisador
PESQUISADOR | Python