Pattern Based GUI Testing for Mobile Applications (original) (raw)

A pattern-based approach for GUI modeling and testing

2013

User Interface (UI) patterns are used extensively in the design of today's software. UI patterns embody commonly recurring solutions that solve common GUI design problems, such as "login," "file-open," and "search." Yet, testing of GUIs for functional correctness has largely ignored UI patterns. This paper formalizes the notion of a Pattern-Based Graphical User Interface (GUI) Testing method (PBGT) for systematizing and automating the GUI testing process. The space of all possible interactions with a GUI is typically very large. PBGT presents a new methodology to sample the input space using "UI Test Patterns," that embody commonly recurring solutions to test GUIs. Our empirical studies show that the PBGT methodology is effective in revealing faults in fielded GUIs.

A repository of automatic GUI test patterns in Android applications: Specification and Analysis using Alloy modeling language

arXiv (Cornell University), 2022

The software industry aims to provide customers with quality software. Testing software is a critical and sensitive stage in ensuring software quality. Due to the increasing popularity of mobile devices, the use of Android applications has increased. Almost all are equipped with Graphical User Interface (GUI) to interact with users or systems. GUI is the most common tool to communicate with modern software. Therefore, the perfect GUI is a GUI that ensures the safety, strength, and usability of the whole software system. The GUI testing is a vital stage in ensuring the product quality because the GUI is the user's first impression and the final view of the final product. This paper has proposed a new technique to promote the model-based test efficiency using Alloy modeling language. The findings showed that this approach needs less configuration and modeling time than previous methods. Moreover, using GUI patterns may decrease errors and violations.

Automated Pattern-Based Testing of Mobile Applications

2014 9th International Conference on the Quality of Information and Communications Technology, 2014

Testing is essential to improve the quality of a product and is, thus, a crucial part of any development process. However, the amount of time and resources companies dedicate to it is usually reduced, which justifies the high focus of the community on improving testing automation. Considering the importance smartphones have acquired in our daily lives, it is extremely important to define techniques to test mobile applications in order to ensure their quality. This document presents a testing approach and tool (iMPAcT) to improve the automation of mobile testing based on the presence of recurring behaviour, UI Patterns. It combines reverse engineering, pattern matching and testing. The reverse engineering process is responsible for crawling the application, i.e. to analyse the state of the application and to interact with it by firing events. The pattern matching tries to identify the presence of UI patterns based on a catalogue of patterns. When a UI Pattern from the catalogue is detected, a test strategy is applied. These test strategies are called UI Test Patterns. These three phases work in an iterative way: the patterns and identified and tested between firing of events, i.e. the process alternates between exploring the application and testing the UI Patterns. The process is dynamic and fully automatic not requiring any previous knowledge about the application under test. A catalogue of patterns is presented in this document. It has UI Patterns to identify on mobile applications and UI Test Patterns defining generic test strategies to test them. These patterns are generic and, thus, can be applied to any application. In order to validate the overall approach we have conducted three experiments. The goal is to analyse the capacity of iMPAcT of finding failures and assess if the results are reliable. In addition, we also measured the execution time and events coverage.

Creating a Test Model Library for GUI Testing of Smartphone Applications (Short Paper)

2008 The Eighth International Conference on Quality Software, 2008

Smartphones are becoming increasingly complex, and the interactions between the different applications make testing even more difficult given the time-to-market pressures and the limits of current test automation systems. Towards these ends, we have built an open source test model library for Symbian S60 GUI testing. This paper describes and analyzes our experiences in building the library.

A Gui Testing Strategy and Tool for Android Apps

International Journal of Computing, 2020

The increasing popularity of Android and the GUI-driven nature of its apps have motivated the need for applicable automated GUI testing techniques. This paper presents a proposed strategy and a supporting tool for GUI testing of Android apps. The strategy employs a model-based approach to capture the event-driven nature of Android apps. It includes two phases: Modeling Phase and Test Evaluation Phase. In the modeling phase, an event sequence diagram (ESD) is created for each activity in the app under test (AUT), which depicts its events and possible transitions between them, and used to generate event sequences (test cases). In the test evaluation phase, certain event-based coverage criteria are employed to measure the adequacy of the generated test cases. The proposed tool analyses the AUT, creates an ESD for each activity, and generates event sequences. It handles the event sequences explosion problem and ensures the event sequences feasibility. For each event sequence, the tool g...

GUI Testing Techniques Evaluation by Designed Experiments

2010 Third International Conference on Software Testing, Verification and Validation, 2010

Industry uses different testing techniques for test case generation and execution. But in general no systematic evaluation is performed to identify which technique is better (for instance, to find bugs faster). This paper presents a statistical assessment of two GUI testing techniques, BxT and DH, which are used on Motorola phone applications. These techniques test applications by pressing certain phone keys, from certain screens and during some amount of time. We consider three exploration parameters for each technique in our design and analysis of experiments: Driven determines whether a test case always starts from a single initial state (screen) or set of initial states; KeyProb associates an occurrence probability for each phone key; and SizeTC refers to the number of steps a test can have (a fourth parameter is the Technique itself). As conclusions, we show that BxT is better than DH and the SizeTC and the Technique parameters and the combination Driven*SizeTC have significant effects on the time to find a bug.

AN OBJECT ORIENTED FRAMEWORK FOR USER INTERFACE TEST AUTOMATION

Software testing is an important stage in the software projects lifecycles. It is one of the most expensive stages. Effective testing automation is expected to reduce the cost of testing. GUI is increasingly taking a larger portion of the overall program’s size and its testing is taking a major rule in the whole project’s validation. GUI test automation is a major challenge for test automation. Most of the current GUI test automation tools are partially automated and require the involvement of the users or testers in several stages. This paper is about a proposed framework for user interface test automation that uses object oriented features to build the tested model. The GUI model is parsed from the application under test at run time. The GUI model is built as an XML tree that represents the GUI hierarchical structure. Test cases are then generated from the XML tree using different proposed algorithms. Some techniques for test case prioritization and critical path testing are suggested to minimize the number of required test cases to generate, that ensure an acceptable level of test adequacy or branch coverage. The framework is concluded with test execution and verification part that execute the generated test cases and compare them with the original test suite. The advantages of the object oriented approach over the widely used capture/replay back one, is in the fact that the model is generated at run time which makes it represents the current state of the GUI model. In record/play back cases, we have to retest the application in case of any change in the functionalities or the GUI of the program. Once utilized, this object oriented approach is expected to be less expensive as it does not require users to manually test the application.

On model-based testing advanced GUIs

2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), 2015

Graphical User Interface (GUI) design is currently shifting from designing GUIs composed of standard widgets to designing GUIs relying on more natural interactions and ad hoc widgets. This shift is meant to support the advent of GUIs providing users with more adapted and natural interactions, and the support of new input devices such as multi-touch screens. Standard widgets (e.g. buttons) are more and more replaced by ad hoc ones (e.g. the drawing area of graphical editors), and interactions are shifting from mono-event (e.g. button pressures) to multi-event interactions (e.g. multi-touch and gesture-based interactions). As a consequence, the current GUI model-based testing approaches, which target event-based systems, show their limits when applied to test such new advanced GUIs. The work introduced in this paper establishes three contributions: a precise analysis of the reasons of these current limits; a proposition to tackle the identified limits by leveraging the Malai GUI specification language and by proposing the concept of interaction-action-flow graph; feedback from two use cases, an industrial project and an open-source application, where the proposed approach has been applied.

Integration of Specification-based and CR-based Approaches for GUI Testing

Journal of Information Science and Engineering, 2008

CR (capture and replay) has been a widely accepted methodology for GUI testing. However, a deficiency of a CR-based approach is that test scripts can not be produced before an application under test (AUT) is correctly implemented, which excludes the possibility of doing test-driven development (TDD). An alternative is the specificationbased approach, which defines GUI behaviors by using a GUI specification language. A specification-based approach is suitable for doing TDD. However, after the AUT is partially or fully implemented, the specification-based approach becomes less convenient than the CR-based approach, since capturing can be very useful in maintaining test scripts. In this paper, we propose the integration of the specification-based and CRbased approaches so as to incorporate both of their advantages. We define an event model which servers as the core of both the specification language and the capture/ replay mechanism. Based on this event model, we implement a GUI testing tool, called GTT, for Java applications. We show how to apply GTT in a TDD style for GUI testing and quantitatively report the benefits of the integration.

Automated GUI Testing on the Android Platform

on Testing Software and Systems: Short Papers, 2010

Testing has steadily become more and more important within the development of various software and systems, motivating an increasing amount of research, trying to solve both new challenges imposed by the advancement in other areas of computer science and long-standing problems. Testing has evolved during the last decades from an ad-hoc and underexposed area of systems development to an important and active research area. The 22nd International Conference on Testing Software and Systems (ICTSS) is the merge of two traditional and important events which have served the testing community as an important venue for discussing advancements in the area. Those events, namely, TestCom the IFIP TC6/WG6.1 International Conference on Testing of Communicating Systems, and Fates International Workshop on Formal Approaches to Testing of Software, together form a large event on testing, validation, and specification of software and systems. They have a long history. TestCom Testing of Communicating Systems is an IFIP-sponsored series of international conferences, previously also called International Workshop on Protocol Test Systems (IWPTS) or International Workshop on Testing of Communicating Systems (IWTCS). It is devoted to testing of communicating systems, including testing of communication protocols, services, distributed platforms, and middleware. The previous events