UI Testing Cycle Avoidance via State Machine Path Penalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current user interface testing methods are inefficient, often failing to thoroughly test important aspects and can be wasteful due to repetitive cycles, especially in complex interfaces, and are not easily adaptable to changes or additions in the interface.

Innovation Solution

The approach represents a user interface as a finite state machine, systematically testing critical states and transitions while selectively testing less important ones, penalizing paths that lead to cycles to maximize unique path traversal, using data structures to bias testing away from cycles and favor more thorough exploration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional user interface testing methods are used, then testing can be performed, but testing efficiency is low and redundant cycles occur

Engineering Contradiction:
Improvetesting efficiencyVSAvoidtime wasted on redundant testing cycles
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-processing the user interface to generate a state machine representation before testing begins. This state machine model captures all possible states and transitions, allowing the testing system to plan and optimize test paths in advance, avoiding redundant cycles during actual testing execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms by tracking tested states and transitions during the testing process. The system uses this feedback information to dynamically adjust test paths, avoiding already-tested portions and focusing on unexplored areas, thereby eliminating redundant testing cycles and improving overall testing efficiency.

Inventive Principle:
Principle #23Feedback

2Reliability

If comprehensive user interface testing is performed, then testing coverage is improved, but testing complexity increases

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the complex user interface into discrete states and transitions, representing them as a state machine. This segmentation breaks down the overwhelming complexity of comprehensive UI testing into manageable, identifiable components that can be systematically explored and tested.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a state machine representation as an intermediary between the actual user interface and the testing process. This intermediary model simplifies the complexity by providing an abstract, structured view of UI behavior, making comprehensive testing more tractable while maintaining accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If traditional testing methods are used, then testing can be performed, but adaptability to interface changes is poor

Engineering Contradiction:
Improveadaptability to interface changesVSAvoidease of implementing testing
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent applies dynamics by creating a state machine representation that can be dynamically regenerated when the user interface changes. Instead of static, hard-coded test scripts, the system adapts to interface modifications by updating the state machine model, which automatically reflects new states and transitions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent utilizes parameter changes by allowing the state machine representation to be updated with new parameters when the interface evolves. This enables the testing system to adapt to changes in UI structure, behavior, or logic by modifying the state machine's states, transitions, and associated parameters without requiring complete rewriting of test cases.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10783061B2Reducing likelihood of cycles in user interface testing
Publication Date: 2020.09.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10783061B2 patent drawing
  • US10783061B2 patent drawing
  • US10783061B2 patent drawing

AI summary

A method for testing a user interface includes determining states and state transitions associated with the user interface. A first plurality of states and a first plurality of state transitions of the user interface may be explored. A subset of a second plurality of states and a second plurality of state transitions of the user interface may also be explored. Paths that lead to cycles within the subset of the second plurality of states and the second plurality of state transitions may be penalized.