Automated Dependency Tree Generation for White-Box Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in fully anticipating the impact of updates to software applications and their dependencies, leading to incomplete testing, especially when dealing with numerous dependencies or unknown functionality, resulting in time-consuming and tedious testing processes.

Innovation Solution

An automated system generates software application dependency trees recursively, parsing specifications to identify dependencies and aggregate them into a comprehensive tree, which is then used to select and execute relevant testing templates for thorough white-box testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually test all dependencies of a software application, then testing completeness is improved, but time consumption and resource commitment increase significantly

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

Solution Approach 1:

The system performs preliminary generation of dependency trees before testing begins. By automatically identifying and organizing all dependencies in advance, the system prepares a comprehensive testing roadmap that ensures no dependency is missed, while eliminating the need for manual dependency tracking during the testing process itself.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary automated system that acts as a mediator between the software application and its dependencies. This intermediary automatically generates dependency trees, identifies testing requirements, and orchestrates the testing process, replacing manual developer efforts and significantly reducing time consumption while maintaining complete testing coverage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If developers test all dependencies thoroughly, then testing accuracy is improved, but the complexity of the testing process increases

Engineering Contradiction:
Improvetesting accuracyVSAvoidtesting process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the complex testing process into distinct, manageable components: dependency identification, dependency tree generation, testing template selection, and test execution. Each component handles a specific aspect of the testing process independently, making the overall complex process more manageable and easier to execute with high accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The testing system is designed to be dynamic and adaptive. It automatically adjusts the testing process based on the generated dependency tree, selecting appropriate testing templates for each dependency type and level. This dynamic approach simplifies the process by eliminating the need for developers to manually design and manage complex testing procedures for each dependency scenario.

Inventive Principle:
Principle #15Dynamics

3Productivity

If automated testing systems are implemented, then productivity is improved, but the initial setup complexity increases

Engineering Contradiction:
Improvetesting efficiencyVSAvoidsystem setup complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The automated testing system is designed to be self-service oriented. It automatically generates dependency trees, identifies appropriate testing templates, and executes tests without requiring extensive manual configuration or setup by developers. The system serves itself by autonomously managing the testing workflow, which improves productivity while minimizing the burden of initial setup and ongoing maintenance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11422917B2Deriving software application dependency trees for white-box testing
Publication Date: 2022.08.23 RED HAT INC
  • US11422917B2 patent drawing
  • US11422917B2 patent drawing
  • US11422917B2 patent drawing

AI summary

Software application dependency trees can be generated and used for white-box testing. In some examples, a method may involve receiving a request to generate a dependency tree for a first software application associated with a computing device. The method may also include identifying a set of software applications also associated with the computing device, each of which the first software application is determined to be dependent upon based on information included in a specification for the first software application. The method may also include receiving, by the computing device with respect to the set of software applications, a corresponding set of dependency trees. The method may further include incorporating each of the dependency trees in the set of dependency trees into the dependency tree for the first software application via a respective incorporation point, and returning the dependency tree for the first software application in response to the request.