GUI Object Recognition for Automated Software Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing automated software testing tools face challenges in reliability and maintenance, particularly when updating tests for applications, as they often require manual coding and struggle with recognizing graphical user interface (GUI) objects, leading to increased development time and costs.

Innovation Solution

A computer-based software testing method that presents an interactive visual user interface with nonnative pointing-device-based user interaction, allowing users to intercept and classify GUI objects, build object definitions, and create test paths, thereby simplifying the development and updating of software tests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual coding is used to create test scripts, then test reliability is improved, but test development time and complexity increase

Engineering Contradiction:
Improvetest reliabilityVSAvoidtest development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically recognizing and classifying GUI objects before test script creation. The object recognition module pre-processes the application interface, identifies control elements, and generates object definitions that are stored for subsequent test development, eliminating the need for manual object identification during testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables self-service by allowing automated generation of test scripts through object recognition and classification. The test script generation module automatically creates test scripts based on recognized GUI objects and their properties, reducing dependency on manual coding while maintaining test reliability through systematic object classification.

Inventive Principle:
Principle #25Self-service

2Ease of operation

If recorders are used to capture user activity, then ease of use is improved, but script reliability and maintainability deteriorate

Engineering Contradiction:
Improveease of useVSAvoidscript reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system segments the test creation process into distinct modules: object recognition, object classification, test script generation, and test execution. Each module handles specific aspects of test development, allowing for better control and maintenance. The object recognition module separately identifies GUI elements, while the classification module organizes them into structured definitions, improving both reliability and maintainability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary layer of object definitions between user actions and test scripts. Instead of directly recording user actions, the system captures GUI object properties and relationships, creating a structured intermediate representation that enhances script reliability and ease of maintenance.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If automated object recognition is implemented, then test development speed is improved, but system complexity increases

Engineering Contradiction:
Improvetest development speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements universal object recognition capabilities that can identify various types of GUI controls (buttons, text fields, lists, tables) using a unified approach. The object recognition module serves multiple functions: identifying control elements, extracting their properties, and generating standardized object definitions, thereby improving productivity without proportionally increasing complexity.

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

Solution Approach 2:

The system creates simplified copies of GUI objects in the form of object definitions that capture essential properties and relationships. These object definitions are lightweight representations that enable automated test script generation without requiring the full complexity of the original application interface, thus improving development speed while managing system complexity.

Inventive Principle:
Principle #26Copying

4Reliability

If comprehensive test coverage is achieved, then application quality is improved, but test maintenance effort increases

Engineering Contradiction:
Improveapplication qualityVSAvoidtest maintenance effort
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary classification and organization of GUI objects into structured definitions before comprehensive testing begins. This pre-organization enables easier maintenance by providing a clear hierarchy and relationships between test objects, reducing the effort required to update tests when applications change.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms that track object relationships and dependencies within the application interface. When applications are updated, the system can automatically detect changes in object definitions and notify users of affected test scripts, thereby maintaining comprehensive coverage while reducing manual maintenance effort.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8776023B2Software testing
Publication Date: 2014.07.08 APPSAGE
  • US8776023B2 patent drawing
  • US8776023B2 patent drawing
  • US8776023B2 patent drawing

AI summary

In one general aspect, a computer-based software testing method is disclosed that includes presenting to a user an interactive visual user interface of an application under test that includes a plurality of user interface controls, with each of the presented user interface controls having a predefined native interaction mode. The method also includes intercepting normative pointing-device-based user interaction with each of a plurality of the user interface controls, with the normative pointing-device-based user interaction mode being different from the native interaction mode. Interface definitions are built for the application based on results of the steps of intercepting for the plurality of interface controls.