Stack-Based Application Crawler for Automated UI Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Testing multiple computerized applications with varying user-flows and requirements is time-consuming and challenging, especially when different companies are involved in testing and development, as it requires generating and maintaining numerous test scripts and coordinating efforts across teams.

Innovation Solution

Automated application crawlers that navigate and analyze applications without prior knowledge of user-flows, using a stack of sequences to explore all potential paths and detect user interface elements, allowing for comprehensive testing without access to source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional automated test scripts are generated with prior knowledge of application behavior, then testing coverage is improved, but time consumption and coordination effort increase significantly

Engineering Contradiction:
Improvetesting coverageVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application crawler autonomously explores the application interface and generates test sequences without requiring human operators to predefine test scripts. The system serves itself by automatically discovering user flows and generating comprehensive test coverage through autonomous navigation and analysis of the application interface.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The application crawler acts as an intermediary between the testing facility and the application under test. It automatically analyzes the application interface, discovers user flows, and generates test sequences, eliminating the need for direct human intervention in script generation while maintaining comprehensive testing coverage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple suites of test scripts are generated for different applications, then testing completeness is improved, but maintenance complexity and coordination effort increase

Engineering Contradiction:
Improvetesting completenessVSAvoidmaintenance complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The application crawler is designed as a universal testing tool that can automatically test any application without requiring application-specific test scripts. It performs multiple functions including autonomous navigation, interface analysis, user flow discovery, and test sequence generation, eliminating the need to maintain separate test script suites for different applications.

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

Solution Approach 2:

The crawler automatically adapts to each application by autonomously exploring its interface and generating appropriate test sequences. This self-service capability eliminates the need for manual script generation and maintenance for each application, reducing maintenance complexity while maintaining testing completeness.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If test scripts are updated to reflect intentional changes in application behavior, then testing accuracy is improved, but coordination effort and time consumption increase

Engineering Contradiction:
Improvetesting accuracyVSAvoidcoordination effort
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The application crawler dynamically adapts to changes in application behavior by autonomously re-exploring the application interface and automatically updating test sequences. This dynamic capability ensures testing accuracy reflects current application behavior without requiring manual script updates or coordination between development and testing teams.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The crawler continuously monitors application interface changes and uses this feedback to automatically update test sequences. This feedback mechanism ensures testing accuracy remains synchronized with application behavior changes without requiring manual intervention or coordination effort.

Inventive Principle:
Principle #23Feedback

4Reliability

If comprehensive exploration of all potential user-flows is performed, then testing coverage is improved, but computational resources and time consumption increase

Engineering Contradiction:
Improvetesting coverageVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The application crawler performs preliminary autonomous exploration of the application interface to map out all potential user flows before executing comprehensive testing. This preliminary action enables the system to identify efficient testing paths and generate comprehensive test coverage without requiring exhaustive exploration of every possible scenario.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The crawler employs intelligent exploration strategies that focus on discovering critical user flows and potential edge cases without exhaustively testing every possible combination. This partial action approach achieves comprehensive testing coverage for critical paths while reducing overall time consumption compared to exhaustive exploration.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10083108B1Automated stack-based computerized application crawler
Publication Date: 2018.09.25 CLOVER NETWORK INC
  • US10083108B1 patent drawing
  • US10083108B1 patent drawing
  • US10083108B1 patent drawing

AI summary

Methods and systems related to automatically crawling an application are disclosed. One such method includes navigating to an application interface using an application crawler and a sequence of commands, analyzing the application interface to find a set of user interface elements on the application interface, determining a set of commands that will interact with the user interface elements on the application interface, and pushing each command in the set of commands onto a stack individually along with the sequence of commands. The method also comprises popping a new sequence of commands from the stack. The new sequence of commands is a command in the set of commands in sequence with the sequence of commands. The method also comprises iteratively repeating the navigating, analyzing, determining, and pushing steps with the new sequences of commands that are generated via each previous iteration of those steps.