Patch verification via multiversion interprocedural control flow graphs

W Le, SD Pattison - Proceedings of the 36th International Conference on …, 2014 - dl.acm.org
Proceedings of the 36th International Conference on Software Engineering, 2014dl.acm.org
Software development is inherently incremental; however, it is challenging to correctly
introduce changes on top of existing code. Recent studies show that 15%-24% of the bug
fixes are incorrect, and the most important yet hard-to-acquire information for programming
changes is whether this change breaks any code elsewhere. This paper presents a
framework, called Hydrogen, for patch verification. Hydrogen aims to automatically
determine whether a patch correctly fixes a bug, a new bug is introduced in the change, a …
Software development is inherently incremental; however, it is challenging to correctly introduce changes on top of existing code. Recent studies show that 15%-24% of the bug fixes are incorrect, and the most important yet hard-to-acquire information for programming changes is whether this change breaks any code elsewhere. This paper presents a framework, called Hydrogen, for patch verification. Hydrogen aims to automatically determine whether a patch correctly fixes a bug, a new bug is introduced in the change, a bug can impact multiple software releases, and the patch is applicable for all the impacted releases. Hydrogen consists of a novel program representation, namely multiversion interprocedural control flow graph (MVICFG), that integrates and compares control flow of multiple versions of programs, and a demand-driven, path-sensitive symbolic analysis that traverses the MVICFG for detecting bugs related to software changes and versions. In this paper, we present the definition, construction and applications of MVICFGs. Our experimental results show that Hydrogen correctly builds desired MVICFGs and is scalable to real-life programs such as libpng, tightvnc and putty. We experimentally demonstrate that MVICFGs can enable efficient patch verification. Using the results generated by Hydrogen, we have found a few documentation errors related to patches for a set of open-source programs.
ACM Digital Library