Fault Injection Prioritization via Application Characteristic Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing chaos testing methods rely on arbitrary or subjective fault injection, failing to consider unique application characteristics, leading to sub-optimal test coverage and inadequate resilience testing due to the immense chaos-test space and irrelevant faults.
Innovation Solution
Perform offline application analysis to identify component characteristics, generate fault-service pairs with absolute outcomes, and prioritize faults using machine learning to focus on likely faults, optimizing test coverage and ensuring critical components are thoroughly tested.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If arbitrary or subjective fault injection is used, then chaos testing can be performed, but test coverage is sub-optimal and resilience testing is inadequate
Solution Approach 1:
The system performs offline application analysis before actual fault injection to identify component characteristics, critical services, and suitable faults. This preliminary profiling enables informed fault selection during testing, improving both reliability of resilience testing and productivity of test coverage without requiring arbitrary fault choices
Solution Approach 2:
The system changes the approach from arbitrary fault selection to parameter-driven fault selection by analyzing application characteristics such as resource usage patterns, service criticality, and component dependencies. These parameters are used to objectively determine which faults to inject, resolving the contradiction between testing quality and efficiency
2Reliability
If comprehensive fault injection is performed to ensure thorough testing, then test coverage improves, but the number of test cases increases significantly
Solution Approach 1:
Instead of uniformly testing all possible faults, the system applies local quality by tailoring fault selection to specific component characteristics. Each service is analyzed individually to identify its critical resources and likely failure modes, resulting in targeted fault injection that reduces the overall number of test cases while maintaining comprehensive coverage of critical paths
Solution Approach 2:
The system uses partial action by focusing fault injection on the most critical services and most likely faults identified through offline analysis. Rather than exhaustively testing all possible faults, the system selectively tests a curated subset that provides sufficient coverage for resilience validation, reducing test case quantity while maintaining adequate reliability testing
3Productivity
If offline application analysis and machine learning prioritization are performed, then fault selection is optimized, but analysis time and computational resources increase
Solution Approach 1:
The system performs the time-consuming offline application analysis and machine learning model training during development or deployment windows rather than during operational testing. This preliminary action captures application characteristics and builds prioritization models in advance, enabling rapid fault selection during actual chaos testing without significantly impacting testing throughput
Data Source
AI summary
A method for fault injection optimizations is presented including performing offline application analysis to identify different characteristics of various components of an application, determining faults that are suitable for each component by profiling resource characteristics, analyzing an application topology to identify critical services that are essential to an overall functioning of the application, generating fault-service pairs that have an absolute outcome, assigning priorities to the fault-service pairs, by machine learning, to prioritize which of the faults are injected into the application, and injecting the prioritized faults into the application to induce chaos to the application during controlled testing experiments.


