Call-Stack Coverage for GUI Test Suite Reduction
- 31 January 2008
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 34 (1), 99-115
- https://doi.org/10.1109/tse.2007.70756
Abstract
Graphical user interfaces (GUIs) are used as front ends to most of today's software applications. The event-driven nature of GUIs presents new challenges for testing. One important challenge is test suite reduction. Conventional reduction techniques/tools based on static analysis are not easily applicable due to the increased use of multilanguage GUI implementations, callbacks for event handlers, virtual function calls, reflection, and multithreading. Moreover, many existing techniques ignore code in libraries and fail to consider the context in which event handlers execute. Consequently, they yield GUI test suites with seriously impaired fault-detection abilities. This paper presents a reduction technique based on the call-stack coverage criterion. Call stacks may be collected for any executing program with very little overhead. Empirical studies in this paper compare reduction based on call-stack coverage to reduction based on line, method, and event coverage, including variations that control for the size and optional consideration of library methods. These studies show that call-stack-based reduction provides unique trade-offs between the reduction in test suite size and the loss of fault detection effectiveness, which may be valuable in practice. Additionally, an analysis of the relationship between coverage requirements and fault-revealing test cases is presented.Keywords
This publication has 25 references indexed in Scilit:
- An empirical study of regression testing techniques incorporating context and lifetime factors and improved cost-benefit modelsPublished by Association for Computing Machinery (ACM) ,2006
- Web Application Testing with Customized Test Requirements - An Experimental Comparison StudyPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2006
- Studying the fault-detection effectiveness of GUI test cases for rapidly evolving softwareIEEE Transactions on Software Engineering, 2005
- A scalable approach to user-session based testing of web applications through concept analysisPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Improving test suites via operational abstractionPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Test case prioritization: a family of empirical studiesIEEE Transactions on Software Engineering, 2002
- Coverage criteria for GUI testingPublished by Association for Computing Machinery (ACM) ,2001
- Further empirical studies of test effectivenessPublished by Association for Computing Machinery (ACM) ,1998
- A methodology for controlling the size of a test suiteACM Transactions on Software Engineering and Methodology, 1993
- Data flow coverage and the C languagePublished by Association for Computing Machinery (ACM) ,1991