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

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 softwa...

Descripción completa

Detalles Bibliográficos
Autor: OLIVEIRA, Paulo César de
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2015
País:Brasil
Institución:Universidade Federal de Pernambuco (UFPE)
Repositorio:Repositório Institucional da UFPE
Idioma:portugués
OAI Identifier:oai:repositorio.ufpe.br:123456789/19990
Acceso en línea:https://repositorio.ufpe.br/handle/123456789/19990
Access Level:acceso abierto
Palabra clave: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
Descripción
Sumario: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.