Shrinkdroid: A Property-Based Testing Tool for Android Applications using Dynamic Element Detection and Test Case Minimisation - Simonsson, Clara; Sjöström, Fanny (My University, 2026)
This thesis presents Shrinkdroid, a property-based testing tool for automated GUI testing of Android applications. Existing Android GUI testing approaches typically depend on manually written test scripts tied to fixed UI element identifiers, making them fragile to interface changes and limited in exploration coverage. Shrinkdroid addresses these limitations by dynamically detecting UI elements at runtime, generating event sequences through weighted random and guided exploration strategies, and validating application behaviour against a set of seven generalised GUI properties. When a property violation is detected, an integrated shrinking pipeline automatically reduces the failing event sequence to a smaller counterexample that still reproduces the failure, improving debugging efficiency. Shrinkdroid is evaluated on two industrial Android Automotive applications developed by CPAC Systems AB, and on three open-source mobile applications from the Themis benchmark. Across 184 test runs, explored using both Random Weighted Exploration and Guided Ex ploration, 26 property violations were detected, of which 17 were validated as real bugs. Ten of these bugs were previously unreported. Shrinkdroid’s findings complemented those of the industrial partner’s existing testing practices with no overlap in detected bugs, demonstrating its value as a complementary testing tool. Test case minimisation through shrinking was completed in 14 out of 26 cases, achieving sequence reductions in 13 of these, while preserving the original property violation. Graph-based shortest-path reduction proved most efficient, completing in under three minutes for deterministic traces, while greedy reduction of longer sequences could require several hours. These results demonstrate that property-based testing with integrated shrinking can effectively detect and localise GUI bugs in Android applications, even in dynamically changing interfaces, and across different Android environments and device types.
Keywords: Automated Testing, Property-Based Testing, GUI Testing, Android Ap plications, Test Case Minimisation, Shrinking