Automated Error Code Injection for Software Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional testing methods for software and mainframe systems are inefficient in injecting errors and controlling timing conditions, leading to inadequate testing of recovery steps and timing-related issues, as they rely on natural occurrence of errors which may not happen frequently enough before product delivery.
Innovation Solution
A method and system for injecting error codes and wait commands into executing code to identify and control critical points, allowing for automated and repeatable testing of response actions and timing conditions, decoupling from code levels and offsets for universal applicability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional testing methods rely on natural occurrence of errors, then the system operates with simple testing procedures, but the testing efficiency and reliability are insufficient because errors may not occur frequently enough before product delivery
Solution Approach 1:
The system performs preliminary analysis to identify critical points in the code where errors are most likely to occur or have the most significant impact. By pre-determining these critical points before actual testing, the system can then efficiently inject errors at these specific locations, ensuring that testing is both reliable (testing the right things) and efficient (not wasting time on non-critical areas).
Solution Approach 2:
The system introduces an intermediary error injection mechanism that acts as a mediator between the tester and the system under test. This intermediary component enables controlled error injection at critical points, allowing testers to reliably reproduce error conditions without depending on natural error occurrences, thereby improving both testing reliability and efficiency.
2Productivity
If error injection is implemented manually without automation, then the implementation is simpler, but the testing process cannot be efficiently repeated and controlled
Solution Approach 1:
The system implements self-service automation where the error injection mechanism automatically identifies critical points, determines appropriate error types to inject, and executes the injection process without requiring manual intervention for each test case. The system serves itself by maintaining a repository of critical points and automatically selecting and injecting appropriate errors based on test requirements, thereby enabling efficient repetition and control of testing while managing complexity through automation.
3Reliability
If testing depends on timing conditions occurring naturally, then the testing setup is simpler, but timing-related issues cannot be adequately tested
Solution Approach 1:
The system performs preliminary identification of timing-critical points in the code during the analysis phase. By pre-determining where timing conditions are critical before actual testing, the system can then inject wait commands at these specific locations to control timing conditions, ensuring adequate testing of timing-related issues while maintaining ease of operation through automated control.
Solution Approach 2:
The system introduces wait command injection as an intermediary mechanism to control timing conditions. This mediator allows testers to introduce controlled delays at critical points without depending on natural timing variations, enabling reliable testing of timing-related issues while maintaining ease of operation through automated command injection.
Data Source
AI summary
In various embodiments, a method, system, and computer program product for injecting error code include logic and/or program instructions configured to determine, by a local processor, critical points in executing code of software under test on a remote system, build, by the local processor, a testcase to invoke the software under test on the remote system, determine, by the local processor, an appropriate response action for each critical point based on an error encountered at each critical point as reported by a remote processor of the remote system, cause, by the local processor, the remote processor to inject a critical point segment into the executing code at a corresponding critical point, and receive, by the local processor, a unique identifier of each critical point segment output by the remote processor in response to injecting the critical point segment into the executing code.


