Autor: André Duarte - [email protected]
Orientador: Rui Maranhão - [email protected]
Co-orientador: Alexandre Perez - [email protected]
Dada a crescente necessidade de identificar a localização dos erros no código fonte de software, de forma a facilitar o trabalho dos programadores e a acelerar o processo de desenvolvimento, muitos avanços têm sido feitos na sua automação.
Existem três abordagens principais: Program-spectra based (PSB), Model-based diagnosis (MDB) e Program slicing.
Barinel, solução que integra tanto o PSB como o MDB, é, até hoje, com base na investigação feita, a que apresenta melhores resultados. Contudo, a ordenação de conjuntos de candidatos (componentes faltosos) não tem em conta a verdadeira qualidade do componente em causa, devido à dificuldade da sua determinação.
Com esta tese pretende-se colmatar esta falha e contribuir para uma melhor ordenação dos conjuntos, classificando, com recurso a técnicas de Machine Learning como Decision Trees, Support Vector Machines (SVM) ou Random Forests, a qualidade e fiabilidade de cada componente, através das informações disponíveis no sistema de controlo de versões (Software Repository Mining), neste caso Git, como por exemplo: número de vezes que foi modificado, número de contribuidores, data de última alteração e tamanho das alterações.
A investigação já feita, revelou a existência de algumas soluções de análise preditiva de software, como BugCache, FixCache e Change Classification, capazes de identificar componentes com grande probabilidade de falhar e de classificar as revisões (commits) como faltosas ou não, mas nenhuma soluciona o problema.
Este trabalho visa a integração desta solução com o Crowbar e contribuição para a sua possível comercialização.
Palavras-chave: Software-fault Localization, Software Repository Mining, Machine Learning, Classification
Classificação: Software and its engineering - Software creation and management - Software verification and validation; Computing methodologies - Machine Learning - Machine Learning Approaches