IP Library › Granted Patent US 12,332,766
Granted Patent B2
US 12,332,766 · App. 18/187,439 · Granted Jun 17, 2025

Defining feature variable configurations that enable access to features of a system

Inventor: Gang Shu (San Francisco, CA)
G06F11/3608G06F11/3668G06F11/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,332,766
App. No.
18/187,439
Granted
Jun 17, 2025
Kind
B2
Abstract

A method and system for defining feature variable configurations in a system defined by a codebase has been developed. The codebase is executed over a set of test cases to test the software feature behaviors of a software feature. Feature variable configurations including feature variables generated by the test cases are logged. Associations between the feature variables and individual software feature behaviors are identified based on the logged feature variable configurations. Impact scores for the feature variables associated with individual software feature behaviors are calculated based on an occurrence of the associations between the feature variables and individual software feature behaviors. Deterministic feature variables are identified for individual software feature behaviors based on the calculated impact scores. At least one common feature variable is operable to enable access to the software feature in the system is identified from the deterministic features variables associated with the individual of software feature behaviors.

Claims (49)

1. A method for defining feature variable configurations in a system defined by a codebase, the method comprising:

executing the codebase over a set of test cases configured to test a first plurality of software feature behaviors of a first software feature;

logging feature variable configurations generated by the test cases, the feature variable configurations comprising feature variables;

identifying associations between the feature variables and individual software feature behaviors of the first plurality of software feature behaviors based on the logged feature variable configurations;

calculating impact scores for the feature variables in association with the corresponding individual software feature behavior based on an occurrence of the identified associations between the feature variables and the individual software feature behaviors;

identifying at least one deterministic feature variable for association with the corresponding individual software feature behaviors of the first plurality of software feature behaviors based on the calculated impact scores for the feature variables associated with the corresponding individual software feature behaviors;

identifying at least one common feature variable from the at least one deterministic feature variable associated with the corresponding individual software feature behaviors of the first plurality of software feature behaviors, the at least one common feature variable being operable to enable access to the first software feature in the system; and

updating at least one platform license definition including the first software feature to define the at least one common feature variable as enabling access to the first software feature.

2. The method of claim 1 , further comprising updating at least one platform license definition including the first software feature to define the at least one deterministic feature variable associated with a first software feature behavior of the first plurality of software behaviors as enabling access to the first software feature behavior.

3. The method of claim 1 , wherein logging the feature variable configurations generated by the plurality of test cases comprises logging flow relationships between the feature variables.

4. The method of claim 3 , further comprising generating a system graph defining boundaries for a plurality of software features of the system, the plurality of software features including the first software feature, wherein a first boundary for the first software feature in the system graph is defined by the at least one deterministic variable associated with the first plurality of software feature behaviors and the flow relationships between the at least one deterministic variable.

5. The method of claim 1 , further comprising:

committing at least one code change to the codebase; and

executing the codebase including the at least one code change over the set of test cases.

6. The method of claim 1 , wherein the method is incorporated into a continuous integration/continuous deployment (CI/CD) pipeline.

7. The method of claim 1 , wherein calculating impact scores for the feature variables in association with the corresponding individual software feature behavior based on an occurrence of the identified associations between the feature variables and the individual software feature behaviors comprises calculating a first impact score for a first feature variable in association with a first software feature behavior using one of a statistical probability model, a linear regression model, and a percentage model.

8. A system for defining feature variable configurations in a system defined by a codebase, the system comprising:

at least one processor; and

at least one non-transitory machine-readable storage medium that stores instructions configurable to be executed by the at least one processor to:

execute the codebase over a set of test cases configured to test a first plurality of software feature behaviors of a first software feature;

log feature variable configurations generated by the test cases, the feature variable configurations comprising feature variables;

identify associations between the feature variables and individual software feature behaviors of the first plurality of software feature behaviors based on the logged feature variable configurations;

calculate impact scores for the feature variables in association with the corresponding individual software feature behavior based on an occurrence of the identified associations between the feature variables and the individual software feature behaviors;

identify at least one deterministic feature variable for association with the corresponding individual software feature behaviors of the first plurality of software feature behaviors based on the calculated impact scores for the feature variables associated with the corresponding individual software feature behaviors;

identify at least one common feature variable from the at least one deterministic feature variable associated with the corresponding individual software feature behaviors of the first plurality of software feature behaviors, the at least one common feature variable being operable to enable access to the first software feature in the system; and

update at least one platform license definition including the first software feature to define the at least one common feature variable as enabling access to the first software feature.

9. The system of claim 8 , wherein the instructions are configurable to be executed by the at least one processor to: update the at least one platform license definition including the first software feature to define the at least one deterministic feature variable associated with a first software feature behavior of the first plurality of software behaviors as enabling access to the first software feature behavior.

10. The system of claim 8 , wherein the instructions are configurable to be executed by the at least one processor to log the feature variable configurations generated by the plurality of test cases, the feature variable configurations comprising flow relationships between the feature variables.

11. The system of claim 10 , wherein the instructions are configurable to be executed by the at least one processor to generate a system graph defining boundaries for a plurality of software features of the system, the plurality of software features including the first software feature, wherein a first boundary for the first software feature in the system graph is defined by the at least one deterministic variable associated with the first plurality of software feature behaviors and the flow relationships between the at least one deterministic variable.

12. The system of claim 8 , wherein the instructions are configurable to be executed by the at least one processor to:

commit at least one code change to the codebase; and

execute the codebase including the at least one code change over the set of test cases.

13. The system of claim 8 , wherein the instructions are configurable to be executed by the at least one processor to calculate impact scores for the feature variables in association with the corresponding individual software feature behavior based on an occurrence of the identified associations between the feature variables and the individual software feature behaviors comprises calculating a first impact score for a first feature variable in association with a first software feature behavior using one of a statistical probability model, a linear regression model, and a percentage model.

14. A non-transitory machine-readable storage medium that stores instructions executable by at least one processor, the instructions configurable to cause the at least one processor to perform operations comprising:

executing the codebase over a set of test cases configured to test a first plurality of software feature behaviors of a first software feature;

logging feature variable configurations generated by the test cases, the feature variable configurations comprising feature variables;

identifying associations between the feature variables and individual software feature behaviors of the first plurality of software feature behaviors based on the logged feature variable configurations;

calculating impact scores for the feature variables in association with the corresponding individual software feature behavior based on an occurrence of the identified associations between the feature variables and the individual software feature behaviors;

identifying at least one deterministic feature variable for association with the corresponding individual software feature behaviors of the first plurality of software feature behaviors based on the calculated impact scores for the feature variables associated with the corresponding individual software feature behaviors;

identifying at least one common feature variable from the at least one deterministic feature variable associated with the corresponding individual software feature behaviors of the first plurality of software feature behaviors, the at least one common feature variable being operable to enable access to the first software feature in the system; and

updating at least one platform license definition including the first software feature to define the at least one common feature variable as enabling access to the first software feature.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are configurable to cause the at least one processor to further perform operations comprising:

updating the at least one platform license definition including the first software feature to define the at least one deterministic feature variable associated with a first software feature behavior of the first plurality of software behaviors as enabling access to the first software feature behavior.

16. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are configurable to cause the at least one processor to further perform operations comprising logging the feature variable configurations generated by the plurality of test cases, the feature variable configurations comprising flow relationships between the feature variables.

17. The non-transitory machine-readable storage medium of claim 16 , wherein the instructions are configurable to cause the at least one processor to further perform operations comprising generating a system graph defining boundaries for a plurality of software features of the system, the plurality of software features including the first software feature, wherein a first boundary for the first software feature in the system graph is defined by the at least one deterministic variable associated with the first plurality of software feature behaviors and the flow relationships between the at least one deterministic variable.

18. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are configurable to cause the at least one processor to further perform operations comprising:

committing at least one code change to the codebase; and

executing the codebase including the at least one code change over the set of test cases.

19. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are configurable to cause the at least one processor to further perform operations comprising calculating impact scores for the feature variables in association with the corresponding individual software feature behavior based on an occurrence of the identified associations between the feature variables and the individual software feature behaviors comprises calculating a first impact score for a first feature variable in association with a first software feature behavior using one of a statistical probability model, a linear regression model, and a percentage model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2024
From: SHU, GANG
To: SALESFORCE, INC.
Reel/Frame 068347/0508 →
Continuity (1)
Related Publication 20240320126A1 · Sep 26, 2024
References Cited (161)
US 5577188A · Zhu · 1996 [cited by applicant]
US 5608872A · Schwartz et al. · 1997 [cited by applicant]
US 5649104A · Carleton et al. · 1997 [cited by applicant]
US 5715450A · Ambrose et al. · 1998 [cited by applicant]
US 5761419A · Schwartz et al. · 1998 [cited by applicant]
US 5819038A · Carleton et al. · 1998 [cited by applicant]
US 5821937A · Tonelli et al. · 1998 [cited by applicant]
US 5831610A · Tonelli et al. · 1998 [cited by applicant]
US 5873096A · Lim et al. · 1999 [cited by applicant]
US 5918159A · Fomukong et al. · 1999 [cited by applicant]
US 5963953A · Cram et al. · 1999 [cited by applicant]
US 6092083A · Brodersen et al. · 2000 [cited by applicant]
US 6161149A · Achacoso et al. · 2000 [cited by applicant]
US 6169534B1 · Raffel et al. · 2001 [cited by applicant]
US 6178425B1 · Brodersen et al. · 2001 [cited by applicant]
US 6189011B1 · Lim et al. · 2001 [cited by applicant]
US 6216135B1 · Brodersen et al. · 2001 [cited by applicant]
US 6233617B1 · Rothwein et al. · 2001 [cited by applicant]
US 6266669B1 · Brodersen et al. · 2001 [cited by applicant]
US 6295530B1 · Ritchie et al. · 2001 [cited by applicant]
US 6324568B1 · Diec et al. · 2001 [cited by applicant]
US 6324693B1 · Brodersen et al. · 2001 [cited by applicant]
US 6336137B1 · Lee et al. · 2002 [cited by applicant]
US D454139S · Feldcamp et al. · 2002 [cited by applicant]
US 6367077B1 · Brodersen et al. · 2002 [cited by applicant]
US 6393605B1 · Loomans · 2002 [cited by applicant]
US 6405220B1 · Brodersen et al. · 2002 [cited by applicant]
US 6434550B1 · Warner et al. · 2002 [cited by applicant]
US 6446089B1 · Brodersen et al. · 2002 [cited by applicant]
US 6535909B1 · Rust · 2003 [cited by applicant]
US 6549908B1 · Loomans · 2003 [cited by applicant]
US 6553563B2 · Ambrose et al. · 2003 [cited by applicant]
US 6560461B1 · Fomukong et al. · 2003 [cited by applicant]
US 6574635B2 · Stauber et al. · 2003 [cited by applicant]
US 6577726B1 · Huang et al. · 2003 [cited by applicant]
US 6601087B1 · Zhu et al. · 2003 [cited by applicant]
US 6604117B2 · Lim et al. · 2003 [cited by applicant]
US 6604128B2 · Diec · 2003 [cited by applicant]
US 6609150B2 · Lee et al. · 2003 [cited by applicant]
US 6621834B1 · Scherpbier et al. · 2003 [cited by applicant]
US 6654032B1 · Zhu et al. · 2003 [cited by applicant]
US 6665648B2 · Brodersen et al. · 2003 [cited by applicant]
US 6665655B1 · Warner et al. · 2003 [cited by applicant]
US 6684438B2 · Brodersen et al. · 2004 [cited by applicant]
US 6711565B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6724399B1 · Katchour et al. · 2004 [cited by applicant]
US 6728702B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6728960B1 · Loomans et al. · 2004 [cited by applicant]
US 6732095B1 · Warshavsky et al. · 2004 [cited by applicant]
US 6732100B1 · Brodersen et al. · 2004 [cited by applicant]
US 6732111B2 · Brodersen et al. · 2004 [cited by applicant]
US 6754681B2 · Brodersen et al. · 2004 [cited by applicant]
US 6763351B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6763501B1 · Zhu et al. · 2004 [cited by applicant]
US 6768904B2 · Kim · 2004 [cited by applicant]
US 6772229B1 · Achacoso et al. · 2004 [cited by applicant]
US 6782383B2 · Subramaniam et al. · 2004 [cited by applicant]
US 6804330B1 · Jones et al. · 2004 [cited by applicant]
US 6826565B2 · Ritchie et al. · 2004 [cited by applicant]
US 6826582B1 · Chatterjee et al. · 2004 [cited by applicant]
US 6826745B2 · Coker · 2004 [cited by applicant]
US 6829655B1 · Huang et al. · 2004 [cited by applicant]
US 6842748B1 · Warner et al. · 2005 [cited by applicant]
US 6850895B2 · Brodersen et al. · 2005 [cited by applicant]
US 6850949B2 · Warner et al. · 2005 [cited by applicant]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7069231B1 · Cinarkaya et al. · 2006 [cited by applicant]
US 7181758B1 · Chan · 2007 [cited by applicant]
US 7289976B2 · Kihneman et al. · 2007 [cited by applicant]
US 7340411B2 · Cook · 2008 [cited by applicant]
US 7356482B2 · Frankland et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7412455B2 · Dillon · 2008 [cited by applicant]
US 7508789B2 · Chan · 2009 [cited by applicant]
US 7620655B2 · Larsson et al. · 2009 [cited by applicant]
US 7698160B2 · Beaven et al. · 2010 [cited by applicant]
US 7730478B2 · Weissman · 2010 [cited by applicant]
US 7779475B2 · Jakobson et al. · 2010 [cited by applicant]
US 8014943B2 · Jakobson · 2011 [cited by applicant]
US 8015495B2 · Achacoso et al. · 2011 [cited by applicant]
US 8032297B2 · Jakobson · 2011 [cited by applicant]
US 8082301B2 · Ahlgren et al. · 2011 [cited by applicant]
US 8095413B1 · Beaven · 2012 [cited by applicant]
US 8095594B2 · Beaven et al. · 2012 [cited by applicant]
US 8209308B2 · Rueben et al. · 2012 [cited by applicant]
US 8275836B2 · Beaven et al. · 2012 [cited by applicant]
US 8457545B2 · Chan · 2013 [cited by applicant]
US 8484111B2 · Frankland et al. · 2013 [cited by applicant]
US 8490025B2 · Jakobson et al. · 2013 [cited by applicant]
US 8504945B2 · Jakobson et al. · 2013 [cited by applicant]
US 8510045B2 · Rueben et al. · 2013 [cited by applicant]
US 8510664B2 · Rueben et al. · 2013 [cited by applicant]
US 8566301B2 · Rueben et al. · 2013 [cited by applicant]
US 8646103B2 · Jakobson et al. · 2014 [cited by applicant]
US 10454706B2 · Six · 2019 [cited by examiner]
US 20010044791A1 · Richter et al. · 2001 [cited by applicant]
US 20020072951A1 · Lee et al. · 2002 [cited by applicant]
US 20020082892A1 · Raffel · 2002 [cited by applicant]
US 20020129352A1 · Brodersen et al. · 2002 [cited by applicant]
US 20020140731A1 · Subramanian et al. · 2002 [cited by applicant]
US 20020143997A1 · Huang et al. · 2002 [cited by applicant]
US 20020162090A1 · Parnell et al. · 2002 [cited by applicant]
US 20020165742A1 · Robbins · 2002 [cited by applicant]
US 20030004971A1 · Gong · 2003 [cited by applicant]
US 20030018705A1 · Chen et al. · 2003 [cited by applicant]
US 20030018830A1 · Chen et al. · 2003 [cited by applicant]
US 20030066031A1 · Laane et al. · 2003 [cited by applicant]
US 20030066032A1 · Ramachandran et al. · 2003 [cited by applicant]
US 20030069936A1 · Warner et al. · 2003 [cited by applicant]
US 20030070000A1 · Coker et al. · 2003 [cited by applicant]
US 20030070004A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030070005A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030074418A1 · Coker et al. · 2003 [cited by applicant]
US 20030120675A1 · Stauber et al. · 2003 [cited by applicant]
US 20030151633A1 · George et al. · 2003 [cited by applicant]
US 20030159136A1 · Huang et al. · 2003 [cited by applicant]
US 20030187921A1 · Diec et al. · 2003 [cited by applicant]
US 20030189600A1 · Gune et al. · 2003 [cited by applicant]
US 20030204427A1 · Gune et al. · 2003 [cited by applicant]
US 20030206192A1 · Chen et al. · 2003 [cited by applicant]
US 20030225730A1 · Warner et al. · 2003 [cited by applicant]
US 20040001092A1 · Rothwein et al. · 2004 [cited by applicant]
US 20040010489A1 · Rio et al. · 2004 [cited by applicant]
US 20040015981A1 · Coker et al. · 2004 [cited by applicant]
US 20040027388A1 · Berg et al. · 2004 [cited by applicant]
US 20040128001A1 · Levin et al. · 2004 [cited by applicant]
US 20040186860A1 · Lee et al. · 2004 [cited by applicant]
US 20040193510A1 · Catahan et al. · 2004 [cited by applicant]
US 20040199489A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199536A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199543A1 · Braud et al. · 2004 [cited by applicant]
US 20040249854A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040260534A1 · Pak et al. · 2004 [cited by applicant]
US 20040260659A1 · Chan et al. · 2004 [cited by applicant]
US 20040268299A1 · Lei et al. · 2004 [cited by applicant]
US 20050050555A1 · Exley et al. · 2005 [cited by applicant]
US 20050091098A1 · Brodersen et al. · 2005 [cited by applicant]
US 20060021019A1 · Hinton et al. · 2006 [cited by applicant]
US 20080249972A1 · Dillon · 2008 [cited by applicant]
US 20090063414A1 · White et al. · 2009 [cited by applicant]
US 20090100342A1 · Jakobson · 2009 [cited by applicant]
US 20090177744A1 · Marlow et al. · 2009 [cited by applicant]
US 20110247051A1 · Bulumulla et al. · 2011 [cited by applicant]
US 20120042218A1 · Cinarkaya et al. · 2012 [cited by applicant]
US 20120218958A1 · Rangaiah · 2012 [cited by applicant]
US 20120233137A1 · Jakobson et al. · 2012 [cited by applicant]
US 20130212497A1 · Zelenko et al. · 2013 [cited by applicant]
US 20130218948A1 · Jakobson · 2013 [cited by applicant]
US 20130218949A1 · Jakobson · 2013 [cited by applicant]
US 20130218966A1 · Jakobson · 2013 [cited by applicant]
US 20130247216A1 · Cinarkaya et al. · 2013 [cited by applicant]
US 20200279182A1 · So · 2020 [cited by examiner]
US 20210073672A1 · Shi · 2021 [cited by examiner]
US 20210224184A1 · Sanevelly · 2021 [cited by examiner]
US 20210377352A1 · Rizvi · 2021 [cited by examiner]
US 20220035730A1 · Dundigalla · 2022 [cited by examiner]
US 20220276952A1 · Waldron · 2022 [cited by examiner]
US 20230095571A1 · Williams · 2023 [cited by examiner]
US 20230176848A1 · Nanduru · 2023 [cited by examiner]
US 20230180019A1 · Martin · 2023 [cited by examiner]
US 20240028935A1 · Dorle · 2024 [cited by examiner]