Software has bugs, and fixing those bugs pervades the software engineering process. It is folklore that bug fixes are often buggy themselves, resulting in bad fixes, either failing to fix a bug or creating new bugs. To confirm this folklore, we explored bug databases of the Ant, AspectJ, and Rhino projects, and found that bad fixes comprise as much as 9% of all bugs. Thus, detecting and correcting bad fixes is important for improving the quality and reliability of software. However, no prior work has systematically considered this bad fix problem, which this paper introduces and formalizes. In particular, the paper formalizes two criteria to determine whether a fix resolves a bug: coverage and disruption. The coverage of a fix measures the extent to which the fix correctly handles all inputs that may trigger a bug, while disruption measures the deviations from the program's intended behavior after the application of a fix. This paper also introduces a novel notion of distance-bounded weakest precondition as the basis for the developed practical techniques to compute the coverage and disruption of a fix.To validate our approach, we implemented FIXATION, a prototype that automatically detects bad fixes for Java programs. When it detects a bad fix, FIXATION returns an input that still triggers the bug or reports a newly introduced bug. Programmers can then use that bug-triggering input to refine or reformulate their fix. We manually extracted fixes drawn from real-world projects and evaluated FIXATION against them: FIXATION successfully detected the extracted bad fixes. *
Drug discovery programs against the antibacterial target UDP-N-acetylglucosamine enolpyruvyl transferase (MurA) have already resulted in covalent inhibitors having small three- and five-membered heterocyclic rings. In the current study, the reactivity of four-membered rings was carefully modulated to obtain a novel family of covalent MurA inhibitors. Screening a small library of cyclobutenone derivatives led to the identification of bromo-cyclobutenaminones as new electrophilic warheads. The electrophilic reactivity and cysteine specificity have been determined in a glutathione (GSH) and an oligopeptide assay, respectively. Investigating the structure-activity relationship for MurA suggests a crucial role for the bromine atom in the ligand. In addition, MS/MS experiments have proven the covalent labelling of MurA at Cys115 and the observed loss of the bromine atom suggests a net nucleophilic substitution as the covalent reaction. This new set of compounds might be considered as a viable chemical starting point for the discovery of new MurA inhibitors.
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.