Per group verification
First Claim
Patent Images
1. A computer-implemented method comprising:
- ascertaining multiple pathways in code to be verified by referencing a harness file that designates a position of callbacks within the code relative to a non-deterministic portion of the code defined by one or more non-deterministic choices, harness designations being sufficient to identify the multiple pathways;
forming groups for verification of the code according to identified pathways, each of the groups containing a portion of the code to be verified; and
directly verifying the code against one or more rules using the formed groups, including;
for a first rule;
executing respective pathways in the code corresponding to each of the groups; and
monitoring to determine compliance of the respective pathways with the first rule; and
when the code is verified against multiple rules, for each other said rule;
executing the respective pathways in the code corresponding to each of the groups; and
monitoring to determine compliance of the respective pathways with the other said rule.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments provide per group verification techniques in which code may be verified against one or more rules on a group by group basis. In one or more embodiments relationships between portions of a module to be verified can be defined. By being aware of relationships between various code portions, various embodiments can divide a module into related groups and perform verification on the basis of the groups. Multiple groups can be derived based at least in part upon the relationships. Each group can then be verified separately for compliance with one or more rules. Verification results can be output for each of the groups.
44 Citations
20 Claims
-
1. A computer-implemented method comprising:
-
ascertaining multiple pathways in code to be verified by referencing a harness file that designates a position of callbacks within the code relative to a non-deterministic portion of the code defined by one or more non-deterministic choices, harness designations being sufficient to identify the multiple pathways; forming groups for verification of the code according to identified pathways, each of the groups containing a portion of the code to be verified; and directly verifying the code against one or more rules using the formed groups, including; for a first rule; executing respective pathways in the code corresponding to each of the groups; and monitoring to determine compliance of the respective pathways with the first rule; and when the code is verified against multiple rules, for each other said rule; executing the respective pathways in the code corresponding to each of the groups; and monitoring to determine compliance of the respective pathways with the other said rule. - View Dependent Claims (2, 3, 4, 5, 6, 18)
-
-
7. A computer-readable storage device storing computer readable instructions to implement a harness file configured to:
-
describe relationships between entry points within code of a module corresponding to the harness file, the relationships described by designating a position of the entry points relative to a non-deterministic portion of the code of the module defined by one or more non-deterministic choices; enable a verifier tool, referencing the harness file to verify the code of the module against a single rule, to form groups of the code that are associated with the entry points according to the described relationships, the verifier tool configured to verify the code of the module against multiple rules by referencing multiple harness files, each configured to enable the verifier tool to verify the code of the module on a per group basis against a respective said rule; verify compliance of the code of the module with a single rule by directly verifying compliance of each of the formed groups of the code with the single rule separately such that each of the formed groups of the code is individually verified with the single rule in a sequence indicated by the harness file; and generate verification results that indicate whether each of the formed groups of the code separately complies with the single rule. - View Dependent Claims (8, 9)
-
-
10. A system comprising:
-
one or more processors; one or more computer-readable storage devices; one or more modules embodied on the one or more computer-readable storage devices that are operable through interaction with an operating system to control respective devices; and a verifier tool embodied on the one or more computer-readable storage devices and configured to; derive groups of code containing code of at least one module using harness files that define the groups of code for multiple rules such that a different harness file is configured to define the groups of code for each of the multiple rules, at least one of the harness files defining the groups of code differently than another harness file, use of the harness files involving making reference to the harness files that are configured to represent a structure of the code of the at least one module by categorizing multiple callbacks within the code of the at least one module according to a relationship of the multiple callbacks to a non-deterministic portion of the code of the at least one module; and directly verify compliance of the code of the at least one module with the multiple rules that are defined for interaction of the code of the at least one module with the operating system on a per group basis, including; verify compliance of the code on a per group basis with a first of the multiple rules; and until compliance with each of the multiple rules is verified, verify compliance of the code on a per group basis with one of the multiple rules for which compliance remains to be verified. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 19, 20)
-
Specification