CR Analysis: Classificação de Change Requests em um Ambiente de
Fluxo de Dados
Classificação de Texto; Change Requests; Fluxos de Dados;
Mudança de Conceito.
Os testes de software são atividades essenciais para o desenvolvimento e a
manutenção eficiente de um produto. Durante o ciclo de vida do software,
diferentes tipos de teste são executados para garantir que as
funcionalidades foram implementadas corretamente, ou para encontrar erros.
Quando casos de teste falham, requisições de mudança (do inglês, Change
Requests - CRs) descrevendo os erros encontrados são criadas pelos
testadores e armazenadas nos repositórios associados a ferramentas de
gerenciamento de software. As CRs são então inspecionadas em um processo de
triagem, que visa identificar a criticidade dos erros e direcionar as
requisições para as áreas responsáveis. A criticidade das CRs irá
determinar com qual nível de urgência os problemas relatados devem ser
resolvidos. O processo de triagem costuma ser uma atividade custosa e
demorada, pois geralmente é realizada manualmente. Como uma solução, a
triagem pode ser automatizada com o uso de técnicas de Aprendizado de
Máquina (AM) para classificar automaticamente a criticidade das CRs. Embora
algoritmos tradicionais de AM tenham sido utilizados extensivamente na
literatura para lidar com tarefas de classificação de texto dentro de
domínios específicos, o desempenho de tais algoritmos pode se tornar
incerto em ambientes de fluxos de dados na presença de mudanças de
conceito. Fluxos de dados são comumente caracterizados por uma sequência de
instâncias que se tornam disponíveis continuamente ao longo do tempo, sendo
geradas de forma dinâmica e potencialmente ilimitadas em tamanho. Dessa
forma, uma mudança de conceito significa que as propriedades dos dados se
tornam não-estacionárias, e indicam que a estrutura e o conhecimento retido
pelos modelos induzidos previamente podem se tornar obsoletos para a
classificação de novos dados. Com isso, se torna imprescindível desenvolver
aplicações mais precisas para tomada de decisão baseadas em dados. Neste
sentido, esta dissertação investiga o uso de algoritmos de AM Online, bem
como métodos de detecção de mudanças de conceitos, com o objetivo de
resolver o problema de classificação de criticidade de CRs em um ambiente
de fluxo de dados não-estacionário. Este trabalho foi desenvolvido no
contexto de uma colaboração entre o CIn-UFPE e a Motorola Mobility, e teve
como objetivo a criação de uma aplicação para automatizar o processo de
triagem e classificação de CRs. Os experimentos realizados para o
desenvolvimento da aplicação apresentaram resultados bastante positivos,
onde foi possível obter um modelo de classificação com a métrica
Prequential-AUC de 80.23%, e uma Média Geométrica de 73.83%, sugerindo que
a utilização de métodos de aprendizado online e algoritmos de detecção de
mudança seja uma alternativa adequada para a resolução do problema em
questão.