Title :
Identifying program, test, and environmental changes that affect behaviour
Author :
Holmes, Reid ; Notkin, David
Author_Institution :
Sch. of Comput. Sci., Univ. of Waterloo, Waterloo, ON, Canada
Abstract :
Developers evolve a software system by changing the program source code, by modifying its context by updating libraries or changing its configuration, and by improving its test suite. Any of these changes can cause differences in program behaviour. In general, program paths may appear or disappear between executions of two subsequent versions of a system. Some of these behavioural differences are expected by a developer; for example, executing new program paths is often precisely what is intended when adding a new test. Other behavioural differences may or may not be expected or benign. For example, changing an XML configuration file may cause a previously-executed path to disappear, which may or may not be expected and could be problematic. Furthermore, the degree to which a behavioural change might be problematic may only become apparent over time as the new behaviour interacts with other changes. We present an approach to identify specific program call dependencies where the programmer´s changes to the program source code, its tests, or its environment are not apparent in the system´s behaviour, or vice versa. Using a static and a dynamic call graph from each of two program versions, we partition dependencies based on their presence in each of the four graphs. Particular partitions contain dependencies that help a programmer develop insights about often subtle behavioural changes.
Keywords :
directed graphs; program diagnostics; configuration changing; context modification; dynamic call graph; environmental change; library updating; program behaviour; program call dependencies; program identification; program source code; static call graph; test identification; Approximation methods; Data visualization; Educational institutions; Focusing; Libraries; Prototypes; Runtime; comparative analyses; dynamic impact analysis; software behaviour; static analysis;
Conference_Titel :
Software Engineering (ICSE), 2011 33rd International Conference on
Conference_Location :
Honolulu, HI
Print_ISBN :
978-1-4503-0445-0
Electronic_ISBN :
0270-5257
DOI :
10.1145/1985793.1985844