Dissertação

{en_GB=Extremely Imbalanced Smell-based Defect Prediction } {} EVALUATED

{pt=Um dos maiores requisitos para uma entrega rápida de software em continuous integration/continuous delivery é a capacidade para encontrar bugs de forma eficiente. Por essa razão, multiplas soluções foram introduzidas na literatura. Por exemplo, métodos de defect prediction baseados em bad code smells extraídos de cada versão de software. No entanto, estes métodos não consideram o problema em que pode existir uma percentagem extremamente superior de módulos não defeituosos, comparado a módulos defeituosos. Desta forma, nesta tese, introduzimos um novo modelo com o algoritmo de autoencoder que usa design smells e implementation smells para detetar módulos defeituosos portanto, treinámos cinco autoencoders com arquiteturas diferentes. Adicionalmente, para avaliarmos a nossa abordagem, nós comparamos cada modelo de autoencoder com a mesma arquitetura, treinados com traditional object-oriented metrics e a junção de ambas as features. A nossa análise não demonstrou resultados promissores, na medida em que, a utilização de smells e a junção das features não forneceu uma melhoria comparativamente à utilização de metrics. Todavia, nós introduzimos um ponto de partida para smell-based defect prediction no contexto de dataset imbalance e introduzimos uma baseline para trabalho futuro. , en=In continuous integration/continuous delivery, one of the main requirements for high-speed delivery of software is to find bugs efficiently. For this reason, multiple solutions were introduced in the literature, for instance, defect prediction approaches based on bad code smells detected in modules from each version of the software. Nevertheless, these approaches do not consider the problem where there may exist an extremely higher percentage of non-defective modules compared to defective modules. Given that, each version of the software may only have a small number of defects. As a result, in this thesis, we introduce a new model with an autoencoder algorithm that uses design and implementation smells to detect defective modules. Therefore, we trained five autoencoders with distinct architectures. Additionally, for evaluation, we compared each model against autoencoders with the same architecture, trained with traditional object-oriented metrics and the combination of both. Our analysis did not show promising results, as the use of only smells and the combination of features did not provide an improvement compared with the use of metrics. However, we introduce a starting point for smell-based defect prediction in the context of dataset imbalance. Furthermore, we introduce a baseline for future work.}
{pt=Software, Defect Prediction, Code Smells, Data Imbalance, en=Software, Defect Prediction, Code Smells, Data Imbalance}

Setembro 11, 2019, 18:0

Orientação

ORIENTADOR

Rui Filipe Lima Maranhão de Abreu

Departamento de Engenharia Informática (DEI)

Professor Associado