Genetic improvement of software: a comprehensive survey
Genetic improvement (GI) uses automated search to find improved versions of existing
software. We present a comprehensive survey of this nascent field of research with a focus …
software. We present a comprehensive survey of this nascent field of research with a focus …
Automatic software repair: A survey
Debugging software failures is still a painful, time consuming, and expensive process. For
instance, recent studies showed that debugging activities often account for about 50% of the …
instance, recent studies showed that debugging activities often account for about 50% of the …
Understanding memory and thread safety practices and issues in real-world Rust programs
Rust is a young programming language designed for systems software development. It aims
to provide safety guarantees like high-level languages and performance efficiency like low …
to provide safety guarantees like high-level languages and performance efficiency like low …
LASE: locating and applying systematic edits by learning from examples
Adding features and fixing bugs often require systematic edits that make similar, but not
identical, changes to many code locations. Finding all the relevant locations and making the …
identical, changes to many code locations. Finding all the relevant locations and making the …
The plastic surgery hypothesis
Recent work on genetic-programming-based approaches to automatic program patching
have relied on the insight that the content of new code can often be assembled out of …
have relied on the insight that the content of new code can often be assembled out of …
An empirical study on real bug fixes
Software bugs can cause significant financial loss and even the loss of human lives. To
reduce such loss, developers devote substantial efforts to fixing bugs, which generally …
reduce such loss, developers devote substantial efforts to fixing bugs, which generally …
TaxDC: A taxonomy of non-deterministic concurrency bugs in datacenter distributed systems
We present TaxDC, the largest and most comprehensive taxonomy of non-deterministic
concurrency bugs in distributed systems. We study 104 distributed concurrency (DC) bugs …
concurrency bugs in distributed systems. We study 104 distributed concurrency (DC) bugs …
{AGAMOTTO}: How Persistent is your Persistent Memory Application?
Persistent Memory (PM) can be used by applications to directly and quickly persist any data
structure, without the overhead of a file system. However, writing PM applications that are …
structure, without the overhead of a file system. However, writing PM applications that are …
Discovering, reporting, and fixing performance bugs
Software performance is critical for how users perceive the quality of software products.
Performance bugs-programming errors that cause significant performance degradation-lead …
Performance bugs-programming errors that cause significant performance degradation-lead …
{SAMC}:{Semantic-Aware} Model Checking for Fast Discovery of Deep Bugs in Cloud Systems
The last five years have seen a rise of implementationlevel distributed system model
checkers (dmck) for verifying the reliability of real distributed systems. Existing dmcks …
checkers (dmck) for verifying the reliability of real distributed systems. Existing dmcks …