Debugging lenses: a new class of transparent tools for user interface debugging

The visual and event driven nature of modem user interfaces, while a boon to users, can also make them more difficult to debug than conventional programs. This is because only the very surface representation of interactive objects their final visual appearance is visible to the programmer on the screen. The remaining “programming details” of the object remain hidden. If the appearance or behavior of an object is incorrect, often few clues are visible to indicate the cause. One must usually turn to text oriented debugging techniques (debuggers or simply print statements) which are separate from the interface, and often cumbersome to use with event-driven control flow. This paper describes a new class of techniques designed to aid in the debugging of user interfaces by making more of the invisible, visible. This class of techniques: debugging lenses, makes use of transparent lens interaction techniques to show debugging information. It is designed to work in situ in the context of a running interface, without stopping or interfering with that interface.This paper describes and motivates the class of techniques, gives a number of specific examples of debugging lenses, and ,describes their implementation in’ the subArctic user interface toolkit. ”