Configurable Program Testing via Graph Traversal
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If comprehensive testing specifications are applied to detect all types of inefficiencies, then measurement precision improves, but device complexity increases
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.
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.
3Measurement precision
If multiple testing specifications are executed to detect various program attributes, then detection capability improves, but processing time increases
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.