Testing mobile applications via automated exploration of graphical user interface and textual user input generation
A Graphical User Interface (GUI) is acknowledged as a crucial component of an event-driven software (e.g., mobile apps). In the event-driven software, the GUI usually contains hundreds or even thousands of elements. As such, a large part of app functionality, and thus its code, is usually dedicat...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
Format: | Theses and Dissertations |
Language: | English |
Published: |
2019
|
Subjects: | |
Online Access: | https://hdl.handle.net/10356/89265 http://hdl.handle.net/10220/48041 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
Summary: | A Graphical User Interface (GUI) is acknowledged as a crucial component of an event-driven
software (e.g., mobile apps). In the event-driven software, the GUI usually contains
hundreds or even thousands of elements. As such, a large part of app functionality, and
thus its code, is usually dedicated to a user interface, so its testing becomes an essential
part of the software development life-cycle significantly improving quality of software.
During a testing phase, the GUI can be tested by executing each event individually
and observing its behaviour. However, it is not a trivial task since the behaviour of an
event handler may depend on a GUI internal state, state of other entities (objects, event
handlers) and an external environment. Furthermore, an outcome of the event handler
execution may vary depending on a particular sequence of preceding events. As a result,
each GUI event needs to be tested in a context of different states via generating and
executing various sequences of the GUI events.
Modern mobile apps have a highly interactive nature and complex GUI structure. As
such, an automated GUI testing of mobile apps is a daunting task for developers and
testers. Often the GUI testing is done manually where all possible combinations of the
GUI elements for a given app screen are manually tested for functional correctness and
aesthetic quality. The manual GUI-testing is no doubt an effective approach, however, it
is inefficient, i.e., time-consuming, error-prone, and usually not complete, especially for
a large software with complex GUIs. So, to facilitate manual testing, various automated
testing approaches have been introduced such as model-based testing, concolic testing,
search-based testing, evolutionary testing, and combinatorial testing. However, for
automated testing, there is a challenge to generate tests with high coverage, as well as to
maintain a reasonable execution time. These are hindered by the non-trivial structure,
and highly interactive nature of mobile apps GUIs so that an achieved code coverage is
generally low while execution time is high. |
---|