Noname manuscript No. (will be inserted by the editor) Do Programmers do Change Impact Analysis? Siyuan Jiang · Collin McMillan · Raul Santelices Received: date / Accepted: date Abstract \Change Impact Analysis" is the process of determining the conse- quences of a modification to software. In theory, change impact analysis should be done during software maintenance, to make sure changes do not introduce new bugs. Many approaches and techniques are proposed to help programmers do change impact analysis automatically. However, it is still an open question whether and how programmers do change impact analysis. In this paper, we con- ducted two studies, one in-depth study and one breadth study. For the in-depth study, we recorded videos of nine professional programmers repairing two bugs for two hours. For the breadth study, we surveyed 35 professional programmers using an online system. We found that the programmers in our studies did static change impact analysis before they made changes by using IDE navigational functional- ities, and they did dynamic change impact analysis after they made changes by running the programs. We also found that they did not use any change impact analysis tools. Keywords Change impact analysis · Program debugging · Empirical software engineering · Software maintenance · Programmer navigation This work is supported by the ONR N000141410037, the NSF CCF-1452959 and CNS-1510329 grants. Any opinions, findings, and conclusions expressed herein are the authors and do not necessarily reflect those of the sponsors. S. Jiang Department of Computer Science and Engineering University of Notre Dame, Notre Dame, IN, USA 46545 E-mail:
[email protected] C.