US 12,353,315 B2
Rule based automation
Sowmya Pissay Krupashankar, Bangalore (IN)
Assigned to FAIR ISAAC CORPORATION, Minneapolis, MN (US)
Filed by FAIR ISAAC CORPORATION, Roseville, MN (US)
Filed on May 16, 2022, as Appl. No. 17/745,494.
Prior Publication US 2023/0367693 A1, Nov. 16, 2023
Int. Cl. G06F 11/3604 (2025.01); G06F 8/73 (2018.01); G06F 11/3668 (2025.01)
CPC G06F 11/3604 (2013.01) [G06F 8/73 (2013.01); G06F 11/3684 (2013.01)] 11 Claims
OG exemplary drawing
 
1. A software validation system comprising one or more processors in communication with one or more non-transitory data storage mediums in which software instructions are stored, the one or more processors configured to execute operations comprising:
determining a plurality of test scenarios for a software code under test, a test scenario of the plurality of test scenarios comprising a script sequence of natural language text constructs of a programming language, wherein one or more natural language text constructs of the script sequence are configured to evaluate:
values assigned to one or more variables declared in the software code,
relationships defined between the one or more variables, and
execution paths leading to one or more outcomes based on the values and the relationships, in response to the software code being executed;
documenting the software code by utilizing a behavior-driven development (BDD) approach;
generating a rule associated with at least one natural language text construct of the one or more natural language text constructs, wherein the rule verifies a value assigned to a variable of the one or more variables declared in the software code or verifies one or more of the relationships defined between the one or more variables;
generating an assertion of the rule, wherein the assertion is the at least one natural language text construct, wherein the assertion is configured to cause a software code operation responsive to the value assigned to the variable of the one or more variables or the one or more relationships, wherein the assertion is configured to be evaluated as successful if the software code operation matches an expected software code operation, and wherein the assertion is configured to be evaluated as a failure if the software code operation does not match the expected software code operation; and
consolidating, based on the assertion, at least a first test scenario and a second test scenario to form a consolidated test scenario, wherein the consolidated test scenario is executed to produce a result of each of the at least the first test scenario and the second test scenario, depending on the values assigned to the one or more variables, the consolidating comprising:
identifying a first natural language text construct in the first test scenario and a second natural language text construct in the second test scenario,
wherein the first natural language text construct is configured to execute a first software code operation associated with the rule,
wherein the second natural language text construct is configured to execute a second software code operation associated with the rule, and
wherein the second software code operation comprises not performing the first software code operation and skipping execution of at least one subsequent natural language text construct;
inserting the assertion into the consolidated test scenario; and
inserting a conditional natural language text construct into the consolidated test scenario after the assertion, wherein evaluating the conditional natural language text construct causes execution of either the first software code operation or the second software code operation; and
generating an electronic execution report,
wherein the electronic execution report is configured to provide a result of an execution of at least one consolidated natural language text construct of the consolidated test scenario,
wherein the execution report is configured to provide a successful result if the first software code operation is executed successfully, and
wherein the execution report is configured to provide a skip result if the second software code operation is executed successfully.