Dynamic CLI Integration Module for Automated Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrating functionality from source programs with command line interfaces (CLIs) is cumbersome due to the need for elevated access, in-depth knowledge of the source program's functionality, and iterative quality assurance testing, especially when the source program updates, leading to inefficiencies and potential application failures.

Innovation Solution

A system and method for dynamic integration of command line utilities, where a CLI integration module discovers and updates valid commands, subcommands, arguments, and input types without elevated access, generating functions dynamically and automating test cases to ensure compatibility and detect incompatibilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If manual integration of CLI commands is performed, then integration precision is improved, but productivity deteriorates and time loss increases

Engineering Contradiction:
Improveintegration precisionVSAvoidintegration productivity
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system performs self-service by automatically discovering CLI commands, generating integration code, and executing test cases without requiring manual programmer intervention. The program testing module autonomously identifies valid commands, generates test cases with appropriate test data, and executes them to verify integration correctness.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical processes (programmers manually discovering commands, writing integration code, and performing testing) with an automated computational system. The CLI integration module and program testing module substitute human effort with algorithmic processes that automatically generate and validate integration code.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If elevated access rights are used to integrate source programs, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improveintegration adaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The CLI integration module acts as an intermediary between the second program and the CLI of the first program. It discovers commands, generates integration code, and manages the interaction without requiring elevated access rights. This intermediary layer simplifies the integration process while maintaining adaptability to different CLI interfaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates a copy or representation of the CLI interface through generated functions that mirror the command structure. Instead of directly accessing the original CLI with elevated rights, the system creates a replicated interface that can be interacted with using standard access rights, thereby reducing complexity.

Inventive Principle:
Principle #26Copying

3Reliability

If comprehensive test cases are generated, then reliability is improved, but time loss increases

Engineering Contradiction:
Improveintegration reliabilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically generating comprehensive test cases before integration is deployed. The program testing module creates test cases with appropriate test data in advance, ensuring that potential issues are identified before they cause failures in production environments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by automatically executing generated test cases and using the results to verify integration correctness. The test case execution module provides feedback on whether the integration is working properly, allowing for immediate correction of issues without manual intervention.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11385993B2Dynamic integration of command line utilities
Publication Date: 2022.07.12 RED HAT INC
  • US11385993B2 patent drawing
  • US11385993B2 patent drawing
  • US11385993B2 patent drawing

AI summary

Dynamic integration of command line utilities is disclosed. For example, a host has a processor and a memory, where the memory stores a first program with a command line interface (CLI). A program testing module executes on the processor to discover a plurality of commands accepted by the CLI, where a command of the plurality of commands additionally accepts a subcommand and an argument. A first input data type associated with the first command is determined. A first test case is generated that invokes the first command with first test data of the first input data type. A second input data type that is incompatible with the command is determined based on the first input data type. A second test case that invokes the command with second test data of the second input data type is generated and both test cases are executed.