Microservice Test Prioritization via Dependency Risk Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microservices environments, it is challenging to prioritize and order tests effectively due to the large number of microservices and complex relationships between them, leading to difficulties in determining which tests to perform and when, which can result in inefficient resource utilization and prolonged debugging times.

Innovation Solution

A methodology that employs graphical analysis of API dependencies to identify areas at risk of failure, automatically generating recommendations for test prioritization and ordering, thereby focusing testing resources on the most critical microservices first.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If comprehensive testing of all microservices is performed, then testing coverage is improved, but testing time and resource consumption increase significantly

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the testing process by dividing microservices into different priority levels based on their criticality to the system. High-priority microservices are tested first and in greater detail, while lower-priority services receive reduced testing coverage. This segmentation allows the testing system to focus resources on the most important services, maintaining reliability for critical functions while reducing overall testing time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by assigning different testing depths and methodologies to different microservices based on their specific characteristics and importance. Critical microservices receive comprehensive testing with multiple test cases, while less critical services receive streamlined testing. This approach ensures that testing quality is optimized locally for each service based on its actual needs rather than applying uniform testing across all services.

Inventive Principle:
Principle #3Local quality

2Reliability

If comprehensive testing of all microservices is performed, then testing coverage is improved, but resource consumption increases significantly

Engineering Contradiction:
Improvetesting coverageVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the microservice portfolio into priority tiers, allocating testing resources proportionally to each tier. High-priority microservices receive substantial resource allocation including multiple test environments and comprehensive test suites, while lower-priority services receive minimal resource allocation. This segmentation enables the system to maintain adequate testing coverage for critical services while dramatically reducing overall resource consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing only the necessary amount of testing for each microservice based on its priority level. Instead of exhaustive testing for all services, the system performs sufficient testing for high-priority services to ensure reliability, while performing minimal testing for low-priority services. This approach achieves adequate testing coverage for critical functions without the excessive resource consumption of comprehensive testing across all services.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If manual test prioritization is performed, then test ordering can be customized, but the complexity of determining test order increases

Engineering Contradiction:
Improvetest ordering flexibilityVSAvoidtest prioritization complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling automated test prioritization through configuration files and policy-based rules. The testing system automatically determines test execution order based on pre-defined criteria such as microservice dependencies, criticality levels, and business impact. This eliminates the need for manual intervention in complex prioritization decisions while maintaining flexibility through configurable parameters. Users can adjust priorities through simple configuration rather than complex manual processes.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent applies preliminary action by pre-establishing prioritization rules, dependency relationships, and criticality classifications before testing begins. The system performs advance analysis of microservice relationships and impact assessments, storing this information for rapid retrieval during test execution. This preliminary preparation reduces the complexity of real-time test ordering decisions, as the system simply follows pre-determined priorities rather than calculating them during execution.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If extensive testing is performed across all microservices, then system reliability is improved, but the time to identify and fix bugs increases

Engineering Contradiction:
Improvesystem reliabilityVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the testing effort to focus intensively on high-priority microservices that are most likely to contain critical bugs. By concentrating testing resources on these services, the system achieves high reliability for the most important functions while reducing the time spent testing lower-priority services. This segmentation enables faster identification and fixing of bugs in critical areas without the time cost of exhaustive testing across all services.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by performing risk assessment and impact analysis before testing to identify which microservices are most likely to contain bugs based on recent changes, dependency relationships, and historical data. This preliminary identification allows the testing system to focus on the most promising areas for bug discovery, reducing the overall time to find and fix bugs while maintaining system reliability through targeted testing of critical components.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11416380B2Micro services tests prioritization
Publication Date: 2022.08.16 EMC IP HLDG CO LLC
  • US11416380B2 patent drawing
  • US11416380B2 patent drawing
  • US11416380B2 patent drawing

AI summary

One example method includes identifying a changed microservice whose code has been changed, mapping, for each microservice in a group of microservices that includes the changed microservice, microservice dependencies associated with the changed microservice, determining, for each microservice in the group, a relative risk that the microservice will be adversely affected by the change to the code of the changed microservice, and based on the respective relative risks, generating a test order indicating an order in which the microservices in the group will be tested.