Abstract
GUI systems are becoming increasingly popular thanks to their ease of use when compared against traditional systems. However, GUI systems are often challenging to test due to their complexity and special features. Traditional testing methodologies are not designed to deal with the complexity of GUI systems; using these methodologies can result in increased time and expense. In our proposed strategy, a GUI system will be divided into two abstract tiers—the component tier and the system tier. On the component tier, a flow graph will be created for each GUI component. Each flow graph represents a set of relationships between the pre-conditions, event sequences and post-conditions for the corresponding component. On the system tier, the components are integrated to build up a viewpoint of the entire system. Tests on the system tier will interrogate the interactions between the components. This method for GUI testing is simple and practical; we will show the effectiveness of this approach by performing two empirical experiments and describing the results found.









Similar content being viewed by others
Notes
We used the FileChooser class for our Save dialog. However, the “Detail” button and “List” button do not work in JDK 1.2 and the Rational Robot tool that we used in the experiment only supports JDK 1.2. Thus, we excluded these two buttons in our experiment.
References
Alexander RT, Bieman JM (2002) Mutation of java objects. In: Proceedings of the IEEE international symposium software reliability engineering (ISSRE). pp 341–351
Andrews JH, Briand C, Labiche Y (2005) Is mutation an appropriate tool for testing experiements? In: ICSE ’05: Proceedings of the 27th international conference on software engineering. ACM, pp 402–411
Beizer B (1995) Black-box testing: techniques for functional testing of software and systems. Wiley, New York
Belli F (2001) Finite state testing and analysis of graphical user interfaces, Proc. ISSRE 2001, IEEE Comp., pp 34–43
Briand LC, Labiche Y, Wang Y (2004) Using simulation to empirically investigate test coverage criteria based on statecharts. Proc. 26th international conference on software engineering, Edinburgh, Scotland, United Kingdom, pp 86–95
Delemaro ME, Maldonado JC, Mathur AP (2001) Interface mutation: an approach for integration testing. IEEE Trans Softw Eng 27(3):228–247
El-Farand IK, Whittaker JA (2002) Model-based software testing. In: Encyclopedia of software engineering, 2nd edn. Wiley, New York
Frankl PG, Weiss SN, Hu C (1996) All-uses versus mutation testing: an experimental comparison of effectiveness. J Syst Softw 38(3):235–253
Gerrard P (1997) Testing GUI applications. In: EutoSTAR’97, pp 24–28
GUI Checklist. http://www.members.tripod.com/~bazman/checklist.html; Accessed November 2004
Ma Y, Kwon Y, Offutt J (2002) Inter-class mutation operators for java. In: 13th international symposium on software reliability engineering, Annapolis, MD. pp 352–363
Memon AM (2002) GUI testing: pitfalls and process. IEEE Computer 35(8):87–88
Memon A, Pollack ME, Soffa ML (2000a) Automated test oracles for GUIs. In: The proceedings of the eighth international symposium on the foundations of software engineering, San Diego, CA. pp 30–39
Memon A, Pollack M, Soffa ML (2000b) Plan generation for GUI testing. In: The 5th international conference on artificial intelligence planning and scheduling, Breckenridge, CO, pp 226–235
Memon A, Soffa ML, Pollack ME (2001) Coverage criteria for GUI testing. In: 8th Europe conference and 9th ACM SIGSOFT foundation of software engineering (FSE-9). pp 256–267
Musa J (1998) Software reliability engineering. McGraw-Hill, New York
Myers GJ (1979) The art of software testing. Wiley, New York
Myers BA, Olsen DR (1993) User interface tools. In: Proceedings of ACM INTERCHI’93 conference on human factors in computing systems—adjunct proceedings, tutorials, p 239
Offutt AJ (1995) A practical system for mutation testing: help for the common programmer. In: 12th international conference on testing computer software, Washington, DC, pp 99–109
Rational Robot. http://www-306.ibm.com/software/awdtools/tester/robot/; Accessed November 2004
White LJ (1996) Regression testing of GUI event interactions. In: Proceedings of the international conference on software maintenance, Washington, DC, pp 350–358
White L, Almezen H (2000) Generating test cases for GUI responsibilities using complete interaction sequences. In: International symposium on software reliability engineering, pp 110–121
White LJ, Almezen H, Alzeidi N (2001) User-based testing of GUI sequences and their interactions. In: 12th international symposium on software reliability engineering (ISSRE’01) Hong Kong, China. pp 54–63
WinCVS. http://www.wincvs.org; Accessed November 2004
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Li, P., Huynh, T., Reformat, M. et al. A practical approach to testing GUI systems. Empir Software Eng 12, 331–357 (2007). https://doi.org/10.1007/s10664-006-9031-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-006-9031-3