Software Repository Mining Analytics to Estimate Software Component Reliability

Given the rising necessity of identifying errors on the source code of software, in order to make the developers work easier and to speed up the development process, many progresses have been made in its automation.There are three main approaches: Program-spectra based (PSB), Model-based diagnosis (...

ver descrição completa

Detalhes bibliográficos
Autor principal: André Tiago Oliveira da Silva Duarte (author)
Formato: masterThesis
Idioma:eng
Publicado em: 2016
Assuntos:
Texto completo:https://repositorio-aberto.up.pt/handle/10216/89450
País:Portugal
Oai:oai:repositorio-aberto.up.pt:10216/89450
Descrição
Resumo:Given the rising necessity of identifying errors on the source code of software, in order to make the developers work easier and to speed up the development process, many progresses have been made in its automation.There are three main approaches: Program-spectra based (PSB), Model-based diagnosis (MDB) and Program slicing.Barinel, solution that integrates both PSB and MDB, is, until now, to our knowledge, the option that guarantees the best results. Despite this, the candidates (faulty components) set order doesn't take into account the real quality of the given component. With this thesis we want to fix this issue and contribute for a better candidates ordered set, classifying the quality and reliability of each component, using Machine Learning techniques such as Decision Trees, Support Vector Machines or Random Forests with the information extracted from Git, like: number of times it was modified, number of contributors, date of last change and size of those changes.The research revealed the existence of some software predictive analysis solutions, such as BugCache, FixCache and Change Classification, capable of identifying the components with a high probability of failure and of classifying the changes (commits) as faulty or clean. But none solves our issue.This work also aims to integrate with Crowbar and to contribute to its possible commercialization.