Software Testing Data Collector for Synchronized Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software testing methods are inefficient due to the lack of automated and synchronized data collection and analysis, particularly for long-lasting tests on mobile devices, which generates large amounts of unsynchronized data, making it difficult to pinpoint root causes and requiring manual data transfer and repetition, leading to increased time and effort in problem-solving.

Innovation Solution

A method and system for collecting, virtualizing, and timestamping data from software-based systems, abstracting storage types and locations, broadcasting it in real-time, and reacting to anomalies, enabling unified and synchronized data viewing, automatic data collection, and reactive notifications to streamline testing and debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of stationary object

If existing test automation solutions are used for long-lasting tests, then test execution can be automated, but the solutions are not reliable and flexible enough for hundreds of hours of testing and cannot recover after system hangs or crashes

Engineering Contradiction:
Improvetest execution durationVSAvoidtest automation reliability
Core Design Contradiction:
Duration of action of stationary objectVSReliability

Solution Approach 1:

The system separates the test runner from the data collector, allowing the data collector to continue operating independently even when the test runner encounters failures. This segmentation enables the data collection function to survive test execution interruptions and recover automatically.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The data collector acts as an intermediary component that bridges the test execution environment and the analysis system. It collects and buffers data locally, then transfers it to the analysis system, providing a reliable data collection mechanism that doesn't depend on the continuous operation of the test runner.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If test automation tool runs inside the device under test, then data can be collected directly, but the test run cannot recover after system hangs or crashes and data collection is limited to internal storage

Engineering Contradiction:
Improvedata collection accessibilityVSAvoidtest recovery capability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The data collector serves as an intermediary layer between the device under test and the external analysis system. It captures data from the device's internal storage and systematically transfers it to external storage, enabling both direct data access and reliable external backup that survives device failures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates copies of data from the device's internal storage and transfers them to external storage locations. This copying mechanism ensures data preservation even when the original device fails, allowing recovery and analysis to continue with the copied data.

Inventive Principle:
Principle #26Copying

3Loss of information

If data is collected from multiple sources during testing, then comprehensive debugging information is obtained, but the data is not synchronized in time and requires manual synchronization

Engineering Contradiction:
Improvedebugging information completenessVSAvoiddata synchronization time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The data collector is designed as a universal component that handles multiple data types (logs, traces, metrics) from multiple sources through a single standardized interface. It automatically synchronizes all data streams using a common timestamp reference, eliminating the need for manual synchronization across different data sources.

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

Solution Approach 2:

The system implements automated feedback mechanisms where the data collector continuously monitors data generation from multiple sources, detects synchronization deviations, and automatically adjusts collection timing to maintain temporal alignment. This feedback loop eliminates manual intervention for synchronization.

Inventive Principle:
Principle #23Feedback

4Adaptability or versatility

If multiple separate tools are used for data collection and analysis, then specific data types can be handled, but the system complexity increases and manual coordination is required

Engineering Contradiction:
Improvedata type handling capabilityVSAvoidtesting system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The data collector is designed as a multi-functional universal tool that can collect various data types (logs, traces, performance metrics) through a single integrated system. It provides a unified interface for data collection, processing, and transfer, replacing multiple separate tools and reducing system complexity while maintaining versatility.

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

Solution Approach 2:

The system merges the functions of multiple separate data collection and analysis tools into a single integrated data collector component. This consolidation combines data gathering, processing, synchronization, and transfer capabilities into one unified system, reducing the number of separate tools needed and simplifying the overall testing architecture.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10540266B2Method and system for testing software based system
Publication Date: 2020.01.21 PROFILENCE OY
  • US10540266B2 patent drawing
  • US10540266B2 patent drawing
  • US10540266B2 patent drawing

AI summary

A method and a system for testing a software based system. The method includes collecting data from the software based system under test by a first data processing device; virtualizing and timestamping the collected data by the first data processing device; abstracting data storage type and data storage location of the collected data by the first data processing device; broadcasting the virtualized and timestamped data to at least one second data processing device; reacting to the collected data at its location with an action carried out locally by the first data processing device or by sending communication pertaining to the action to the first data processing device from the at least one second data processing device; and updating execution of the test based upon the action.