Graph-Based Application Debugging via Overlay Versioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Debugging graph-based applications often requires modifying the source code, which can inadvertently break the original functionality, and testers may lack permissions or efficiency in testing due to the need to manually provide input data and specify output destinations.
Innovation Solution
The method involves generating a second version of the computer program by identifying and replacing external data sources and sinks with test sources and probes defined in an overlay specification, allowing for consistent input data and monitoring of output without modifying the original graph, using a processor to analyze and execute the modified program.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the source code is modified with debug code to enable debugging, then the debugging capability is improved, but the original functionality of the source code is compromised
Solution Approach 1:
The patent creates a copy of the graph (second version) that includes debug code and test data sources, while leaving the original graph unchanged. This allows debugging operations to be performed on the copy without affecting the original functionality, resolving the contradiction between improving debugging capability and maintaining original functionality.
Solution Approach 2:
The patent separates the graph into a first version (original) and a second version (debugging version). The second version is generated by copying the first version and adding debug code, allowing independent modification of the debugging version without impacting the original graph's functionality.
2Adaptability or versatility
If manual testing is performed by providing input data and specifying output destinations, then testing flexibility is improved, but testing efficiency and system resource usage deteriorate
Solution Approach 1:
The patent pre-creates test data sources with predefined input data and destinations before execution. These test data sources are automatically generated and configured, eliminating the need for manual data provision during testing and significantly improving testing efficiency while maintaining flexibility through automated configuration.
Solution Approach 2:
The system automatically generates test data sources and configures them without requiring manual intervention. The automated generation process creates appropriate test data and destinations based on the graph structure, allowing the system to serve itself in the testing process and improving both efficiency and resource utilization.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method includes analyzing, by a processor, a first version of a computer program. The analyzing includes identifying a first data processing element included in the first version of the computer program. The first data processing element references a first data source external to the first version of the computer program. The method includes generating a data source element that represents a second data source different from the first data source. The method includes generating a second version of the computer program. The second version of the computer program includes the generated data source element and a second data processing element that is based on the first data processing element. In the second version of the computer program, the second data processing element references the generated data source element.