Does This Code Change Affect Program Behavior? Identifying Nonbehavioral Changes with Bytecode
Aoi Maejima, Yoshiki Higo, Junnosuke Matsumoto, Shinji Kusumoto · 2020
Developers occasionally conduct some source code changes that do not affect program behavior. We call such changes nonbehavioral changes. In this research, we propose a technique for determining whether a given commit includes only nonbehavioral changes or not by checking the differences of bytecode on the commit. If the bytecode is not affected by the commit, the proposed technique determines that the commit includes only nonbehavioral changes. As a result of experiments on six Java open source projects, out of the commits in which Java source files were changed, the commits of 8.6~22.4% consisted of only nonbehavioral changes. We also found new 25 patterns of nonbehavioral changes compared to a previous study.