Automated UI Testing via API Invocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Manual software testing is time-consuming, costly, and of questionable quality, particularly in verifying timing constraints, necessitating an improved method for testing software programs.

Innovation Solution

Automated extensible user interface testing using a test engine that accesses test data to determine and invoke appropriate API methods for testing user interfaces, supporting multiple test steps and verification processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual testing is used, then human users can interact with and verify the program, but the testing process becomes time-consuming and costly

Engineering Contradiction:
Improvetesting qualityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent replaces manual mechanical testing operations with an automated testing system that uses a test engine to execute test cases and interact with the program under test. This substitution eliminates the need for human operators to manually perform repetitive testing actions, thereby reducing testing time and costs while maintaining or improving testing quality through systematic automation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The testing system performs self-service by automatically executing test cases, capturing results, and generating test reports without requiring continuous human intervention. The test engine autonomously manages the testing process, including setting up test environments, running test scenarios, and analyzing outcomes, which significantly reduces the time and resources required for software testing.

Inventive Principle:
Principle #25Self-service

2Reliability

If manual testing is used, then human users can verify program behavior, but the cost of testing increases

Engineering Contradiction:
Improvetesting qualityVSAvoidtesting cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent replaces expensive manual testing operations with an automated testing system that uses software-based test engines and scripted test cases. This substitution eliminates the need to pay human testers for repetitive tasks, thereby reducing testing costs while maintaining testing quality through consistent and repeatable automated test execution.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The testing system uses copies of test data and test scenarios that can be repeatedly executed without additional cost. Once test cases are created, they can be run multiple times against different builds and configurations at minimal marginal cost, unlike manual testing where each execution requires human time and resources.

Inventive Principle:
Principle #26Copying

3Reliability

If manual testing is used, then human users can provide inputs, but it is difficult to verify timing constraints

Engineering Contradiction:
Improvetiming constraint verificationVSAvoidtesting difficulty
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent replaces manual timing verification with automated timing measurement capabilities built into the test engine. The system automatically captures timestamps for test events, calculates time intervals, and verifies whether timing constraints are met, eliminating the difficulty of manually measuring and verifying timing requirements.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The testing system provides automated feedback on timing constraint compliance by comparing measured time intervals against specified requirements. The test engine generates immediate feedback indicating whether timing constraints are satisfied, eliminating the need for manual analysis and verification of timing behavior.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7529977B2Automated extensible user interface testing
Publication Date: 2009.05.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7529977B2 patent drawing
  • US7529977B2 patent drawing
  • US7529977B2 patent drawing

AI summary

Automated extensible user interface testing supports testing of a user interface of a program. Test data is accessed, the test data including multiple test steps. Each test step describes at least a part of a test to be performed on the user interface. For each of the multiple test steps, one or more application program interface (API) methods to invoke to carry out the part of the test is determined. This determination is based at least in part on the test data and on an identification from the API of methods supported by the API. Each of the one or more API methods is then invoked to carry out the part of the test. Verification can be performed to ensure, for example, that specified files were created, or registry values were changed, or user interface elements appear and exist.