Functional Safety Rule Engine for Targeted Code Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software testing methods for functional safety certification are inefficient, wasting resources and leading to false positives due to testing unrelated portions of software packages, which can result in unnecessary computing resource consumption and reduced confidence in compliance.
Innovation Solution
A rule engine identifies functions relevant to functional safety certification, tags them with function identifiers, and executes a targeted test suite limited to this subset, generating a code coverage report to improve testing efficiency and accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire software package is tested for functional safety certification, then comprehensive coverage is achieved, but computing resources are wasted and false positives increase
Solution Approach 1:
The patent segments the software package into two distinct parts: safety-relevant functions identified through static analysis and non-safety functions. By applying the rule engine to extract only the safety-critical code paths, the system tests only the necessary subset rather than the entire software package, thereby reducing computing resource consumption while maintaining compliance confidence.
Solution Approach 2:
The rule engine extracts and isolates safety-relevant functions from the complete software package by analyzing code patterns, annotations, and safety requirements. This extraction creates a minimized test subset containing only the code that must be verified for functional safety certification, eliminating waste of resources on unrelated portions.
2Manufacturing precision
If the entire software package is tested, then all code paths are covered, but false positives increase and reduce confidence in compliance
Solution Approach 1:
The patent applies local quality by treating safety-relevant and non-safety portions of the software differently. The rule engine identifies and applies specific testing criteria only to safety-critical code paths, using function identifiers and tags to distinguish these regions. This localized approach ensures high code coverage accuracy for safety functions without introducing false positives from unrelated code.
3Reliability
If comprehensive testing is performed on all software portions, then complete verification is achieved, but testing time and resources are unnecessarily consumed
Solution Approach 1:
The system performs preliminary static analysis using the rule engine before execution testing to identify and tag safety-relevant functions. This preliminary action creates a filtered subset of code that requires detailed testing, allowing the system to skip unnecessary testing of non-safety portions and significantly improve testing efficiency while maintaining certification assurance.
Solution Approach 2:
The rule engine acts as an intermediary between the software package and the test suite. It processes the complete software code, applies safety rules and patterns, and generates a minimized test subset with function identifiers. This intermediary layer enables efficient testing by translating comprehensive safety requirements into targeted test cases.
Data Source
AI summary
In some examples, a targeted test suite can be executed to test a subset of a set of software packages corresponding to a compliance certification. For example, a computing system can identify one or more functions associated with the compliance certification of the set of software packages that can include one or more codebases. In response to identifying the one or more functions, the computing system can tag the one or more functions with a function identifier that can define a subset of the one or more codebases. The subset of the one or more codebases can consist of the one or more functions. The computing system can execute the targeted test suite that can be limited in scope to the subset of the one or more codebases based on the function identifier.


