Document details

Abordagem semi-supervisionada para detecção de módulos de software defeituosos

Author(s): OLIVEIRA, Paulo César de

Date: 2017

Origin: Oasisbr

Subject(s): Aprendizagem de Máquina; Detecção de Módulos de Software Defeituosos; Aprendizagem Semi-Supervisionada; Aprendizagem Não Supervisionada; Teste de Software; Detecção de Anomalias; Machine Learning; Software Defect Detection; Semi-Supervised Learning; Unsupervised Learning; Software Testing; Anomaly Detection; Aprendizagem de Máquina; Aprendizagem de Máquina; Detecção de Módulos de Software Defeituosos; Detecção de Módulos de Software Defeituosos; Aprendizagem Semi-Supervisionada; Aprendizagem Semi-Supervisionada; Aprendizagem Não Supervisionada; Aprendizagem Não Supervisionada; Teste de Software; Teste de Software; Detecção de Anomalias; Detecção de Anomalias; Machine Learning; Machine Learning; Software Defect Detection; Software Defect Detection; Semi-Supervised Learning; Semi-Supervised Learning; Unsupervised Learning; Unsupervised Learning; Software Testing; Software Testing; Anomaly Detection; Anomaly Detection


Description

Com a competitividade cada vez maior do mercado, aplicações de alto nível de qualidade são exigidas para a automação de um serviço. Para garantir qualidade de um software, testá-lo visando encontrar falhas antecipadamente é essencial no ciclo de vida de desenvolvimento. O objetivo do teste de software é encontrar falhas que poderão ser corrigidas e consequentemente, aumentar a qualidade do software em desenvolvimento. À medida que o software cresce, uma quantidade maior de testes é necessária para prevenir ou encontrar defeitos, visando o aumento da qualidade. Porém, quanto mais testes são criados e executados, mais recursos humanos e de infraestrutura são necessários. Além disso, o tempo para realizar as atividades de teste geralmente não é suficiente, fazendo com que os defeitos possam escapar. Cada vez mais as empresas buscam maneiras mais baratas e efetivas para detectar defeitos em software. Muitos pesquisadores têm buscado nos últimos anos, mecanismos para prever automaticamente defeitos em software. Técnicas de aprendizagem de máquina vêm sendo alvo das pesquisas, como uma forma de encontrar defeitos em módulos de software. Tem-se utilizado muitas abordagens supervisionadas para este fim, porém, rotular módulos de software como defeituosos ou não para fins de treinamento de um classificador é uma atividade muito custosa e que pode inviabilizar a utilização de aprendizagem de máquina. Neste contexto, este trabalho propõe analisar e comparar abordagens não supervisionadas e semisupervisionadas para detectar módulos de software defeituosos. Para isto, foram utilizados métodos não supervisionados (de detecção de anomalias) e também métodos semi-supervisionados, tendo como base os classificadores AutoMLP e Naive Bayes. Para avaliar e comparar tais métodos, foram utilizadas bases de dados da NASA disponíveis no PROMISE Software Engineering Repository.

Because the increase of market competition then high level of quality applications are required to provide automate services. In order to achieve software quality testing is essential in the development lifecycle with the purpose of finding defect as earlier as possible. The testing purpose is not only to find failures that can be fixed, but improve software correctness and quality. Once software gets more complex, a greater number of tests will be necessary to prevent or find defects. Therefore, the more tests are designed and exercised, the more human and infrastructure resources are needed. However, time to run the testing activities are not enough, thus, as a result, it causes escape defects. Companies are constantly trying to find cheaper and effective ways to software defect detection in earlier stages. In the past years, many researchers are trying to finding mechanisms to automatically predict these software defects. Machine learning techniques are being a research target, as a way of finding software modules detection. Many supervised approaches are being used with this purpose, but labeling software modules as defective or not defective to be used in training phase is very expensive and it can make difficult machine learning use. Considering that this work aims to analyze and compare unsupervised and semi-supervised approaches to software module defect detection. To do so, unsupervised methods (of anomaly detection) and semi-supervised methods using AutoMLP and Naive Bayes algorithms were used. To evaluate and compare these approaches, NASA datasets were used at PROMISE Software Engineering Repository.

Document Type Master thesis
Language Portuguese
facebook logo  linkedin logo  twitter logo 
mendeley logo