Finite State Machine Test Generation from User Actions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current program testing methods, such as beta testing and script automation, often fail to provide comprehensive coverage of a software's features due to limited user interaction and require significant manual effort, making it labor-intensive and incomplete.

Innovation Solution

Transforming user interactions into a testing automation finite state machine by recording and grouping user actions, capturing program status information, and constructing a finite state machine to automatically generate test sequences that explore the application beyond the recorded interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If beta testing is used to test a program, then user feedback can be obtained, but test coverage remains incomplete because beta users do not systematically exercise all program aspects

Engineering Contradiction:
Improvetest coverageVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs self-testing by automatically generating and executing test sequences based on recorded user interactions. The test generation engine creates test cases without human intervention, allowing the system to systematically explore all program paths while maintaining comprehensive coverage.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A finite state machine serves as an intermediary between recorded user actions and generated test sequences. This intermediary models the program's behavior and systematically derives test cases that cover all possible execution paths, bridging the gap between informal user testing and systematic test coverage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If hand-crafted test scripts are created to test specific features, then targeted testing can be performed, but test coverage is limited and adaptation to program changes is difficult

Engineering Contradiction:
Improvetest coverageVSAvoidtest maintenance complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The test generation system is dynamic and automatically adapts to program changes. When the program under test is modified, the system re-analyzes the program structure and regenerates test sequences accordingly, eliminating the need for manual test script updates and maintaining comprehensive coverage without increasing maintenance complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The generated test sequences serve multiple purposes: they systematically cover all program paths, automatically adapt to changes, and can be executed without human intervention. This universal approach replaces multiple specialized hand-crafted scripts with a single versatile testing mechanism.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Extent of automation

If recorded user actions are simply replayed as test scripts, then automation is achieved, but test coverage remains limited to the recorded sequence

Engineering Contradiction:
Improvetesting automationVSAvoidtest coverage
Core Design Contradiction:
Extent of automationVSReliability

Solution Approach 1:

The system transitions from one-dimensional replay of recorded actions to multi-dimensional exploration by using the finite state machine to generate test sequences that systematically traverse all possible program paths. This adds the dimension of comprehensive path coverage while maintaining automation.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The finite state machine pre-analyzes the program structure and pre-generates comprehensive test sequences before execution. This preliminary action ensures that all possible paths are covered systematically, going beyond the limitations of simple replay while maintaining full automation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8271950B2Test generation from captured user interface status
Publication Date: 2012.09.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8271950B2 patent drawing
  • US8271950B2 patent drawing
  • US8271950B2 patent drawing

AI summary

Recorded user actions are combined with captured program status information to automatically generate test sequences which provide greater test coverage than a mere replayed script. A finite state machine is automatically constructed, based on the captured program status information and on user action groups specified by a tester. Test sequences based on the finite state machine are automatically built and executed, to exercise the program being tested.