A generic library for GUI reasoning and testing

Graphical user interfaces (GUIs) make software easy to use by providing the user with visual controls. Therefore, correctness of GUI's code is essential to the correct execution of the overall software. Models can help in the evaluation of interactive applications by allowing designers to concentrate on its more important aspects. This paper presents a generic model for language-independent reverse engineering of graphical user interface based applications, and we explore the integration of model-based testing techniques in our approach, thus allowing us to perform fault detection. A prototype tool has been constructed, which is already capable of deriving and testing a user interface behavioral model of applications written in Java/Swing.

[1]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[2]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[3]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2000, ICFP.

[4]  Daniel P. Siewiorek,et al.  A method to automate user interface testing using variable finite state machines , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[5]  Guy Durrieu,et al.  Deriving a Formal Model of an Interactive System from its UIL Description in order to Verify and Test its Behaviour , 1996, DSV-IS.

[6]  Mary Lou Soffa,et al.  A comprehensive framework for testing graphical user interfaces , 2001 .

[7]  Thomas W. Reps,et al.  The use of program dependence graphs in software engineering , 1992, International Conference on Software Engineering.

[8]  Melody Moore Jackson Rule-based detection for reverse engineering user interfaces , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[9]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[10]  P. Alencar,et al.  Combining Formal Techniques and Prototyping in User Interface Construction and Verification , 1995, DSV-IS.

[11]  João Saraiva,et al.  Combining Formal Methods and Functional Strategies Regarding the Reverse Engineering of Interactive Applications , 2006, DSV-IS.

[12]  Ana C. R. Paiva,et al.  Reverse Engineered Formal Models for GUI Testing , 2007, FMICS.

[13]  Fabio Paternò Model-Based Design and Evaluation of Interactive Applications , 2000 .

[14]  Jessica Chen,et al.  A GUI environment to manipulate FSMs tor testing GUI-based applications in Java , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[15]  Jean-Francois Girard,et al.  Reengineering User Interfaces , 1995, IEEE Softw..

[16]  Silva,et al.  Models for the reverse engineering of Java/Swing applications , 2006 .

[17]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[18]  Jonathan P. Bowen,et al.  Programming Research Group USER INTERFACE LANGUAGES : A SURVEY OF EXISTING METHODS , 1989 .

[19]  Philippe Schnoebelen,et al.  Systems and Software Verification , 2001, Springer Berlin Heidelberg.

[20]  Tarja Systä,et al.  Dynamic Reverse Engineering of Java Software , 1999, ECOOP Workshops.

[21]  Alistair Sutcliffe,et al.  Human-Computer Interface Design , 1988, Macmillan Computer Science Series.

[22]  John Hughes,et al.  Report on the Programming Language Haskell 98 , 1999 .