39 citations · 157 across the 32 of their papers we have counts for
26 papers · 1 filter
The Case for Automated Hyperspecialization: Evidence from SAT
Harrison Green, Claire Le Goues, Fraser Brown
The software status quo is to use one system to process many different kinds of inputs. In contrast, we propose hyperspecialization: creating new software that is optimized for a s…
Automatic, Expressive, and Scalable Fuzzing with Stitching
Harrison Green, Fraser Brown, Claire Le Goues
Fuzzing is a powerful technique for finding bugs in software libraries, but scaling it remains difficult. Automated harness generation commits to fixed API sequences at synthesis t…
HerAgent: Rethinking the Automated Environment Deployment via Hierarchical Test Pyramid
Xiang Li, Siyu Lu, Federica Sarro +2
Automated software environment setup is a prerequisite for testing, debugging, and reproducing failures, yet remains challenging in practice due to complex dependencies, heterogene…
SPELL: Synthesis of Programmatic Edits using LLMs
Daniel Ramos, Catarina Gamboa, Inês Lynce +3
Library migration is a common but error-prone task in software development. Developers may need to replace one library with another due to reasons like changing requirements or lic…
Future of Software Engineering Research: The SIGSOFT Perspective
Massimiliano Di Penta, Kelly Blincoe, Marsha Chechik +4
As software engineering conferences grow in size, rising costs and outdated formats are creating barriers to participation for many researchers. These barriers threaten the inclusi…
Adversarial Reasoning for Repair Based on Inferred Program Intent
He Ye, Aidan Z. H. Yang, Chang Hu +3
Automated program repair (APR) has shown promising results, particularly with the use of neural networks. Currently, most APR tools focus on code transformations specified by test…
Improving Examples in Web API Specifications using Iterated-Calls In-Context Learning
Kush Jain, Kiran Kate, Jason Tsay +2
Examples in web API specifications can be essential for API testing, API understanding, and even building chat-bots for APIs. Unfortunately, most API specifications lack human-writ…
TestForge: Feedback-Driven, Agentic Test Suite Generation
Kush Jain, Claire Le Goues
Automated test generation holds great promise for alleviating the burdens of manual test creation. However, existing search-based techniques compromise on test readability, while L…
When Fine-Tuning LLMs Meets Data Privacy: An Empirical Study of Federated Learning in LLM-Based Program Repair
Wenqiang Luo, Jacky Wai Keung, Boyang Yang +5
Software systems have been evolving rapidly and inevitably introducing bugs at an increasing rate, leading to significant losses in resources consumed by software maintenance. Rece…
Are Large Language Models Memorizing Bug Benchmarks?
Daniel Ramos, Claudia Mamede, Kush Jain +3
Large Language Models (LLMs) have become integral to various software engineering tasks, including code generation, bug detection, and repair. To evaluate model performance in thes…
Revisiting Unnaturalness for Automated Program Repair in the Era of Large Language Models
Aidan Z. H. Yang, Sophia Kolak, Vincent J. Hellendoorn +2
Language models have improved by orders of magnitude with the recent emergence of Transformer-based Large Language Models (LLMs). LLMs have demonstrated their ability to generate n…
MORepair: Teaching LLMs to Repair Code via Multi-Objective Fine-tuning
Boyang Yang, Haoye Tian, Jiadong Ren +5
Within the realm of software engineering, specialized tasks on code, such as program repair, present unique challenges, necessitating fine-tuning Large language models~(LLMs) to un…
What is a "bug"? On subjectivity, epistemic power, and implications for software research
David Gray Widder, Claire Le Goues
Considerable effort in software research and practice is spent on bugs. Finding, reporting, tracking, triaging, attempting to fix them automatically, detecting "bug smells" -these…
Large Language Models for Test-Free Fault Localization
Aidan Z. H. Yang, Ruben Martins, Claire Le Goues +1
Fault Localization (FL) aims to automatically localize buggy lines of code, a key first step in many manual and automatic debugging tasks. Previous FL techniques assume the provisi…
CAT-LM: Training Language Models on Aligned Code And Tests
Nikitha Rao, Kush Jain, Uri Alon +2
Testing is an integral part of the software development process. Yet, writing tests is time-consuming and therefore often neglected. Classical test generation tools such as EvoSuit…
Contextual Predictive Mutation Testing
Kush Jain, Uri Alon, Alex Groce +1
Mutation testing is a powerful technique for assessing and improving test suite quality that artificially introduces bugs and checks whether the test suites catch them. However, it…
PreciseBugCollector: Extensible, Executable and Precise Bug-fix Collection
He Ye, Zimin Chen, Claire Le Goues
Bug datasets are vital for enabling deep learning techniques to address software maintenance tasks related to bugs. However, existing bug datasets suffer from precise and scale lim…
MELT: Mining Effective Lightweight Transformations from Pull Requests
Daniel Ramos, Hailie Mitchell, Inês Lynce +3
Software developers often struggle to update APIs, leading to manual, time-consuming, and error-prone processes. We introduce MELT, a new approach that generates lightweight API mi…
Using Dynamic Binary Instrumentation to Detect Failures in Robotics Software
Deborah S. Katz, Christopher S. Timperley, Claire Le Goues
Autonomous and Robotics Systems (ARSs) are widespread, complex, and increasingly coming into contact with the public. Many of these systems are safety-critical, and it is vital to…
VarCLR: Variable Semantic Representation Pre-training via Contrastive Learning
Qibin Chen, Jeremy Lacomis, Edward J. Schwartz +3
Variable names are critical for conveying intended program behavior. Machine learning-based program analysis methods use variable name representations for a wide range of tasks, su…
Augmenting Decompiler Output with Learned Variable Names and Types
Qibin Chen, Jeremy Lacomis, Edward J. Schwartz +3
A common tool used by security professionals for reverse-engineering binaries found in the wild is the decompiler. A decompiler attempts to reverse compilation, transforming a bina…
An Empirical Study of OSS-Fuzz Bugs
Zhen Yu Ding, Claire Le Goues
Continuous fuzzing is an increasingly popular technique for automated quality and security assurance. Google maintains OSS-Fuzz: a continuous fuzzing service for open source softwa…
SOAR: A Synthesis Approach for Data Science API Refactoring
Ansong Ni, Daniel Ramos, Aidan Yang +4
With the growth of the open-source data science community, both the number of data science libraries and the number of versions for the same library are increasing rapidly. To matc…
Empirical Study of Restarted and Flaky Builds on Travis CI
Thomas Durieux, Claire Le Goues, Michael Hilton +1
Continuous Integration (CI) is a development practice where developers frequently integrate code into a common codebase. After the code is integrated, the CI server runs a test sui…