Browsing by Subject "Android application model"
Now showing 1 - 1 of 1
- Results Per Page
- Sort Options
Item Techniques and tools for testing graphical user interfaces(2022-12-21) Ganov, Svetoslav Radoslavov; Khurshid, Sarfraz; Perry, Dewayne E; Julien, Christine; Garg, Vijay; Zhang, LingmingGraphical User Interfaces (GUIs) are an abstraction to facilitate human-computer interaction by presenting virtual objects, widgets, via which a program visualizes its internal state and receives user inputs. GUIs are the dominant human-computer interaction paradigm. Hence, validating their correctness is important. One way to test a GUI is to simulate user actions in the form of data inputs (e.g typing) and event sequences (e.g scrolling), leading to a two-dimensional combinatorial explosion. We developed Barad, a GUI testing framework that uniformly addresses event-flow and data-flow in GUI applications. We consider only events with listeners, pruning regions of the event input space and we introduce symbolic widgets, allowing us to obtain data inputs, pruning regions of the data input space. Barad generates fewer tests and improves coverage compared to traditional GUI testing techniques. Android, an operating system powering smartphones, TVs, cars, is an active area for GUI testing research. We developed a generic Android GUI testing framework with extendability in mind from the ground up. We also implemented SMART, a test tool on top of this framework, that introduces a novel mechanism for taking shortcuts in the application state-space, leverages the Android application model for efficient application traversal, and employs efficient application resetting. These techniques achieve significant speed-up. Also, SMART reaches higher branch coverage faster compared to Android Monkey. In addition to generating test inputs, an oracle is required to validate correct GUI behavior. We envision using declarative specifications, written in the Alloy modeling language, for generating GUI oracles. To enable efficient analysis of Alloy models over datatypes common to GUI applications (integers, Strings), we present an approach of using domain specific constraint solvers to significantly speed-up the Alloy Analyzer's backend.