Automated GUI Testing Tool Captures State Snapshots

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Automated user-level testing of software applications with graphical user interfaces (GUIs) often lacks comprehensive information beyond screenshots, particularly when crashes occur, making it difficult for developers to diagnose issues without additional context or multiple snapshots of the testing process.

Innovation Solution

An enhanced automated user-level testing tool captures and stores additional information, including screenshots, test script code, and stack traces at multiple points in time, which are displayed through a graphical user interface (GUI) with a timeline feature, allowing users to view and navigate snapshots chronologically.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If only a screenshot is captured when the application crashes, then the testing tool maintains simplicity, but insufficient information is provided for developers to diagnose the crash

Engineering Contradiction:
Improvetesting state informationVSAvoidtesting tool complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The testing tool captures screenshots and stack traces at predetermined intervals during test execution, before the crash occurs. This preliminary capture of state information ensures that when a crash happens, developers have access to recent testing state context without needing to implement complex real-time monitoring systems.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The testing state information is segmented into discrete snapshots taken at specific time intervals. Each snapshot contains a screenshot and stack trace that are independently stored and can be individually reviewed. This segmentation allows developers to examine specific moments during test execution without being overwhelmed by continuous data streams.

Inventive Principle:
Principle #1Segmentation

2Reliability

If multiple snapshots are captured during test execution, then comprehensive debugging information is provided, but storage requirements and data management complexity increase

Engineering Contradiction:
Improvedebugging accuracyVSAvoidtest log data volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The testing tool captures snapshots periodically at predetermined time intervals during test execution rather than continuously. This periodic capture strategy provides sufficient debugging information by documenting the state of the application at regular checkpoints, while avoiding the storage overhead and data management complexity of continuous capturing.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The testing tool captures more information than the single crash-point screenshot traditionally provided, taking multiple snapshots during test execution. However, it uses predetermined intervals to limit the total number of snapshots, providing adequate debugging information without capturing excessive data that would burden storage and management systems.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of information

If detailed testing state information is captured and stored, then developers can better diagnose issues, but the time required to process and store the data increases

Engineering Contradiction:
Improvecrash context informationVSAvoiddata processing time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The testing tool captures and stores screenshot and stack trace information in advance during normal test execution, before the crash occurs. This preliminary data collection ensures that when a crash happens, the information is already processed and stored, eliminating the need for time-consuming post-crash data gathering and reducing the time loss associated with diagnosing issues.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8966447B2Capturing and displaying state of automated user-level testing of a graphical user interface application
Publication Date: 2015.02.24 APPLE INC
  • US8966447B2 patent drawing
  • US8966447B2 patent drawing
  • US8966447B2 patent drawing

AI summary

In one embodiment, an automated user-level testing tool is enhanced to capture additional information about the state of the automated testing, beyond just a screenshot of the application-under-test. In another embodiment, an automated user-level testing tool is enhanced to capture testing state information for multiple points in time (referred to as “snapshots”), beyond just when the application-under-test crashes. This captured information from one execution of an automated test (one “test run”) is stored in one test log, which can then be viewed using a test log viewer. In one embodiment, the graphical user interface (GUI) for the test log viewer includes four areas: a screenshot area, a test script area, a stack trace area, and a timing area. The content shown in the screenshot area, the test script area, and the stack trace area is specific to a particular point in time during a test (e.g., a particular snapshot).