Guided Bug Crush: Assist Manual GUI Testing of Android Apps via Hint Moves
Authors
Title of the Paper
Guided Bug Crush: Assist Manual GUI Testing of Android Apps via Hint Moves
Paper Information
- Subject Area: Software Engineering, Quality Assurance, Manual Testing
- Keywords: GUI Testing, Android Apps, Software Engineering, NaviDroid, Bug Detection, Visual Guidance, State Transition Graph, Dynamic Programming
Research Background and Problem
-
Issues or Challenges:
- While manual testing remains a critical phase, it is time-consuming, labor-intensive, and prone to repetitive exploration, which can lead to missed functionalities.
- Automated GUI testing can reduce human effort but has limitations in covering deep UI pages, complex operations, or usability and accessibility issues.
- The efficiency and stability of manual testing heavily depend on the tester's skills and experience, with novice testers more likely to miss functionalities or increase redundant exploration.
-
Significance: Android applications are indispensable in today's society, supporting scenarios such as shopping, reading, and social interaction. A large number of users rely on these apps, making their quality assurance crucial. As the last line of defense in quality assurance, manual testing determines the reliability and success of applications.
-
Research Motivation and Related Work:
- Improve the coverage of manual testing to uncover more bugs while reducing redundant operations.
- Leverage the advantages of automated testing and integrate them with manual testing to provide efficient testing path guidance.
- Existing research mainly focuses on optimizing test prioritization or utilizing crowdsourcing platforms, but lacks methods for real-time guidance for testers.
Solution
-
Main Approach: Propose a tool named NaviDroid, which combines automated knowledge to provide navigation for testers, helping them conduct manual GUI testing more effectively.
-
Innovations:
- Designed an enhanced State Transition Graph (STG) to capture the states of testing steps and the operations triggering transitions.
- Used a dynamic programming algorithm to plan exploration paths, improving coverage efficiency.
- Provided visual guidance through hint moves (e.g., highlighted borders) to assist manual testing, preventing missed functionalities and redundant operations.
-
Implementation Steps and Key Techniques:
- Constructing the State Transition Graph (STG-action):
- Perform static analysis to extract an Activity Transition Graph (ATG) from Activity definitions and associate it with triggering operations.
- Use dynamic analysis to supplement information that cannot be obtained statically through random operations.
- Design a context-aware state merging method to reduce the impact of approximately duplicate states on the graph.
- Dynamic Programming Path Planning:
- Apply a dynamic programming algorithm to calculate the shortest paths between nodes and state visits, generating a full coverage path.
- Real-Time Visual Guidance:
- Track the current page state during app runtime, combine it with the predefined STG-action, and use a floating window to highlight current operation suggestions, guiding testers.
- Constructing the State Transition Graph (STG-action):
Research Outcomes
-
Specific Results:
- Developed the NaviDroid tool, the first Android testing assistant specifically targeting manual testing.
- Automated experiments demonstrated that the tool achieved 74% activity coverage and 81% state coverage across 85 mobile applications, outperforming five commonly used baselines.
- In terms of test path planning efficiency, NaviDroid reduced exploration steps by 20%-42% compared to baseline tools.
- User studies showed that NaviDroid significantly increased state and activity coverage (by 62% and 61%, respectively) and substantially boosted the number of bugs discovered (by 146%).
-
Advantages:
- Addressed the issue of repetitive operations in manual testing.
- Significantly improved activity and state coverage, helping uncover more potential bugs.
- User testing confirmed its ability to save testing time (reduced by up to 33%).
-
Limitations and Future Directions:
- Incomplete Coverage of All Activities and States: Dynamic layouts and ambiguous coding rules affected the completeness of the state transition graph.
- Limitations in Interaction Actions and Complex Animations: Currently, only click operations are considered; future work could expand to more diverse triggering actions.
- Expansion of Use Cases:
- Enhance user guidance for new app features.
- Extend testing assistance to other platforms (e.g., iOS or Web).
The innovation and performance evaluation of the tool demonstrate its significant advantages in optimizing manual testing, offering a new perspective for improving application quality while providing several directions for further expansion and optimization.
Research Questions / Practical Problems
Question signals indexed for this paper.
Research Questions
3- How can automated knowledge provide real-time navigation guidance for testers performing manual GUI testing?Category: Paper Reading and Knowledge ExtractionSimilar questionsarrow_forward
- Can designing an enhanced state transition graph (STG) and path planning algorithm improve coverage efficiency of manual testing?Category: Paper Reading and Knowledge ExtractionSimilar questionsarrow_forward
- Can visual prompts (e.g., highlighted action borders) effectively reduce repetitive actions and improve outcomes in manual testing?Category: Paper Reading and Knowledge ExtractionSimilar questionsarrow_forward
Practical Problems
1- Novices often miss features or repeat actions when manually testing Android apps.Category: Paper Reading and Knowledge ExtractionSimilar questionsarrow_forward
- 80%
Varv: Reprogrammable Interactive Software as a Declarative Data Structure
CHI '22· Prototyping & User Testing +1
- 80%
Learning to Denoise Raw Mobile UI Layouts for Improving Datasets at Scale
CHI '22· Prototyping & User Testing +1
- 80%
How To Draw Commands? An Elicitation Study for Sketching on Spreadsheets
CHI '25· Prototyping & User Testing +1
- 80%
Learning User Interface Semantics from Heterogeneous Networks with Multimodal and Positional Attributes
IUI '22· Prototyping & User Testing +1
- 60%
Steering Performance with Error-accepting Delays
CHI '19· Prototyping & User Testing +1
- 60%
KeyMap: Improving Keyboard Shortcut Vocabulary Using Norman's Mapping
CHI '20· Prototyping & User Testing
- 60%
X-Droid: A Quick and Easy Android Prototyping Framework with a Single App Illusion
UIST '19· Prototyping & User Testing
Based on Jaccard similarity of research subtopics & professions (≥60%)