Automated Error Code Injection for Software Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetesting reliabilityVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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).

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If error injection is implemented manually without automation, then the implementation is simpler, but the testing process cannot be efficiently repeated and controlled

Engineering Contradiction:
Improvetesting automation capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

3Reliability

If testing depends on timing conditions occurring naturally, then the testing setup is simpler, but timing-related issues cannot be adequately tested

Engineering Contradiction:
Improvetiming condition testingVSAvoidtesting control
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10229037B2System, method, and computer program product for error code injection
Publication Date: 2019.03.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10229037B2 patent drawing
  • US10229037B2 patent drawing
  • US10229037B2 patent drawing

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.