Rendering Engine Component Abstraction for Automated Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current automation testing solutions for applications built on rendering engines, such as Unity and Unreal Engine, lack direct access to the window manager/UI controller layer, preventing elastic steering of app behavior and reliable feedback on graphical elements, leading to errors and incomplete testing.

Innovation Solution

The Rendering Engine Component Abstraction System (RECAS) allows dynamic interaction with graphical components by sending steering information and simulating inputs directly to the window manager/UI controller layer or bypassing it, enabling access to topology information and enabling customized automated test scenarios, stability checks, performance metrics monitoring, and localization testing across various platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If direct screen access is used for automation testing, then testing can be performed without OS level services, but access to UI layer information and elastic steering of app behavior is lost

Engineering Contradiction:
Improveaccess to UI layer informationVSAvoidtesting system architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (test automation framework with hooks and events) between the testing system and the rendering engine components. This intermediary enables access to UI layer information and app behavior control without requiring direct OS level service access, resolving the contradiction by providing the needed adaptability while maintaining system architecture simplicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a nested structure where the test automation framework is embedded within the rendering engine's component architecture. Test hooks and events are integrated into the existing rendering pipeline, allowing testing capabilities to be nested within the game/application structure itself, thus providing UI access without adding external system complexity.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Reliability

If primitive automation tools based on screen coordinates are used, then implementation is simple, but validation capability and test reliability are insufficient

Engineering Contradiction:
Improvetest execution reliabilityVSAvoidtesting system architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where the test automation system receives real-time information about the current screen state, UI element positions, and application behavior through rendering engine hooks. This feedback enables validation of test actions and reliable detection of test outcomes, significantly improving test execution reliability compared to coordinate-based tools.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent enables preliminary action by allowing test scenarios to query and understand the current UI state and component topology before executing test actions. This preliminary information gathering ensures that test actions are properly validated and targeted, preventing errors that occur with blind coordinate-based automation.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If image recognition algorithms are used to analyze screen content, then basic information about application state can be obtained, but implementation complexity and maintenance difficulty increase

Engineering Contradiction:
Improveapplication state informationVSAvoidimplementation and maintenance ease
Core Design Contradiction:
Loss of informationVSEase of manufacture

Solution Approach 1:

The patent extracts application state information directly from the rendering engine's internal data structures and component hierarchy, rather than capturing and analyzing screen images. This extraction approach obtains complete and accurate application state information while avoiding the complexity of image recognition algorithms, as the data is already available in structured form within the rendering pipeline.

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If manual testing is used for applications built on rendering engines, then detailed validation can be performed, but testing speed and productivity are reduced

Engineering Contradiction:
Improvetesting speedVSAvoidtest scenario creation and execution
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service capabilities where the test automation framework automatically manages test execution, result collection, and validation processes. The system autonomously interacts with rendering engine components through integrated hooks, eliminating the need for manual intervention while maintaining comprehensive validation capabilities, thus achieving both high productivity and ease of operation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11237948B2Rendering engine component abstraction system
Publication Date: 2022.02.01 LIONBRIDGE TECH LLC
  • US11237948B2 patent drawing
  • US11237948B2 patent drawing
  • US11237948B2 patent drawing

AI summary

The subject matter discloses a system for testing an application or a game build on top of a rendering engine, the system comprises an agent configured for running on a first computing device; the first computing device is configured for running the game or said application; a test framework installable on a second computing device, the test framework is configured for receiving one or more instructions related to a test of said game or the application from a user and for transmitting the one or more instructions to the agent; wherein the agent is further configured for communicating with the test framework for extracting one or more object properties of the game or the application in response to the one or more instructions and for providing to the test framework to access to the one or more object properties.