Searcharxiv⌕ Search

arXiv subjects

A Eashaan Rao

Publications and source records attributed to A Eashaan Rao.

4 recordsLinked to original sources

Cross-Project Bug Localization: What Works, What Doesn't, and Why

Bug localization models require substantial within-project training data that newly active or small open-source projects rarely have. Cross-project learning (CPL) promises to close this gap by reusing labeled bugs from mature projects, but prior CPL studies evaluate a single model against ample-data within-project baselines that data-scarce projects cannot reach. We ask whether CPL's effectiveness is a property of the transfer setting or depends on model architecture. We evaluate three architecturally distinct models, embedding-based BLAZE, convolutional TRANP-CNN, and GNN-based adversarial COOBA, on 63 source to target pairs from 13 open-source Python projects under identical bug corpora, data splits, retrieval candidates, and baselines. The primary baseline is within-project limited training (WP-small, 20% of target labels, the same target-side share as CP-transfer). CPL outperforms WP-small most clearly for TRANP-CNN (Cohen's d = 0.95, win rate 81.0%, p < 0.001, robust to clustering pairs by target project), and less so for BLAZE (d = 0.49, win rate 60.3%, p = 0.002; not significant once pairs are clustered by target). COOBA, under our re-implementation, shows a small gain that does not survive multiple-comparison correction (d = 0.27, p = 0.027). Negative transfer affects 9.5% of TRANP-CNN pairs and 30.2% of BLAZE's and COOBA's. Cross-model direction agreement is only 44-54%: the same pair can help one architecture and harm another, although the models' gains are positively correlated (rho = 0.24-0.42). CPL outcomes are therefore architecture-dependent: practitioners should validate CPL for their chosen model, and CPL studies should report results per architecture.

cs.SE↗

Apples, Oranges & Fruits -- Understanding Similarity of Software Projects Through The Lens of Dissimilar Artifacts

The growing availability of open source projects has facilitated developers to reuse existing software artifacts and leverage them to develop new software. However, it is hard to understand the notion of similarity as it varies from developer to developer. Some developers might search for repositories with similar source code, while some might be in search of repositories with similar requirements or issues. Existing approaches tend to find similar projects by comparing similar artifacts such as source-code to source-code, API usage to API usage, documentation to documentation, and so on. Even though there is a dissimilarity between two similar artifacts, there could be a similarity between two dissimilar artifacts. Hence, in this paper, we aim to answer the question - Can we find similarity of software repositories through dissimilar artifacts?. To this end, we conduct an experiment to find similarities between three repositories, two similar and one different project comparing similar and dissimilar artifacts (documentation, commits, and source-code). We observed similarities between dissimilar artifacts such as Commits, Source Code, and Readme Files in the context of both similar and different repositories.

cs.SE↗

AC2 -- Towards Understanding Architectural Changes in Rapid Releases

Open source projects are adopting faster release cycles that reflect various changes. Therefore, comprehending the effects of these changes on software's architecture over the releases becomes necessary. However, it is challenging to keep architecture in-check and add new changes simultaneously for every release. To this end, we propose a visualization tool called AC2, which allows its users to examine the alterations in the architecture at both higher and lower levels of abstraction for the python projects. AC2 uses call graphs and collaboration graphs to show the interaction between different architectural components. The tool provides four different views to see the architectural changes. The user can examine two releases at a time to comprehend the architectural changes between the releases. AC2 can support the maintainers and developers to observe changes in the project and its influence on the architecture, which allow them to see its increasing complexity over the releases at the component level. AC2 can be downloaded at https://github.com/dheerajrox/AC2 and its demo can be seen at the website https://dheerajrox.github.io/AC2doc or on youtube https://www.youtube.com/watch?v=GNrJfZ0RCVI

cs.SE↗

BuGL -- A Cross-Language Dataset for Bug Localization

Bug Localization is the process of locating potential error-prone files or methods from a given bug report and source code. There is extensive research on bug localization in the literature that focuses on applying information retrieval techniques or machine learning/deep learning approaches or both, to detect location of bugs. The common premise for all approaches is the availability of a good dataset, which in this case, is the standard benchmark dataset that comprises of 6 Java projects and in some cases, more than 6 Java projects. The existing dataset do not comprise projects of other programming languages, despite of the need to investigate specific and cross project bug localization. To the best of our knowledge, we are not aware of any dataset that addresses this concern. In this paper, we present BuGL, a large-scale cross-language dataset. BuGL constitutes of more than 10,000 bug reports drawn from open-source projects written in four programming languages, namely C, C++, Java, and Python. The dataset consists of information which includes Bug Reports and Pull-Requests. BuGL aims to unfold new research opportunities in the area of bug localization.

cs.SE↗