GUI automated testing is a well-established testing technique that aims to maximize the number of activities executed in the target application under test, thereby discovering critical bugs. The effectiveness of GUI testing heavily depends on the so-c...
GUI automated testing is a well-established testing technique that aims to maximize the number of activities executed in the target application under test, thereby discovering critical bugs. The effectiveness of GUI testing heavily depends on the so-called state-abstraction method. Although various state abstraction methodologies have been proposed, their performance has often been unstable. This is because existing approaches are either too fine-grained, leading to state explosion, or too coarse, failing to distinguish distinct states, ultimately degrading the effectiveness of GUI testing.
To address these limitations, this research proposes GBALANCE, a GUI state abstraction technique that considers the balance between state explosion and the granularity of abstraction. GBALANCE consists of the following two core components. First, the Dynamic GUI Abstractor identifies the widgets that contribute significantly to state explosion and dynamically applies appropriate abstraction strategies to each widget based on its characteristics. Second, the State Explosion Monitor detects state explosion events in real time during testing and analyzes the widget attributes responsible for such issues. By removing those attributes from state definitions, it effectively prevents redundant state generation.
To evaluate the effectiveness of the proposed technique, this thesis applied GBALANCE to two well-known GUI automated testing tools, Droidbot and Humanoid. Experiments were conducted on six commercial applications with high GUI complexity, under two different device form factors: bar-type and foldable-type environments. As a result, the tools integrated with GBALANCE successfully explored 42.17% more activities on average compared to their original versions.