Skip to main content
Log in

A practical approach to testing GUI systems

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

Notes

  1. 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Myers GJ (1979) The art of software testing. Wiley, New York

    Google Scholar 

  • 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ping Li.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-006-9031-3

Keywords

Navigation