Adaptive GUI Test Automation via Recording Agent

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current GUI test automation methods are unreliable due to incomplete recording of user interactions, lengthy custom test development, susceptibility to application changes, and lack of correlation with typical user behavior, leading to inefficient and error-prone quality assurance processes.

Innovation Solution

A method involving a recording agent that captures human testers' GUI interactions, compiles test procedures with known inputs and outputs, and analyzes common failure points to create an adaptive and error-tolerant automated test procedure, eliminating the need for custom development and random manipulations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If record and playback approaches are used to automate GUI testing, then automation is achieved, but reliability deteriorates because not all user gestures and GUI interactions are captured

Engineering Contradiction:
ImproveautomationVSAvoidreliability
Core Design Contradiction:
Extent of automationVSReliability

Solution Approach 1:

The patent creates a virtual model (copy) of the GUI application that mirrors the actual application's structure and behavior. This virtual model serves as a reliable representation that can be tested automatically without depending on complete recording of all user interactions. The virtual model is updated based on observed user actions, ensuring accuracy while maintaining automation.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system implements feedback loops where the virtual model is continuously compared against the actual application state during testing. When discrepancies are detected, the system learns from these differences and updates the virtual model accordingly. This feedback mechanism ensures the virtual model remains synchronized with the actual application, improving reliability over time.

Inventive Principle:
Principle #23Feedback

2Reliability

If custom-written automated GUI tests are developed, then test coverage may improve, but development time increases beyond manual testing duration

Engineering Contradiction:
Improvetest coverageVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically generating the virtual model and test cases from observed user interactions, rather than requiring manual development. This preliminary generation process captures common testing scenarios automatically, reducing the time investment required while maintaining comprehensive test coverage through subsequent learning and adaptation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system serves itself by automatically creating and maintaining the virtual model, generating test cases, and updating test procedures based on observed usage patterns. This self-service capability eliminates the need for extensive manual test development while achieving comprehensive coverage through automated learning from real user interactions.

Inventive Principle:
Principle #25Self-service

3Extent of automation

If random clicking and text entry is used to test GUI, then automation is achieved, but correlation with typical user behavior deteriorates

Engineering Contradiction:
ImproveautomationVSAvoidcorrelation with user behavior
Core Design Contradiction:
Extent of automationVSAdaptability or versatility

Solution Approach 1:

The system transitions from static random testing to dynamic behavior-based testing. The virtual model captures the actual sequence, timing, and patterns of user interactions, allowing the automated tests to dynamically adapt to real user behavior patterns. This dynamic approach maintains automation while significantly improving correlation with typical user actions.

Inventive Principle:
Principle #15Dynamics

4Measurement precision

If the virtual model is continuously updated from multiple sources, then accuracy improves, but complexity of synchronization increases

Engineering Contradiction:
ImproveaccuracyVSAvoidsynchronization complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the synchronization process into distinct components: structure synchronization, state synchronization, and behavior synchronization. Each aspect is updated independently based on its specific data sources, reducing the complexity of managing all updates simultaneously while maintaining overall accuracy through coordinated updates across segments.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7900089B2Method for creating error tolerant and adaptive graphical user interface test automation
Publication Date: 2011.03.01 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7900089B2 patent drawing
  • US7900089B2 patent drawing
  • US7900089B2 patent drawing

AI summary

A method, apparatus and computer-usable medium for the improved automated testing of a software application's graphical user interface (GUI) through implementation of a recording agent that allows the GUI interactions of one or more human software testers to be captured and incorporated into an error-tolerant and adaptive automated GUI test system. A recording agent is implemented to capture the GUI interactions of one or more human software testers. Testers enact a plurality of predetermined test cases or procedures, with known inputs compared against preconditions and expected outputs compared against the resulting postconditions, which are recorded and compiled into an aggregate test procedure. The resulting aggregate test procedure is amended and configured to correct and/or reconcile identified abnormalities to create a final test procedure that is implemented in an automated testing environment. The results of each test run are subsequently incorporated into the automated test procedure, making it more error-tolerant and adaptive as the number of test runs increases.