IP Library Granted Patent US 12,353,315
Granted Patent B2
US 12,353,315 · App. 17/745,494 · Granted Jul 8, 2025

Rule based automation

Inventor: Sowmya Pissay Krupashankar (Bangalore, IN)
Assignee: FAIR ISAAC CORPORATION
G06F11/3604G06F8/73G06F11/3684
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,353,315
App. No.
17/745,494
Granted
Jul 8, 2025
Kind
B2
Abstract

Software validation systems, products, and methods for determining a plurality of test scenarios for a software code under test. The test scenarios may be defined based on at least one of 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. At least two or more test scenarios, from among the plurality of test scenarios, are consolidated into a first test scenario based on values defined in a modifiable script.

Claims (67)

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.

2. The software validation system of claim 1 , wherein the script sequence is implemented in at least one of: JavaScript Object Notation (JSON) format or comma-separated values (CSV) format.

3. The software validation system of claim 1 , wherein the script sequence is expressed external to the execution of the software code so that the values assigned to the one or more variables declared in the software code are editable eliminating a need for editing the plurality of test scenarios.

4. The software validation system of claim 1 , further comprising validating the consolidated scenario, wherein the validating eliminates a need for validating at least two or more test scenarios of the plurality of test scenarios.

5. The software validation system of claim 1 , wherein a particular variable of the one or more variables relates to a user permission relating to a software application, wherein a particular value assigned to the particular variable indicates whether a user is allowed to access or modify a state of the software application.

6. The software validation system of claim 5 , wherein the particular variable of the one or more variables is view, create, edit, assign, delete or update.

7. The software validation system of claim 1 , wherein the rule verifies whether t a user permission is enabled for a role assigned to a user.

8. The software validation system of claim 7 , wherein the rule verifies whether the user permission is enabled by accessing a computer-based list of roles and associated user permissions.

9. The software validation system of claim 1 , wherein the rule is a first rule, wherein the assertion of the rule is a first assertion, and further comprising generating a second rule associated with at least one first natural language text construct of the sequence, wherein the second rule verifies a first value assigned to a variable declared in the software code; generating a second assertion of the second rule, wherein the second assertion is a second natural language text construct of the programming language, wherein the second assertion is evaluated only if the first assertion is evaluated as successful.

10. A system comprising:

at least one programmable processor; and

a non-transitory machine-readable medium storing instructions that, when executed by the at least one programmable processor, cause the at least one programmable processor to perform 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.

11. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform 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 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2022
From: KRUPASHANKAR, SOWMYA PISSAY
To: FAIR ISAAC CORPORATION
Reel/Frame 061284/0786 →
Continuity (1)
Related Publication 20230367693A1 · Nov 16, 2023
References Cited (27)
US 6681243B1 · Putzolu · 2004 [cited by examiner]
US 10430319B1 · Tokappa · 2019 [cited by examiner]
US 10810110B1 · Thomas · 2020 [cited by examiner]
US 11086765B2 · Mukherjee · 2021 [cited by examiner]
US 20090300711A1 · Tokutani · 2009 [cited by examiner]
US 20120131392A1 · Bendig · 2012 [cited by examiner]
US 20150199228A1 · Pike · 2015 [cited by examiner]
US 20180011780A1 · Aggarwal · 2018 [cited by examiner]
US 20180217920A1 · Bhojan · 2018 [cited by examiner]
US 20190213355A1 · Raviv · 2019 [cited by examiner]
US 20190370160A1 · Raman · 2019 [cited by examiner]
US 20200104241A1 · Talukdar · 2020 [cited by examiner]
US 20200174917A1 · Patel · 2020 [cited by examiner]
US 20220147438A1 · Gadagi · 2022 [cited by examiner]
US 20220283931A1 · Vardi · 2022 [cited by examiner]
US 20230085946A1 · Nolan · 2023 [cited by examiner]
Anonymous, “Gherkin Reference” 2020 [downloaded on Jun. 14, 2023], pp. 1-19, downloaded from <url>:https://web.archive.org/web/20201209084416/https://cucumber.io/docs/gherkin/reference. (Year: 2020). [cited by examiner]
Lakshay Sharma et al., “Data Driven Testing using JSON with Cucumber,” 2021 [retrieved on Jun. 14, 2023], pp. 1-27, downloaded from <url>:https://toolsqa.com/selenium-cucumber-framework/data-driven-testing-using-json-wi… [cited by examiner]
Anonymous, “10 Minute Tutorial,” 2020 [retrieved on Jun. 14, 2023], pp. 1-22, downloaded from <url>:https://web.archive.org/web/20201227101326/https://cucumber.io/docs/guides/10-minute-tutorial. (Year: 2020). [cited by examiner]
Anonymous, “TestNG,” 2020 [retrieved on Jun. 14, 2023], pp. 1-27, downloaded from <url>:https://web.archive.org/web/20200416204658/https://testng.org/doc/documentation-main.html#annotations. (Year: 2020). [cited by examiner]
Anonymous, “Cucumber Reference,” 2020 [retrieved on Jun. 14, 23], pp. 1-23, downloaded from <url>:https://web.archive.org/web/20201127114014/https://cucumber.io/docs/cucumber/api/ (Year: 2020). [cited by examiner]
Anonymous, “Step Definitions,” Sep. 19, 2020 [retrieved on Feb. 24, 2024], p. 1, downloaded from <url>:https://web.archive.org/web/20200919115416/http://cucumber.io/docs/cucumber/step-definitions. (Year: 2020). [cited by examiner]
Florian-Pascal Hild, “Exploring Behavioral Driven Development,” 2019 [retrieved Apr. 1, 2025], pp. 1-56, downloaded from <url>:https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1330189&dswid=1233. (Year: 2019). [cited by examiner]
Magnus Harlin, “Testing and Gherkin in agile projects,” 2016 [retrieved Apr. 1, 2025], pp. 1-61, downloaded from <url>:https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A908749&dswid=5549. (Year: 2016). [cited by examiner]
Jason Tong et al., “Test compaction techniques for assertion-based test generation,” 2013 [retrieved Apr. 1, 2025], ACM Transactions on Design Automation of Electronic Systems, vol. 19, Issue 1, pp. 1-29, downloaded fro… [cited by examiner]
Mathias Landhäußer et al., “Connecting User Stories and code for test development,” 2012 [retrieved Apr. 1, 2025], Third International Workshop on Recommendation Systems for Software Engineering, pp. 33-37, downloaded f… [cited by examiner]
Noriaki Ichida et al., “A Method of Making Single Function Tests for Constituting Scenario Tests,” 2013 [retrieved Apr. 1, 2025], IEEE Sixth International Conference on Software Testing, Verification and Validation, pp.… [cited by examiner]