Code-Change Impact Analysis Using Counterfactuals

In this paper we present a framework for what-if analysis of programs based on Lewis' theory of counterfactuals. The framework can be used to statically perform change impact analysis for source code. It enables us to verify assertions about a changed version of the program without actually incorporating the changes. We present a logical calculus that precisely characterizes structural modifications to source code and their impact on the behavior of the program.

[1]  Frank Tip,et al.  Chianti: a tool for change impact analysis of java programs , 2004, OOPSLA.

[2]  Alex Groce,et al.  SPECIAL S ECTION O N T OOLS A ND A LGORITHMS F OR THE C ONSTRUCTION A ND A NALYSIS O F S YSTEMS , 2005 .

[3]  Sigrid Eldh Software Testing Techniques , 2007 .

[4]  Richard Jozsa,et al.  Counterfactual computation , 1999, Proceedings of the Royal Society of London. Series A: Mathematical, Physical and Engineering Sciences.

[5]  Joseph Y. Halpern,et al.  What causes a system to satisfy a specification? , 2003, TOCL.

[6]  Kathi Fisler,et al.  Verification and change-impact analysis of access-control policies , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[7]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[8]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.

[9]  J. Pearl Causality: Models, Reasoning and Inference , 2000 .

[10]  Matthew B. Dwyer,et al.  Differential symbolic execution , 2008, SIGSOFT '08/FSE-16.

[11]  Brian Skyrms,et al.  Counterfactual Definiteness and Local Causation , 1982, Philosophy of Science.

[12]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[13]  Bo Guo,et al.  Formal Change Impact Analyses of Extended Finite State Machines Using a Theorem Prover , 2008, 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods.

[14]  Bo Guo,et al.  Using Change Impact Analysis to Select Tests for Extended Finite State Machines , 2009, 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods.