Issue Downloads
Communicating Study Design Trade-offs in Software Engineering
- Martin P. Robillard,
- Deeksha M. Arya,
- Neil A. Ernst,
- Jin L. C. Guo,
- Maxime Lamothe,
- Mathieu Nassif,
- Nicole Novielli,
- Alexander Serebrenik,
- Igor Steinmacher,
- Klaas-Jan Stol
Reflecting on the limitations of a study is a crucial part of the research process. In software engineering studies, this reflection is typically conveyed through discussions of study limitations or threats to validity. In current practice, such ...
Learning Failure-Inducing Models for Testing Software-Defined Networks
Software-defined networks (SDN) enable flexible and effective communication systems that are managed by centralized software controllers. However, such a controller can undermine the underlying communication network of an SDN-based system and thus must be ...
sGuard+: Machine Learning Guided Rule-Based Automated Vulnerability Repair on Smart Contracts
Smart contracts are becoming appealing targets for hackers because of the vast amount of cryptocurrencies under their control. Asset loss due to the exploitation of smart contract codes has increased significantly in recent years. To guarantee that smart ...
Try with Simpler - An Evaluation of Improved Principal Component Analysis in Log-based Anomaly Detection
With the rapid development of deep learning (DL), the recent trend of log-based anomaly detection focuses on extracting semantic information from log events (i.e., templates of log messages) and designing more advanced DL models for anomaly detection. ...
Refining ChatGPT-Generated Code: Characterizing and Mitigating Code Quality Issues
Since its introduction in November 2022, ChatGPT has rapidly gained popularity due to its remarkable ability in language understanding and human-like responses. ChatGPT, based on GPT-3.5 architecture, has shown great promise for revolutionizing various ...
An Empirical Analysis of Issue Templates Usage in Large-Scale Projects on GitHub
GitHub Issues is a widely used issue tracking tool in open-source software projects. Originally designed with broad flexibility, its lack of standardization led to incomplete issue reports, impeding software development and maintenance efficiency. To ...
Enumerating Valid Non-Alpha-Equivalent Programs for Interpreter Testing
Skeletal program enumeration (SPE) can generate a great number of test programs for validating the correctness of compilers or interpreters. The classic SPE generates programs by exhaustively enumerating all possible variable usage patterns into a given ...
Non-Autoregressive Line-Level Code Completion
Software developers frequently use code completion tools to accelerate software development by suggesting the following code elements. Researchers usually employ AutoRegressive (AR) decoders to complete code sequences in a left-to-right, token-by-token ...
Precisely Extracting Complex Variable Values from Android Apps
Millions of users nowadays rely on their smartphones to process sensitive data through apps from various vendors and sources. Therefore, it is vital to assess these apps for security vulnerabilities and privacy violations. Information such as to which ...
DinoDroid: Testing Android Apps Using Deep Q-Networks
The large demand of mobile devices creates significant concerns about the quality of mobile applications (apps). Developers need to guarantee the quality of mobile apps before it is released to the market. There have been many approaches using different ...
Generating Python Type Annotations from Type Inference: How Far Are We?
In recent years, dynamic languages such as Python have become popular due to their flexibility and productivity. The lack of static typing makes programs face the challenges of fixing type errors, early bug detection, and code understanding. To alleviate ...
Prompt Sapper: A LLM-Empowered Production Tool for Building AI Chains
The emergence of foundation models, such as large language models (LLMs) GPT-4 and text-to-image models DALL-E, has opened up numerous possibilities across various domains. People can now use natural language (i.e., prompts) to communicate with AI to ...
Machine Translation Testing via Syntactic Tree Pruning
Machine translation systems have been widely adopted in our daily life, making life easier and more convenient. Unfortunately, erroneous translations may result in severe consequences, such as financial losses. This requires to improve the accuracy and ...
On the Reliability and Explainability of Language Models for Program Generation
Recent studies have adopted pre-trained language models, such as CodeT5 and CodeGPT, for automated program generation tasks like code generation, repair, and translation. Numerous language model based approaches have been proposed and evaluated on various ...
Beyond Fidelity: Explaining Vulnerability Localization of Learning-Based Detectors
- Baijun Cheng,
- Shengming Zhao,
- Kailong Wang,
- Meizhen Wang,
- Guangdong Bai,
- Ruitao Feng,
- Yao Guo,
- Lei Ma,
- Haoyu Wang
Vulnerability detectors based on deep learning (DL) models have proven their effectiveness in recent years. However, the shroud of opacity surrounding the decision-making process of these detectors makes it difficult for security analysts to comprehend. ...
RAPID: Zero-Shot Domain Adaptation for Code Search with Pre-Trained Models
Code search, which refers to the process of identifying the most relevant code snippets for a given natural language query, plays a crucial role in software maintenance. However, current approaches heavily rely on labeled data for training, which results ...
Abstraction and Refinement: Towards Scalable and Exact Verification of Neural Networks
As a new programming paradigm, deep neural networks (DNNs) have been increasingly deployed in practice, but the lack of robustness hinders their applications in safety-critical domains. While there are techniques for verifying DNNs with formal guarantees, ...
Supporting Safety Analysis of Image-processing DNNs through Clustering-based Approaches
The adoption of deep neural networks (DNNs) in safety-critical contexts is often prevented by the lack of effective means to explain their results, especially when they are erroneous. In our previous work, we proposed a white-box approach (HUDD) and a ...
Analyzing and Detecting Information Types of Developer Live Chat Threads
Online chatrooms serve as vital platforms for information exchange among software developers. With multiple developers engaged in rapid communication and diverse conversation topics, the resulting chat messages often manifest complexity and lack ...
Test Input Prioritization for 3D Point Clouds
3D point cloud applications have become increasingly prevalent in diverse domains, showcasing their efficacy in various software systems. However, testing such applications presents unique challenges due to the high-dimensional nature of 3D point cloud ...
KADEL: Knowledge-Aware Denoising Learning for Commit Message Generation
Commit messages are natural language descriptions of code changes, which are important for software evolution such as code understanding and maintenance. However, previous methods are trained on the entire dataset without considering the fact that a ...
Automated Mapping of Vulnerability Advisories onto their Fix Commits in Open Source Repositories
The lack of comprehensive sources of accurate vulnerability data represents a critical obstacle to studying and understanding software vulnerabilities (and their corrections). In this article, we present an approach that combines heuristics stemming from ...
Navigating the Complexity of Generative AI Adoption in Software Engineering
This article explores the adoption of Generative Artificial Intelligence (AI) tools within the domain of software engineering, focusing on the influencing factors at the individual, technological, and social levels. We applied a convergent mixed-methods ...
Lessons Learned from Developing a Sustainability Awareness Framework for Software Engineering Using Design Science
- Stefanie Betz,
- Birgit Penzenstadler,
- Leticia Duboc,
- Ruzanna Chitchyan,
- Sedef Akinli Kocak,
- Ian Brooks,
- Shola Oyedeji,
- Jari Porras,
- Norbert Seyff,
- Colin C. Venters
To foster a sustainable society within a sustainable environment, we must dramatically reshape our work and consumption activities, most of which are facilitated through software. Yet, most software engineers hardly consider the effects on the ...
Fairness Testing: A Comprehensive Survey and Analysis of Trends
Unfair behaviors of Machine Learning (ML) software have garnered increasing attention and concern among software engineers. To tackle this issue, extensive research has been dedicated to conducting fairness testing of ML software, and this article offers ...
Fine-grained Coverage-based Fuzzing
Fuzzing is a popular software testing method that discovers bugs by massively feeding target applications with automatically generated inputs. Many state-of-the-art fuzzers use branch coverage as a feedback metric to guide the fuzzing process. The fuzzer ...
Fine-grained Coverage-based Fuzzing - RCR Report
This is the RCR report of the artifact for the article “Fine-grained Coverage-based Fuzzing.” This report contains scripts and pre-build binary programs to reproduce the results presented in the main article. The artifact is released on Zenodo with DOI: ...