Chaos Engineering Test Automation for Fault Scenario Bug Discovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software testing systems fail to discover bugs, errors, and usability issues that occur in real-world scenarios due to disruptions or failures in the computing environment, as they are conducted under normal conditions, limiting the scope and breadth of fault scenarios and requiring manual, time-consuming test script creation and maintenance.
Innovation Solution
Automated software testing using chaos engineering, where a chaos engine generates fault scenarios, executes test scripts, and collects telemetry data to identify vulnerabilities, iteratively refining scenarios and scripts to simulate real-world disruptions, thereby enhancing the scope and efficiency of testing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If test scripts are executed under normal computing environment conditions, then testing efficiency is improved, but the ability to discover bugs and errors that occur during disruptions or failures is worsened
Solution Approach 1:
The system dynamically adjusts the computing environment by introducing controlled disruptions and failures during test script execution. The chaos engineering approach transforms static normal conditions into dynamic varying conditions, allowing the system to simulate real-world scenarios where disruptions occur, thereby maintaining testing efficiency while improving bug discovery capability
Solution Approach 2:
The system changes environmental parameters by introducing fault scenarios that modify computing environment conditions. By varying parameters such as system availability, response time, and error rates through controlled disruptions, the system enables discovery of bugs that only manifest under abnormal conditions while preserving the efficiency of automated test execution
2Reliability
If manual chaos engineering experiments are conducted, then vulnerability identification is improved, but testing time and resource consumption are worsened
Solution Approach 1:
The system implements self-service by automatically generating, executing, and analyzing chaos engineering experiments without requiring continuous manual intervention. The automated testing framework independently manages fault scenario creation, test script execution, and vulnerability identification, thereby improving vulnerability identification capability while significantly reducing the time and resources required compared to manual approaches
Solution Approach 2:
The system replaces manual mechanical processes with automated computational processes. Instead of manually designing and executing chaos experiments, the system uses automated test scripts and chaos engineering frameworks to simulate disruptions, collect telemetry data, and identify vulnerabilities, thereby maintaining high vulnerability identification effectiveness while reducing testing time and resource consumption
3Reliability
If the scope of fault scenarios is expanded to simulate real-world disruptions, then bug discovery capability is improved, but test script complexity and maintenance effort are worsened
Solution Approach 1:
The system applies universality by creating fault scenarios and test scripts that can handle multiple types of disruptions and failures through a unified framework. The chaos engineering approach uses generalizable patterns for introducing controlled disruptions (such as simulated failures, latency injections, and resource constraints) that can be applied across different software components and scenarios, thereby expanding bug discovery capability while avoiding the need for separate complex test scripts for each specific failure mode
Data Source
AI summary
Aspects of the disclosure include methods and systems for performing automated software testing using chaos engineering. An exemplary method can include obtaining a plurality of fault scenarios and executing a test script on software under test during application of each of the plurality of fault scenarios, wherein the test script simulates the execution of a function of the software under test. The method also includes recording, for each of the plurality of fault scenarios, telemetry data regarding the execution of the function of the software under test and identifying a vulnerability of the software under test based on the recorded telemetry data.


