Abstract-Automated program repair (APR) is a promising approach to automatically fixing software bugs. Most APR techniques use tests to drive the repair process; this makes them readily applicable to realistic code bases, but also brings the risk of generating spurious repairs that overfit the available tests. Some techniques addressed the overfitting problem by targeting code using contracts (such as pre-and postconditions), which provide additional information helpful to characterize the states of correct and faulty computations; unfortunately, mainstream programming languages do not normally include contract annotations, which severely limits the applicability of such contract-based techniques.This paper presents JAID, a novel APR technique for Java programs, which is capable of constructing detailed state abstractions-similar to those employed by contract-based techniques-that are derived from regular Java code without any special annotations. Grounding the repair generation and validation processes on rich state abstractions mitigates the overfitting problem, and helps extend APR's applicability: in experiments with the DEFECTS4J benchmark, a prototype implementation of JAID produced genuinely correct repairs, equivalent to those written by programmers, for 25 bugs-improving over the state of the art of comparable Java APR techniques in the number and kinds of correct fixes.
Nonhealing wounds in diabetes remain a global clinical and research challenge. Exosomes are primary mediators of cell paracrine action, which are shown to promote tissue repair and regeneration. In this study, we investigated the effects of serum derived exosomes (Serum‐Exos) on diabetic wound healing and its possible mechanisms. Serum‐Exos were isolated from blood serum of normal healthy mice and identified by transmission electron microscopy and western blot. The effects of Serum‐Exos on diabetic wound healing, fibroblast growth and migration, angiogenesis and extracellular matrix (ECM) formation were investigated. Our results showed that the isolated Serum‐Exos exhibited a sphere‐shaped morphology with a mean diameter at 150 nm, and expressed classical markers of exosomes including HSP70, TSG101, and CD63. Treatment with Serum‐Exos elevated the percentage of wound closure and shortened the time of healing in diabetic mice. Mechanistically, Serum‐Exos promoted granulation tissue formation and increased the expression of CD31, fibronectin and collagen‐ɑ in diabetic mice. Serum‐Exos also promoted the migration of NIH/3T3 cells, which was associated with increased expression levels of PCNA, Ki67, collagen‐α and fibronectin. In addition, Serum‐Exos enhanced tube formation in human umbilical vein endothelial cells and induced the expression of CD31 at both protein and messenger RNA levels. Collectively, our results suggest that Serum‐Exos may facilitate the wound healing in diabetic mice by promoting angiogenesis and ECM formation, and show the potential application in treating diabetic wounds.
Fault localization is a crucial step of automated program repair, because accurately identifying program locations that are most closely implicated with a fault greatly affects the effectiveness of the patching process. An ideal fault localization technique would provide precise information while requiring moderate computational resources-to best support an efficient search for correct fixes. In contrast, most automated program repair tools use standard fault localization techniques-which are not tightly integrated with the overall program repair process, and hence deliver only subpar efficiency.In this paper, we present retrospective fault localization: a novel fault localization technique geared to the requirements of automated program repair. A key idea of retrospective fault localization is to reuse the outcome of failed patch validation to support mutation-based dynamic analysis-providing accurate fault localization information without incurring onerous computational costs.We implemented retrospective fault localization in a tool called RESTORE-based on the JAID Java program repair system. Experiments involving faults from the DEFECTS4J standard benchmark indicate that retrospective fault localization can boost automated program repair: RESTORE efficiently explores a large fix space, delivering state-of-the-art effectiveness (41 DEFECTS4J bugs correctly fixed, 7 more than any other automated repair tools for Java) while simultaneously boosting performance (speedup over 3 compared to JAID). Retrospective fault localization is applicable to any automated program repair techniques that rely on fault localization and dynamic validation of patches. 1 Fault Closure113 in DEFECTS4J [8] and Tab. III. 1 private void processRequireCall(NodeTraversal t, 2 Node n, Node parent) { 3 ProvidedName provided = providedNames.get(...); 4 ... 5 if (provided != null) { 6 parent.detachFromParent(); 7 compiler.reportCodeChange(); 8 } 9 } Listing 1: Faulty method processRequireCall from class ProcessClosurePrimitives in project Closure Compiler.if (provided != null || requiresLevel.isOn()) { Listing 2: Fix written by tool developers (replacing line 5 in Lst. 1), and also produced by RESTORE.
Most techniques for automated program repair (APR) use tests to drive the repair process; this makes them prone to generating spurious repairs that overfit the available tests unless additional information about expected program behavior is available. Our previous work on JAID, an APR technique for Java programs, showed that constructing detailed state abstractions-similar to those employed by techniques for programs with contracts-from plain Java code without any special annotations provides valuable additional information, and hence helps mitigate the overfitting problem. This paper extends the work on JAID with a comprehensive experimental evaluation involving 693 bugs in three different benchmark suites. The evaluation shows, among other things, that: 1) JAID is effective: it produced correct fixes for over 15% of all bugs, with a precision of nearly 60%; 2) JAID is reasonably efficient: on average, it took less than 30 minutes to output a correct fix; 3) JAID is competitive with the state of the art, as it fixed more bugs than any other technique, and 11 bugs that no other tool can fix; 4) JAID is robust: its heuristics are complementary and their effectiveness does not depend on the fine-tuning of parameters. The experimental results also indicate the main trade-offs involved in designing an APR technique based on tests, as well as possible directions for further progress in this line of work.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.