A Technique for Regression Testing a Graphical User Interface (GUI)
Original Publication Date: 2002-May-10
Included in the Prior Art Database: 2003-Jun-21
Abstract We have found that tools for regression testing a graphical user interface (GUI) are lacking. The tools for this purpose that are available in the marketplace generally use a pixel comparison algorithm. This approach has only been moderately successful because the tools must use some form of pixel averaging to determine if a given test shows a regression. They do this because there exists a large amount of data that comprises the complete pixel set, and to compare all pixels for an exact match would make for unacceptable performance. However, the averaging technique gives rise to false hits or missed hits for a given regression. We present in this paper a technique for performing GUI regression testing that does not involve a pixel comparison algorithm. The thrust of the paper is that if one assumes that the libraries linked against will perform a perfect job of ‘painting the glass,’ then it is the sequence of calls (and the parameters for these calls) to these libraries that require testing. Hence, we define a language of output for each call to the libraries and create files that contain a unique sequence of these calls with unique data. The output files in turn are regressionable if we keep the input to the GUI consistent between runs. Thus, we can inexpensively and exactly run GUI regression tests. Problem We want to use automated regression testing for our GUI (also called the front end) for the ICAT suite of debuggers. Given the difficulties with the current tools for GUI regression testing (described in the abstract above), we needed to invent a technique that is more exact and less expensive than algorithms using pixel comparisons.