Finite State Machine Test Generation from User Actions
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


