Guided Bug Crush: Assist Manual GUI Testing of Android Apps via Hint Moves

Open-Source Collaboration & Code ReviewPrototyping & User TestingComputational Methods in HCISoftware Engineers & DevelopersUI/UX Designers

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:

    1. While manual testing remains a critical phase, it is time-consuming, labor-intensive, and prone to repetitive exploration, which can lead to missed functionalities.
    2. Automated GUI testing can reduce human effort but has limitations in covering deep UI pages, complex operations, or usability and accessibility issues.
    3. 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:

    1. Improve the coverage of manual testing to uncover more bugs while reducing redundant operations.
    2. Leverage the advantages of automated testing and integrate them with manual testing to provide efficient testing path guidance.
    3. 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:

    1. Designed an enhanced State Transition Graph (STG) to capture the states of testing steps and the operations triggering transitions.
    2. Used a dynamic programming algorithm to plan exploration paths, improving coverage efficiency.
    3. 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:

    1. 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.
    2. Dynamic Programming Path Planning:
      • Apply a dynamic programming algorithm to calculate the shortest paths between nodes and state visits, generating a full coverage path.
    3. 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.

Research Outcomes

  • Specific Results:

    1. Developed the NaviDroid tool, the first Android testing assistant specifically targeting manual testing.
    2. Automated experiments demonstrated that the tool achieved 74% activity coverage and 81% state coverage across 85 mobile applications, outperforming five commonly used baselines.
    3. In terms of test path planning efficiency, NaviDroid reduced exploration steps by 20%-42% compared to baseline tools.
    4. 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:

    1. Addressed the issue of repetitive operations in manual testing.
    2. Significantly improved activity and state coverage, helping uncover more potential bugs.
    3. User testing confirmed its ability to save testing time (reduced by up to 33%).
  • Limitations and Future Directions:

    1. Incomplete Coverage of All Activities and States: Dynamic layouts and ambiguous coding rules affected the completeness of the state transition graph.
    2. Limitations in Interaction Actions and Complex Animations: Currently, only click operations are considered; future work could expand to more diverse triggering actions.
    3. 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.

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/papers/chi/68857/2022

AdRecommended

Learn AI Coding at CodeNow

open_in_newOpen DOI Link
DOI: https://dl.acm.org/doi/abs/10.1145/3491102.3501903
At a Glance

Paper Snapshot

fact_check
dataset
Source
CHI
calendar_month
Year
2022
emoji_events
Award
No award tagged
group
Authors
6 authors
sell
Subtopics
Open-Source Collaboration & Code Review, Prototyping & User Testing, Computational Methods in HCI
work
Professions
Software Engineers & Developers, UI/UX Designers
article
Content Status
Full text indexed
hub
Related Papers
7 related papers