GenProgJS: A Baseline System for Test-Based Automated Repair of JavaScript Programs
Originally, GenProg was created to repair buggy programs written in the C programming language, launching a new discipline in Generate-and-Validate approach of Automated Program Repair (APR). Since then, a number of other tools has been published using a ...
Triple Peak Day: Work Rhythms of Software Developers in Hybrid Work
- Javier Hernandez,
- Vedant Das Swain,
- Jina Suh,
- Daniel McDuff,
- Judith Amores,
- Gonzalo Ramos,
- Kael Rowan,
- Brian Houck,
- Shamsi Iqbal,
- Mary Czerwinski
The future of work is rapidly changing, with remote and hybrid settings blurring the boundaries between professional and personal life. To understand how work rhythms vary across different work settings, we conducted a month-long study of 65 software ...
On-the-Fly Syntax Highlighting: Generalisation and Speed-Ups
On-the-fly syntax highlighting involves the rapid association of visual secondary notation with each character of a language derivation. This task has grown in importance due to the widespread use of online software development tools, which frequently ...
MoCo: Fuzzing Deep Learning Libraries via Assembling Code
The rapidly developing Deep Learning (DL) techniques have been applied in software systems of various types. However, they can also pose new safety threats with potentially serious consequences, especially in safety-critical domains. DL libraries serve as ...
Detecting Compiler Error Recovery Defects via Program Mutation Exploration
Compiler error recovery diagnostics facilitates software development as it provides the possible causes and suggestions on potential programming errors. However, due to compiler bugs, error recovery diagnostics could be erroneous, spurious, missing, or ...
<italic>Look Before You Leap:</italic> An Exploratory Study of Uncertainty Analysis for Large Language Models
The recent performance leap of Large Language Models (LLMs) opens up new opportunities across numerous industrial applications and domains. However, the potential erroneous behavior (e.g., the generation of misinformation and hallucination) has also ...
ArchHypo: Managing Software Architecture Uncertainty Using Hypotheses Engineering
Uncertainty is present in software architecture decisions due to a lack of knowledge about the requirements and the solutions involved. However, this uncertainty is usually not made explicit, and decisions can be made based on unproven premises or false ...
A Holistic Approach to Design Understanding Through Concept Explanation
Complex software systems consist of multiple overlapping design structures, such as abstractions, features, crosscutting concerns, or patterns. This is similar to how a human body has multiple interacting subsystems, such as respiratory, digestive, or ...
<italic>Do Chase Your Tail!</italic> Missing Key Aspects Augmentation in Textual Vulnerability Descriptions of Long-Tail Software Through Feature Inference
Augmenting missing key aspects in Textual Vulnerability Descriptions (TVDs) is crucial for effective vulnerability analysis. For instance, in TVDs, key aspects include <italic>Attack Vector</italic>, <italic>Vulnerability Type</italic>, among others. ...
Refactoring Microservices to Microservices in Support of Evolutionary Design
<italic>Evolutionary design</italic> is a widely accepted practice for defining microservice boundaries. It is performed through a sequence of incremental refactoring tasks (we call it <italic>“microservice refactoring”</italic>), each ...
Towards Improving the Performance of Comment Generation Models by Using Bytecode Information
Code comment plays an important role in program understanding, and a large number of automatic comment generation methods have been proposed in recent years. To get a better effect of generating comments, many studies try to extract a variety of ...
Understanding the Robustness of Transformer-Based Code Intelligence via Code Transformation: Challenges and Opportunities
Transformer-based models have demonstrated state-of-the-art performance in various intelligent coding tasks such as code comment generation and code completion. Previous studies show that deep learning models are sensitive to input variations, but few ...
Accuracy Can Lie: On the Impact of Surrogate Model in Configuration Tuning
To ease the expensive measurements during configuration tuning, it is natural to build a surrogate model as the replacement of the system, and thereby the configuration performance can be cheaply evaluated. Yet, a stereotype therein is that the higher the ...
Anomaly Detection on Interleaved Log Data With Semantic Association Mining on Log-Entity Graph
Logs record crucial information about runtime status of software system, which can be utilized for anomaly detection and fault diagnosis. However, techniques struggle to perform effectively when dealing with interleaved logs and entities that influence ...
Completeness and Consistency of Tabular Requirements: An SMT-Based Verification Approach
Tabular requirements assist with the specification of software requirements using an “if-then” paradigm and are supported by many tools. For example, the Requirements Table block in Simulink<sup>®</sup> supports writing executable ...
Mecha: A Neural-Symbolic Open-Set Homogeneous Decision Fusion Approach for Zero-Day Malware Similarity Detection
With increasing numbers of novel malware each year, tools are required for efficient and accurate variant matching under the same family, for the purpose of effective proactive threat detection, retro-hunting, and attack campaign tracking. All of the ...
MM-SCS: Leveraging Multimodal Features to Enhance Smart Contract Code Search
Semantic code search technology allows searching for existing code snippets through natural language, which can greatly improve programming efficiency. Smart contracts, programs that run on the blockchain, have a code reuse rate of more than 79%, which ...
Understanding the Effect of Agile Practice Quality on Software Product Quality
Agile methods and associated practices have been held to deliver value to software developers and customers. Research studies have reported team productivity and software quality benefits. While such insights are helpful for understanding how agile ...