14 papers · ranked by Valyu relevance
Rangeet Pan, Raju Pavuluri, Ruikai Huang, Rahul Krishna + 3 more
Enterprise applications are typically tested at multiple levels, with service-level testing playing an important role in validating application functionality. Existing service-level testing tools, especially for RESTful APIs, often employ fuzzing and/or depend on OpenAPI specifications which are not readily available…
Camila A. Paiva, Raquel Maximino, Frederico Paiva, Rafael Accetta Vieira + 7 more
Database Management Systems (DBMSs) are widely used to store, retrieve, and manage the data handled by modern applications. Although prior work has studied the co-evolution of DBMSs and application source code, less is known about DBMS adoption, co-use, and replacement in real systems. This paper presents a historical…
Lops, Andrea, Narducci, Fedelucio + 6 more
—Unit testing is an essential but resource-intensive step in software development, ensuring individual code units function correctly. This paper introduces AGONETEST, an automated evaluation framework for Large Language Modelgenerated (LLM) unit tests in Java. AGONETEST does not aim to propose a novel test generation…
Stefan Schott, Serena Elisa Ponta, W. Fischer, Jonas Klauke + 1 more
On average, 71% of the code in typical Java projects comes from open-source software (OSS) dependencies, making OSS dependencies the dominant component of modern software code bases. This high degree of OSS reliance comes with a considerable security risk of adding known security vulnerabilities to a code base. To…
Victor May, Diganta Misra, Yi Luo, Sridhar + 3 more
AI coding assistants are rapidly becoming integral to modern software development. A key challenge in this space is the continual need to migrate and modernize codebases in response to evolving software ecosystems. Traditionally, such migrations have relied on rule-based systems and human intervention. With the advent…
Yirui He, Yuqi Huai, Xingyu Chen, Joshua Garcia
—As an increasing number of software systems reach unprecedented scale, relying solely on code-level abstractions is becoming impractical. While architectural abstractions offer a means to manage these systems, maintaining their consistency with the actual code has been problematic. The Java Platform Module System…
Rui Li, Wenrui Diao, Debin Gao
Android has adopted Kotlin alongside Java across apps and core system components. During this shift, we observe parallel implementations in the Android Open Source Project (AOSP) where the same component is implemented in both Java and Kotlin. In principle, their functional purposes are identical. In practice, subtle…
Mirko Stocker, Michael Wahler
Software stack upgrades are a routine part of software maintenance and evolution, typically motivated by improved performance, stability, or functionality. Yet their impact on energy consumption - a growing concern for organizations pursuing sustainability - remains poorly understood. This paper presents a systematic…
Filippo Schiavio, Lubomír Bulej, Walter Binder
Developers often use microbenchmarks to choose the most performant implementation of a method or a class. On the Java Virtual Machine (JVM), this is commonly done using the Java Microbenchmark Harness (JMH) which addresses common pitfalls of measuring code performance on the JVM. However, even using JMH guidelines…
Norbert Sandor Szolnoki, Gabor Antal
We release \textsc{JavaVulBench}, a benchmark dataset and evaluation harness for Java vulnerability detection. The dataset contains $\sim$30{,}600 Java methods spanning 1{,}740 CVEs and 700+ projects, labelled at both method and line granularity, with per-CVE publication dates and five realistic split strategies…
Qi Hu, Jiangchao Liu, Xin Yu, Lin Zhang + 1 more
As the complexity of mobile applications grows exponentially and the fragmentation of user device environments intensifies, ensuring online application stability faces unprecedented challenges. Traditional methods, such as static logging and post-crash analysis, lack real-time contextual information, rendering them…
Alessandro Botta, Shiven Garisa, Jaya Vardhini Akurathi, Ahsanul Ameen Sabit + 2 more
Software-engineering assistants often need method-level context beyond an isolated body, including enclosing-class information, documentation, callers, callees, type hierarchy, and structural characteristics. Manually collecting this context is time-consuming, inconsistent, and difficult to reproduce across large Java…
Ali Aman, Muhammad Asaduzzaman, Shaowei Wang, Chanchal K. Roy
Background: Developers frequently reuse code by copying fragments and adapting them to fit new contexts. Existing benchmarks for evaluating large language models (LLMs) on code adaptation either rely on explicit step-by-step instructions, cover only narrow change types such as variable wiring, or operate exclusively at…
Valentin Aebi, Carlo A. Furia
Refinement types are a static verification technique that aims at increasing the expressivity of traditional type systems while remaining easy and natural to use. While systems based on refinement types have been developed for several mainstream languages, their practical adoption remains limited by their annotation…