13,259 research outputs found

    Staged program repair with condition synthesis

    Full text link

    Staged Program Repair in SPR

    Get PDF
    We present SPR, a new program repair system that uses condition synthesis to instantiate transformation schemas to repair program defects. SPR s staged repair strategy combines a rich space of potential repairs with a targeted search algorithm that makes this space viably searchable in practice. This strategy enables SPR to successfully find correct program repairs within a space that contains many meaningful and useful patches. The majority of these correct repairs are not within the search spaces of previous automatic program repair systems

    Automatic Repair of Real Bugs: An Experience Report on the Defects4J Dataset

    Full text link
    Defects4J is a large, peer-reviewed, structured dataset of real-world Java bugs. Each bug in Defects4J is provided with a test suite and at least one failing test case that triggers the bug. In this paper, we report on an experiment to explore the effectiveness of automatic repair on Defects4J. The result of our experiment shows that 47 bugs of the Defects4J dataset can be automatically repaired by state-of- the-art repair. This sets a baseline for future research on automatic repair for Java. We have manually analyzed 84 different patches to assess their real correctness. In total, 9 real Java bugs can be correctly fixed with test-suite based repair. This analysis shows that test-suite based repair suffers from under-specified bugs, for which trivial and incorrect patches still pass the test suite. With respect to practical applicability, it takes in average 14.8 minutes to find a patch. The experiment was done on a scientific grid, totaling 17.6 days of computation time. All their systems and experimental results are publicly available on Github in order to facilitate future research on automatic repair

    Automatic Software Repair: a Bibliography

    Get PDF
    This article presents a survey on automatic software repair. Automatic software repair consists of automatically finding a solution to software bugs without human intervention. This article considers all kinds of repairs. First, it discusses behavioral repair where test suites, contracts, models, and crashing inputs are taken as oracle. Second, it discusses state repair, also known as runtime repair or runtime recovery, with techniques such as checkpoint and restart, reconfiguration, and invariant restoration. The uniqueness of this article is that it spans the research communities that contribute to this body of knowledge: software engineering, dependability, operating systems, programming languages, and security. It provides a novel and structured overview of the diversity of bug oracles and repair operators used in the literature

    History of the Innovation of Damage Control for Management of Trauma Patients: 1902-2016

    Get PDF
    Objective: To review the history of the innovation of damage control (DC) for management of trauma patients. Background: DC is an important development in trauma care that provides a valuable case study in surgical innovation. Methods: We searched bibliographic databases (1950-2015), conference abstracts (2009-2013), Web sites, textbooks, and bibliographies for articles relating to trauma DC. The innovation of DC was then classified according to the Innovation, Development, Exploration, Assessment, and Long-term study model of surgical innovation. Results: The innovation\u27\u27 of DC originated from the use of therapeutic liver packing, a practice that had previously been abandoned after World War II because of adverse events. It then developed\u27\u27 into abbreviated laparotomy using rapid conservative operative techniques.\u27\u27 Subsequent exploration\u27\u27 resulted in the application of DC to increasingly complex abdominal injuries and thoracic, peripheral vascular, and orthopedic injuries. Increasing use of DC laparotomy was followed by growing reports of postinjury abdominal compartment syndrome and prophylactic use of the open abdomen to prevent intra-abdominal hypertension after DC laparotomy. By the year 2000, DC surgery had been widely adopted and was recommended for use in surgical journals, textbooks, and teaching courses ( assessment\u27\u27 stage of innovation). Long-term study\u27\u27 of DC is raising questions about whether the procedure should be used more selectively in the context of improving resuscitation practices. Conclusions: The history of the innovation of DC illustrates how a previously abandoned surgical technique was adapted and readopted in response to an increased understanding of trauma patient physiology and changing injury patterns and trauma resuscitation practices

    An Analysis of the Search Spaces for Generate and Validate Patch Generation Systems

    Get PDF
    We present the first systematic analysis of the characteristics of patch search spaces for automatic patch generation systems. We analyze the search spaces of two current state-of-the-art systems, SPR and Prophet, with 16 different search space configurations. Our results are derived from an analysis of 1104 different search spaces and 768 patch generation executions. Together these experiments consumed over 9000 hours of CPU time on Amazon EC2. The analysis shows that 1) correct patches are sparse in the search spaces (typically at most one correct patch per search space per defect), 2) incorrect patches that nevertheless pass all of the test cases in the validation test suite are typically orders of magnitude more abundant, and 3) leveraging information other than the test suite is therefore critical for enabling the system to successfully isolate correct patches. We also characterize a key tradeoff in the structure of the search spaces. Larger and richer search spaces that contain correct patches for more defects can actually cause systems to find fewer, not more, correct patches. We identify two reasons for this phenomenon: 1) increased validation times because of the presence of more candidate patches and 2) more incorrect patches that pass the test suite and block the discovery of correct patches. These fundamental properties, which are all characterized for the first time in this paper, help explain why past systems often fail to generate correct patches and help identify challenges, opportunities, and productive future directions for the field
    corecore