2 research outputs found

    Leveraging Identifier Naming Structures in Source Code and Bug Reports to Localize Relevant Bugs

    Get PDF
    When bugs are found in source code, bug reports are created which contain relevant information for developers to locate and fix the bug. In large source code repositories, it can be difficult and time consuming for developers to manually analyze bug reports to locate a bug. The discovery of patterns between bug reports and source files has led to the creation of automated tools using various techniques. Automated bug localization techniques can reduce the amount of manual effort required by developers by ranking the most probable location of the bug using textual information from bug reports and source code. Although these approaches offer some assistance, the lexical mismatch between the bug reports and the source code makes it difficult to accurately locate the buggy source code file(s) using Information Retrieval (IR) techniques. Our research proposes a technique that takes advantage of the lexical and structural patterns observed in source code identifier names to help offset the mismatch between bug reports and their related source code files. Our observations reveal that there are lexical and structural identifier naming trends for different identifier types in the source code. Using two open-source projects, and collecting frequencies for observed identifier patterns across the project, we applied the observed frequencies to matched word occurrences in bug reports across our evaluation data set to modify the significance of that word. Based on observations discovered in our empirical analysis of open source repositories ElasticSearch and RxJava, we developed a method to modify the significance of a word by altering the weight of the matched word represented in the Term Frequency - Inverse Document Frequency (TF-IDF) vectorization of that particular bug report. The idea behind this approach is that if we come across a word perceived to be significant based on our observed identifier pattern frequency data, we can apply a weight to that word in the bug report vectorization to increase the cosine similarity score between the bug report and source file vectors. This work expands and improves upon previous work by Gharibi et al. [1], who propose a multicomponent approach that uses token matching, stack trace, semantic similarity, and a revised vector space model (rVSM). Specifically, our approach modifies the rVSM component, and our work is evaluated on the same three open-source software projects: AspectJ, SWT, and ZXing. The results of our approach are comparable to the results of Gharibi et al., and we achieve an improvement in some cases. It was observed that our work outperforms many existing bug localization approaches. Top@N, Mean Reciprocal Rank (MRR), and Mean Average Precision (MAP) are metrics used to evaluate and rank our work against other approaches, revealing some improvement in bug localization across three open-source projects

    Aproximaci贸n metodol贸gica para la creaci贸n de informes de fallos y mejores pr谩cticas para el proceso de mantenimiento de software

    Get PDF
    El mantenimiento es una fase del ciclo de vida del software donde se mejora el software que se encuentra en funcionamiento, ya sea para adaptarse a cambios o para corregir fallos que se detectan durante la operaci贸n, este trabajo se enfoca en el mantenimiento correctivo, teniendo en cuenta que de este depende la operatividad del software en el tiempo. Sin embargo, hacer modificaciones al software en producci贸n no es una tarea f谩cil y menos si se realizan sin usar buenas pr谩cticas, esto genera retrasos en los tiempos de soluci贸n de los fallos e inyecci贸n de fallos nuevos al momento de realizar correcciones. El objetivo de esta investigaci贸n es proponer un acercamiento metodol贸gico para abordar el proceso de mantenimiento de software que incluye buenas pr谩cticas desde que se reporta un fallo hasta que se resuelve. Este acercamiento tambi茅n propone unos artefactos que ayudar谩n a mejorar el proceso de atenci贸n y correcci贸n de fallos.Mag铆ster en Ingenier铆a de SoftwareMaestr铆
    corecore