CPC G06F 11/3608 (2013.01) [G06F 8/71 (2013.01)] | 18 Claims |
1. A system for adaptively generating a program model, comprising:
one or more processors; and
memory operatively coupled to the one or more processors, the memory comprising instructions that, when executed by the one or more processors, cause the one or more processors to:
receive source code of a program to be tested for code issues;
receive a set of predefined patterns to be tested in the source code;
generate feature configuration data by determining a set of features corresponding to the received set of predefined patterns;
identify a set of program models by selecting, for each feature in the set of features, one or more program models from a plurality of program models that are needed to evaluate the feature;
build a dynamic program model based on the identified set of program models, wherein the dynamic program model is adapted to resolve each of the patterns included in the received set of predefined patterns; and
test the source code for code issues by extracting from the dynamic program model instances of each of the set of predefined patterns,
wherein the instructions that cause the one or more processors to identify the set of program models comprise instructions that, when executed by the one or more processors, cause the one or more processors to:
receive model lookup data indicating predefined relationships between a plurality of features and respective program models that are optimized to satisfy the plurality of features;
perform, for each feature in the set of features, a model lookup operation using the received model lookup data to identify a corresponding program model that is optimized for satisfying the feature; and
identify the set of program models based on the model lookup operation performed for each feature in the set of features.
|