Software Test Coverage via Real-Time User Activity Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software products often experience degraded performance due to users interacting with them in unforeseen ways, as existing testing methods fail to account for all possible usage paths, leading to a gap between expected and actual usage patterns.

Innovation Solution

A software application is configured to determine both expected and observed execution maps, comparing them to create a disparity map that highlights untested or under-tested paths, allowing for adjustments to better match user behavior and improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If software testing is performed using predetermined test paths, then testing coverage of expected usage scenarios is improved, but the ability to detect unintended usage patterns deteriorates

Engineering Contradiction:
Improvetesting coverageVSAvoiddetection of unintended usage patterns
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The system implements feedback by continuously monitoring actual user interactions with the software and comparing them against expected test paths. This feedback loop enables the system to identify deviations from predetermined usage scenarios, allowing developers to detect unintended usage patterns that were not covered by traditional testing methods.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system transitions from static predetermined test paths to dynamic monitoring of actual user behavior. By adaptively tracking real-time user interactions and comparing them against expected paths, the system can dynamically identify unintended usage patterns without requiring explicit programming of all possible scenarios.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If the software product is designed to handle only expected usage paths, then development complexity is reduced, but reliability under unexpected conditions deteriorates

Engineering Contradiction:
Improvedevelopment complexityVSAvoidperformance under unexpected conditions
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system performs preliminary monitoring and analysis of actual user interactions to identify unintended usage patterns before they cause reliability issues. By detecting and analyzing deviations from expected paths in advance, the system can prepare appropriate responses or alerts without requiring complex pre-programming of all possible unexpected scenarios.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If traditional software testing methods are used, then testing time for predetermined paths is reduced, but the gap between expected and actual usage patterns increases

Engineering Contradiction:
Improvetesting timeVSAvoidgap between expected and actual usage
Core Design Contradiction:
Loss of timeVSLoss of information

Solution Approach 1:

The system enables self-service by automatically monitoring and collecting data on actual user interactions without requiring additional manual testing effort. The monitoring system autonomously tracks user behavior, compares it against expected paths, and generates reports on deviations, eliminating the need for separate manual analysis while reducing the gap between expected and actual usage patterns.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11301365B1Software test coverage through real-time tracing of user activity
Publication Date: 2022.04.12 SERVICENOW INC
  • US11301365B1 patent drawing
  • US11301365B1 patent drawing
  • US11301365B1 patent drawing

AI summary

A computing system includes persistent storage containing a plurality of groups of software instructions, wherein each respective group is linked with at least one other group. The computing system also includes a software application configured to perform operations, including determining an expected execution map representing expected paths that are expected to be followed between linked groups of software instructions. The operations also include monitoring interactions of a user with the plurality of groups, and based on the monitoring, determining an observed execution map representing observed paths that the user has followed between the linked groups of software instructions. The operations further include determining a disparity map representing a disparity between the expected paths and the observed paths by comparing the expected execution map to the observed execution map, and displaying the expected execution map, the observed execution map, and/or the disparity map.