Auto-intrusive Test Case Generation for Microservice Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Testing complex applications with microservices architecture is challenging due to difficulties in simulating service unavailability, handling invalid inputs, and detecting inter-service communication issues, which complicates the identification of faulty components and their remediation.

Innovation Solution

An automated system for generating both positive and negative test cases, including throttling scenarios, to simulate service failures and invalid inputs, allowing for comprehensive testing of applications across multiple services, with a test execution service that orchestrates these tests and provides detailed reports on successes and failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual testing methods are used for complex microservices applications, then testers can identify some issues, but the complexity of simulating service unavailability and inter-service communication issues makes comprehensive testing extremely difficult and time-consuming

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

Solution Approach 1:

The system performs preliminary analysis of service dependencies and communication patterns before executing tests. The test execution service pre-generates test cases based on service graphs and dependency models, preparing test data and scenarios in advance to reduce actual testing time while maintaining comprehensive coverage of reliability scenarios.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates virtual copies of services and their interaction patterns through service graphs and dependency models. Instead of manually orchestrating complex multi-service interactions, the test execution service generates and executes copied test scenarios that simulate various failure modes, significantly reducing testing time while maintaining thoroughness.

Inventive Principle:
Principle #26Copying

2Measurement precision

If comprehensive test coverage is achieved through manual test case creation, then more issues can be detected, but the complexity of identifying all faulty components and creating appropriate test scenarios increases dramatically

Engineering Contradiction:
Improvefault detection accuracyVSAvoidtesting system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The test execution service implements feedback loops where test results are automatically analyzed and used to refine service dependency models and generate additional test cases. This automated feedback mechanism improves fault detection accuracy by continuously learning from test outcomes without requiring manual intervention to create new test scenarios.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs self-service by automatically generating test cases, executing them, and analyzing results without manual intervention. The test execution service autonomously identifies faulty components through automated analysis of test outcomes and service dependency graphs, reducing the complexity burden on testers while maintaining high detection accuracy.

Inventive Principle:
Principle #25Self-service

3Productivity

If automated test execution is implemented without intelligent orchestration, then testing speed increases, but the ability to simulate realistic service failure scenarios and identify root causes decreases

Engineering Contradiction:
Improvetesting throughputVSAvoidroot cause identification accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The test execution service segments the testing process into distinct phases: service graph analysis, test case generation, execution, and root cause analysis. This segmentation allows automated high-speed execution while maintaining precise root cause identification through structured analysis of test results against service dependency models.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The service graph and dependency models act as intermediaries between automated test execution and root cause identification. The test execution service uses these models to translate raw test results into meaningful fault diagnoses, enabling both high productivity through automation and high precision in identifying root causes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11704229B1Auto-intrusive data pattern and test case generation for system validation
Publication Date: 2023.07.18 AMAZON TECH INC
  • US11704229B1 patent drawing
  • US11704229B1 patent drawing
  • US11704229B1 patent drawing

AI summary

Techniques for auto-intrusive data pattern and test case generation for negative service testing are described. A test engine obtains negative test information specifying negative test input examples or schemas associated with tests that are expected to fail. A test generator generates multiple test cases based on the negative test information. A test execution orchestrator splits each test case up into actions that are inserted into queues, where workflow execution agents perform the tests by reading from the queues and interacting with services. The tests may also include adjusting a rate of transactions allowed between top-level services and/or downstream services. Results from the testing are analyzed by a test analysis engine and used to inform the services or the test originator of test cases where the expected failures did not arise.