Crowd-Sourced Application Testing via Execution Script Replay

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional software application testing methods are labor-intensive, resource-consuming, and may not exhaustively verify all execution paths or input combinations, leading to potential undetected errors, especially with the increased pace of software updates in mobile computing.

Innovation Solution

The method involves instrumenting software applications on end-user devices to collect real-life execution data, which is used to generate and execute automated testing scripts that replicate actual user interactions, allowing for dynamic and comprehensive testing of updated application versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional manual testing methods are used, then testing can be performed with simple tools, but testing is labor-intensive and cannot exhaustively verify all execution paths

Engineering Contradiction:
Improvetesting completenessVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system instruments the application itself to automatically generate execution data and testing scripts. The application under test performs self-diagnosis and self-documented behavior capture, eliminating the need for external manual testing effort while achieving exhaustive path verification through automated replay of actual user interactions.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system creates copies of actual user execution paths by instrumenting the application to capture real interaction sequences. These copied execution paths are then replayed automatically as test scripts, allowing exhaustive verification of all possible user interaction combinations without requiring manual recreation of each test scenario.

Inventive Principle:
Principle #26Copying

2Productivity

If the pace of software updates is increased, then productivity improves, but testing cannot keep up with the update frequency

Engineering Contradiction:
Improveupdate frequencyVSAvoidtesting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary instrumentation of the application during development, capturing execution data as it naturally occurs during real usage. This preliminary data collection enables rapid generation of replay scripts that can be executed immediately against updated versions, allowing testing to keep pace with frequent updates without time loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables continuous testing by automatically generating and executing replay scripts against each update iteration. The instrumentation remains active throughout the update cycle, continuously capturing new execution paths and immediately converting them into test cases, ensuring no testing time is lost between updates.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If comprehensive testing of all execution paths is performed, then reliability improves, but resource consumption increases

Engineering Contradiction:
Improveerror detection capabilityVSAvoidtesting resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The application under test instruments itself to automatically generate execution data and testing scripts, eliminating the need for external testing infrastructure and manual effort. This self-service approach achieves comprehensive path verification while minimizing external resource consumption, as the application's own execution data becomes the test input.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system captures actual user execution paths that naturally occur during real usage, focusing testing resources on the specific paths that matter most. By instrumenting to capture real-world execution rather than attempting to predefine all possible paths, the system achieves effective comprehensive testing with reduced resource overhead.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10417116B2System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay
Publication Date: 2019.09.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10417116B2 patent drawing
  • US10417116B2 patent drawing
  • US10417116B2 patent drawing

AI summary

A method is disclosed including instrumenting a first version of an application on a plurality of end user devices and receiving execution data for the first version of the application from at least some of the plurality of end user devices. The execution data may be generated by the instrumentation in response to an execution of the first version of the application by the at least some of the end user devices. The method further includes automatically generating execution scripts based on the received execution data. The execution scripts may be configured to reproduce the execution of the first version of the application by the at least some of the end users devices. The method further includes automatically executing at least one of the execution scripts on an updated version of the application.