Automated Service Dependency Discovery and Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex enterprise environments, identifying dependent services and their corresponding tests is challenging, especially when these services are hidden or not directly accessible, making it difficult to validate the health of target services and ensure end-to-end functionality.

Innovation Solution

A system and method that utilize a test identification service to monitor service calls, identify dependent services, and retrieve applicable tests from a test registry, enabling the automated discovery and testing of dependent services within the enterprise environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual identification of dependent services is performed, then testing accuracy is improved, but labor intensity and time consumption increase

Engineering Contradiction:
Improvetesting accuracyVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary action by automatically discovering and identifying dependent services before testing begins. The test identification service proactively queries the service registry, analyzes service call graphs, and retrieves relevant tests without waiting for manual input, thereby improving testing accuracy while reducing time consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables self-service by allowing the testing system to automatically identify its own dependencies and retrieve necessary tests without human intervention. The service automatically queries the registry, analyzes call graphs, and collects tests from multiple sources, making the testing process autonomous and efficient.

Inventive Principle:
Principle #25Self-service

2Reliability

If comprehensive testing of all services is performed, then system reliability is improved, but device complexity increases

Engineering Contradiction:
Improvesystem reliabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system applies segmentation by dividing the testing process into distinct functional modules: service discovery, dependency analysis, test identification, and test execution. Each module handles a specific aspect of the testing workflow, making the overall complex process manageable and maintainable while ensuring comprehensive coverage of all services.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The test identification service acts as an intermediary between the service registry and the testing framework. It mediates the complex interactions by centralizing the logic for discovering services, analyzing dependencies, and retrieving tests, thereby simplifying the overall system architecture while maintaining comprehensive testing capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If automated service discovery is implemented, then productivity is improved, but measurement precision of service dependencies may deteriorate

Engineering Contradiction:
ImproveproductivityVSAvoidservice dependency accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system implements feedback by continuously monitoring service call graphs and updating the dependency model based on actual service interactions. The test identification service queries the service registry and analyzes call graphs to verify and refine service dependencies, ensuring high measurement precision while maintaining automated discovery for high productivity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10735300B1Discovery and testing of program dependencies in computer networks
Publication Date: 2020.08.04 INTUIT INC
  • US10735300B1 patent drawing
  • US10735300B1 patent drawing
  • US10735300B1 patent drawing

AI summary

A method includes receiving, at a test identification service, a request to test a first service in an enterprise environment, identifying a service call of the first service, and identifying, using an endpoint of the service call, a second service called by the first service, the second service executing in the enterprise environment. The method further includes identifying a subset of tests from a test registry service including multiple tests, the subset of tests being configured to test the second service, and testing, using the subset of tests, the second service in the enterprise environment.