IP Library › Granted Patent US 12,314,155
Granted Patent B2
US 12,314,155 · App. 18/305,799 · Granted May 27, 2025

Rule engine for functional safety certification

Inventors: Rachel Elizabeth Sibley (Raleigh, NC); Leigh Griffin (Waterford, IE)
Assignee: Red Hat, Inc.
G06F11/3676G06F11/3684G06F2201/81
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,314,155
App. No.
18/305,799
Granted
May 27, 2025
Kind
B2
Abstract

Functions associated with functional safety certification of a software package can be identified using a rule engine. For example, a computing system can identify the functions in a codebase of the software package by executing the rule engine that is configured to identify the functions using a rule set. In response to identifying the functions, the computing system can tag the functions with a function identifier usable to filter the codebase to define a subset of the codebase consisting of the functions. The computing system can execute a targeted test suite to generate a code coverage report of the codebase such that the targeted test suite is limited to the subset of the codebase based on the function identifier.

Claims (62)

1. A system comprising:

a processing device; and

a memory device including instructions that are executable by the processing device for causing the processing device to perform operations comprising:

identifying a plurality of functions in a codebase of a software package by executing a rule engine configured to identify the plurality of functions using a rule set, the plurality of functions being associated with a functional safety certification of the software package;

in response to identifying the plurality of functions, tagging the plurality of functions with a function identifier, the function identifier being usable to filter the codebase to define a subset of the codebase consisting of the plurality of functions; and

executing a targeted test suite to generate a code coverage report of the codebase, the targeted test suite being limited to the subset of the codebase based on the function identifier.

2. The system of claim 1 , wherein the operations further comprise, subsequent to generating the code coverage report of the codebase:

determining that a code coverage value of the code coverage report is below a predetermined threshold; and

in response to determining that the code coverage value is below the predetermined threshold, preventing the software package from being transmitted to a client device.

3. The system of claim 2 , wherein the operations further comprise, subsequent to executing the targeted test suite:

identifying, based on the code coverage report, a function of the plurality of functions that is associated with the code coverage value below the predetermined threshold;

in response to identifying the function, modifying the targeted test suite to increase the code coverage value associated with the function; and

executing the modified targeted test suite to generate an updated code coverage report.

4. The system of claim 1 , wherein tagging the plurality of functions further comprises:

defining the function identifier in metadata associated with each function of the plurality of functions; and

modifying the codebase using the function identifier to generate a plurality of tagged code paths in the codebase, wherein the plurality of tagged code paths are usable to identify the subset of the codebase.

5. The system of claim 1 , wherein the functional safety certification is classified using an integrity level selected from one or more integrity levels with varying rigor associated with safety assurance of the functional safety certification, and wherein the function identifier corresponds to the integrity level selected for the functional safety certification of the software package.

6. The system of claim 1 , wherein executing the targeted test suite further comprises:

generating a configuration file identifying the plurality of functions tagged with the function identifier in the codebase, wherein the configuration file indicates a respective line of code corresponding to each function of the plurality of functions; and

executing the targeted test suite based on an existing test suite with a code coverage value below a predetermined threshold, wherein the targeted test suite is generated by updating the existing test suite using the configuration file.

7. The system of claim 1 , wherein the operations further comprise, prior to detecting the plurality of functions:

receiving a request identifier from a client device wherein the request identifier is usable to identify the plurality of functions associated with the functional safety certification; and

identifying the plurality of functions associated with the functional safety certification by searching the codebase using the request identifier.

8. A method comprising:

identifying a plurality of functions in a codebase of a software package by executing a rule engine configured to identify the plurality of functions using a rule set, the plurality of functions being associated with a functional safety certification of the software package;

in response to identifying the plurality of functions, tagging the plurality of functions with a function identifier, the function identifier being usable to filter the codebase to define a subset of the codebase consisting of the plurality of functions; and

executing a targeted test suite to generate a code coverage report of the codebase, the targeted test suite being limited to the subset of the codebase based on the function identifier.

9. The method of claim 8 , further comprising, subsequent to generating the code coverage report of the codebase:

determining that a code coverage value of the code coverage report is below a predetermined threshold; and

in response to determining that the code coverage value is below the predetermined threshold, preventing the software package from being transmitted to a client device.

10. The method of claim 9 , further comprising, subsequent to executing the targeted test suite:

identifying, based on the code coverage report, a function of the plurality of functions that is associated with the code coverage value below the predetermined threshold;

in response to identifying the function, modifying the targeted test suite to increase the code coverage value associated with the function; and

executing the modified targeted test suite to generate an updated code coverage report.

11. The method of claim 8 , wherein tagging the plurality of functions further comprises:

defining the function identifier in metadata associated with each function of the plurality of functions; and

modifying the codebase using the function identifier to generate a plurality of tagged code paths in the codebase, wherein the plurality of tagged code paths are usable to identify the subset of the codebase.

12. The method of claim 8 , wherein the functional safety certification is classified using an integrity level selected from one or more integrity levels with varying rigor associated with safety assurance of the functional safety certification, and wherein the function identifier corresponds to the integrity level selected for the functional safety certification of the software package.

13. The method of claim 8 , wherein executing the targeted test suite further comprises:

generating a configuration file identifying the plurality of functions tagged with the function identifier in the codebase, wherein the configuration file indicates a respective line of code corresponding to each function of the plurality of functions; and

executing the targeted test suite based on an existing test suite with a code coverage value below a predetermined threshold, wherein the targeted test suite is generated by updating the existing test suite using the configuration file.

14. The method of claim 8 , further comprising, prior to detecting the plurality of functions:

receiving a request identifier from a client device wherein the request identifier is usable to identify the plurality of functions associated with the functional safety certification; and

identifying the plurality of functions associated with the functional safety certification by searching the codebase using the request identifier.

15. A non-transitory computer-readable medium comprising program code executable by a processing device for causing the processing device to perform operations comprising:

identifying a plurality of functions in a codebase of a software package by executing a rule engine configured to identify the plurality of functions using a rule set, the plurality of functions being associated with a functional safety certification of the software package;

in response to identifying the plurality of functions, tagging the plurality of functions with a function identifier, the function identifier being usable to filter the codebase to define a subset of the codebase consisting of the plurality of functions; and

executing a targeted test suite to generate a code coverage report of the codebase, the targeted test suite being limited to the subset of the codebase based on the function identifier.

16. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise, subsequent to generating the code coverage report of the codebase:

determining that a code coverage value of the code coverage report is below a predetermined threshold; and

in response to determining that the code coverage value is below the predetermined threshold, preventing the software package from being transmitted to a client device.

17. The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise, subsequent to executing the targeted test suite:

identifying, based on the code coverage report, a function of the plurality of functions that is associated with the code coverage value below the predetermined threshold;

in response to identifying the function, modifying the targeted test suite to increase the code coverage value associated with the function; and

executing the modified targeted test suite to generate an updated code coverage report.

18. The non-transitory computer-readable medium of claim 15 , wherein tagging the plurality of functions further comprises:

defining the function identifier in metadata associated with each function of the plurality of functions; and

modifying the codebase using the function identifier to generate a plurality of tagged code paths in the codebase, wherein the plurality of tagged code paths are usable to identify the subset of the codebase.

19. The non-transitory computer-readable medium of claim 15 , wherein the functional safety certification is classified using an integrity level selected from one or more integrity levels with varying rigor associated with safety assurance of the functional safety certification, and wherein the function identifier corresponds to the integrity level selected for the functional safety certification of the software package.

20. The non-transitory computer-readable medium of claim 15 , wherein executing the targeted test suite further comprises:

generating a configuration file identifying the plurality of functions tagged with the function identifier in the codebase, wherein the configuration file indicates a respective line of code corresponding to each function of the plurality of functions; and

executing the targeted test suite based on an existing test suite with a code coverage value below a predetermined threshold, wherein the targeted test suite is generated by updating the existing test suite using the configuration file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: SIBLEY, RACHEL ELIZABETH; GRIFFIN, LEIGH
To: RED HAT, INC.
Reel/Frame 063419/0352 →
Continuity (1)
Related Publication 20240354230A1 · Oct 24, 2024
References Cited (18)
US 8756049B2 · Proctor · 2014 [cited by examiner]
US 9547737B2 · Vincelli · 2017 [cited by examiner]
US 10248492B2 · Mariani · 2019 [cited by examiner]
US 11181870B2 · Bivans · 2021 [cited by examiner]
US 11354956B2 · Ufkes · 2022 [cited by examiner]
US 11390301B2 · Hari et al. · 2022 [cited by applicant]
US 11876782B2 · Miele · 2024 [cited by examiner]
US 11947331B2 · Bivans · 2024 [cited by examiner]
US 20090077532A1 · Denney · 2009 [cited by examiner]
US 20200065234A1 · Letombe et al. · 2020 [cited by applicant]
DE 102020215387A1 · 2022 [cited by applicant]
Denney et al., “A Software Safety Certification Tool for Automatically Generated Guidance, Navigation and Control Code”, 2008, IEEE, pp. 1-11. (Year: 2008). [cited by examiner]
Oracle, “Working with the Rules Engine”, 2016, Oracle and/or its affiliates, pp. 1-188. (Year: 2016). [cited by examiner]
Anonymous, “ISO 26262 Software Compliance in the Automotive Industry,” Parasoft, 2023 Parasoft, retrieved Feb. 23, 2023: pp. 1-66, <https://alm.parasoft.com/hubfs/ISO26262-Software-Compliance-Automotive.pdf>. [cited by applicant]
Anonymous, “Squish Coco—Part III About Code Coverage Code Coverage Measurement for TCL, QML, C# and C/C ++,” Frog Logic, 2003-2011 Sébastien Fricker, 2011-2022 The Qt Company, retrieved Feb. 23, 2023: pp. 1-22, <https:/… [cited by applicant]
Alcaide et al., “Safety-Related Challenges and Opportunities for GPUs in the Automative Domain,” IEEE Micro, vol. 38(6), Oct. 9, 2018: pp. 46-55. [cited by applicant]
Bardin et al., “Test Case Generation with PathCrawler/LTest: How to Automate an Industrial Testing Process,” Leveraging Applications of Formal Methods, Nov. 5, 2018: pp. 1-15, <http://pathcrawler-online.com:8080/pubs/is… [cited by applicant]
Fève, HAL-02272246: “Automatic Safety mechanisms implementation in Software Model-Based Development,” HAL Open Science, Embedded Real Time Software and Systems, Feb. 2014: pp. 1-8, <https://hal.science/hal-02272246/>. [cited by applicant]