Configurable Program Testing via Graph Traversal

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing testing systems for computer programs lack flexibility in customizing tests to specific organizational conventions and programming styles, failing to effectively identify inefficiencies and deviations from best practices that do not prevent the program from executing correctly.

Innovation Solution

A configurable testing system that processes computer programs by traversing a graph-based representation, recognizing program elements, storing attribute values, and performing user-defined tests based on these values, including local and global tests, to identify inefficiencies and deviations from conventions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional testing systems are used to ensure program execution correctness, then program reliability is maintained, but the system cannot detect inefficiencies and deviations from organizational conventions

Engineering Contradiction:
Improvedetection capabilityVSAvoidtesting flexibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The testing system is segmented into multiple independent testing specifications that can be selectively activated. Each testing specification targets specific program attributes (e.g., code reuse efficiency, memory use constraints, operation frequency), allowing the system to detect various types of issues without requiring a monolithic testing framework.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The testing system dynamically adapts to different organizational conventions and programming styles through configurable testing specifications. The system can be customized to detect efficiency issues, convention deviations, and other attributes that do not prevent execution but indicate undesirable conditions, making it versatile across different development contexts.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If comprehensive testing specifications are applied to detect all types of inefficiencies, then measurement precision improves, but device complexity increases

Engineering Contradiction:
Improvetesting accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The testing system employs a universal framework that handles multiple testing objectives through a common architecture. The configurable testing module can apply different testing specifications (local tests, global tests, efficiency tests, convention tests) through the same underlying mechanism, reducing complexity while maintaining comprehensive detection capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system manages complexity by allowing parameter changes in testing specifications rather than creating separate testing systems for each attribute. Testing specifications can be configured to monitor different program attributes (code reuse, memory usage, operation frequency) by adjusting parameters within the same testing framework.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If multiple testing specifications are executed to detect various program attributes, then detection capability improves, but processing time increases

Engineering Contradiction:
Improveissue detection accuracyVSAvoidtesting duration
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system allows selective activation of testing specifications based on needs. Not all testing specifications must be executed for every program - users can activate only those relevant to current concerns (e.g., only code reuse tests or only memory constraint tests), reducing processing time while maintaining detection accuracy for specific attributes.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system performs preliminary analysis to identify which testing specifications are most relevant to the current program context. By pre-configuring activation information and using hierarchical testing specifications, the system can prepare and prioritize tests before full execution, reducing overall processing time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2941705B1Configurable testing of computer programs
Publication Date: 2023.02.22 AB INITIO TECHNOLOGY LLC
  • EP2941705B1 patent drawingFigure 1
  • EP2941705B1 patent drawingFigure 2
  • EP2941705B1 patent drawingFigure 3

AI summary

Configurable testing of a computer program includes: storing a set (346) of one or more testing specifications, and attribute information (352) defining one or more attributes of a recognizable portion of the computer program; and processing, using at least one processor, the computer program according to at least a first testing specification (347) associated with the computer program. The processing includes: traversing a representation (200) of the computer program that includes elements that represent recognizable portions of the computer program, and while traversing the representation, recognizing recognizable portions of the computer program, and storing values of attributes, defined by the attribute information, of the recognized portions of the computer program.