Lost in Space and Time? Quantifying the Size of Unit Test Execution Histories

Debugging is the search in a two-dimensional environment representing a program execution: space and time. The space represents the various memory locations of the program and the time represents the various operations performed throughout the execution. Interactive debugging tools usually only visualize one-dimensional snapshots of the search environment, because a two-dimensional view can be quite large. In this paper, we quantify how large a two-dimensional view of a program run would be. Our study is driven by two classes of modern debugging tools: full history tools and sliced history tools. For each class of tools, we come up with a systematic way to study the size of space and time dimensions for a set of realistic Java unit test executions. Our observational study helps tool developers to understand the problems with visualizing both space and time. Our goal is not to present a particular implementation of space-time views, but to provide an understanding of the size of the space-time a developer is confronted with when debugging.