IP Library Granted Patent US 9,389,985
Granted Patent B2
US 9,389,985 · App. 13/758,656 · Granted Jul 12, 2016

Codepath integrity checking

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 9,389,985
App. No.
13/758,656
Granted
Jul 12, 2016
Kind
B2
Abstract

A method and apparatus for testing code is provided. The method includes inserting at least one token in program code, wherein each token comprises a code element able to provide a value during runtime, establishing a baseline code version and an executing code version from the program code, and subjecting the executing code version to various testing conditions using a processing device. Subjecting the executing code version to various testing conditions comprises periodically evaluating at least one executing code token having one associated executing error detection value against the at least one baseline code token having one associated baseline error detection value and reporting an error when at least one executing code token and associated executing error detection pair fails to match at least one baseline code token and associated baseline error detection pair.

Claims (41)

1. A code testing method executable on a processing device, comprising:

inserting at least one token in program code, wherein each token comprises a code element able to provide a value during runtime and the token does not materially affect subsequent code functionality;

establishing a baseline code version and an executing code version from the program code;

subjecting the executing code version to various testing conditions using the processing device;

detecting execution of the token; and

performing additional analysis if the token is detected;

wherein the additional analysis includes:

evaluating at least one executing code token having one associated executing error detection value against the at least one baseline code token having one associated baseline error detection value,

reporting an error when at least one executing code token and associated executing error detection pair fails to match at least one baseline code token and associated baseline error detection pair, and

determining whether or not to continue code testing if an error condition is established,

wherein the one associated executing error detection value and one associated baseline error detection value comprise at least one from a group consisting of a cyclic redundancy check (CRC) and a checksum.

2. The code testing method of claim 1 , wherein each token is inserted at a code branch.

3. The code testing method of claim 1 , further comprising establishing a plurality of baseline error detection values associated with a corresponding plurality of baseline code tokens prior to subjecting the executing code version to various testing conditions.

4. The code testing method of claim 1 , wherein the various testing conditions comprise running at least one section of code through a plurality of different states.

5. The code testing method of claim 1 , wherein the inserting and the subjecting occur on a plurality of processing devices.

6. A method of testing code using a processing device, comprising:

providing a plurality of tokens in program code, wherein each token comprises a code element able to provide a value during runtime and each token does not materially affect subsequent code functionality;

establishing baseline code and testing code from the program code;

determining error detection values for tokens in the baseline code;

employing the processing device to subject the testing code to various testing conditions;

detecting execution of the token; and

performing additional analysis if the token is detected;

wherein the additional analysis includes:

comparing error detection values obtained from the testing code subjected to various testing conditions for tokens in the testing code to the error detection values for corresponding tokens in the established baseline code,

establishing an error condition when error detection values from the testing code fail to match error detection codes for corresponding tokens in the baseline code, and

determining whether or not to continue code testing if the error condition is established,

wherein each error detection value comprises at least one from a group consisting of a cyclic redundancy check (CRC) and a checksum.

7. The method of testing code of claim 6 , wherein each token in the program code is inserted at a code branch.

8. The method of testing code of claim 6 , wherein the various testing conditions comprise running at least one section of code through a plurality of different states.

9. The method of testing code of claim 6 , wherein the method occurs on a plurality of processing devices.

10. An apparatus for testing code comprising a plurality of tokens provided in program code, the program code used to establish baseline code and testing code, wherein error detection values are available for tokens in the baseline code, comprising:

a processing device configured to subject the testing code to various testing conditions; and

a comparison device configured to:

detect execution of the token, wherein the token comprises a code element able to provide a value during runtime and the token does not materially affect subsequent code functionality,

if the token is detected, compare error detection values obtained from the testing code subjected to various testing conditions for tokens in the testing code to the error detection values for tokens in the baseline code and establish an error condition when a mismatch occurs, and

determine whether or not to continue code testing if the error condition is established,

wherein each error detection value comprises at least one from a group consisting of a cyclic redundancy check (CRC) and a checksum.

11. The apparatus for testing code of claim 10 , wherein each token in the program code is inserted at a code branch.

12. The apparatus for testing code of claim 10 , wherein the various testing conditions comprise running at least one section of code through a plurality of different states.

13. The apparatus for testing code of claim 10 , wherein the plurality of tokens are established using a separate processing device.

14. The apparatus for testing code of claim 10 , wherein the apparatus is employed in a medical system configured to perform ophthalmic surgery.

Assignments (2)
CHANGE OF NAME Recorded Sep 25, 2018
From: ABBOTT MEDICAL OPTICS INC.
To: JOHNSON & JOHNSON SURGICAL VISION, INC.
Reel/Frame 047151/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2013
From: ALLEN, RENNIE G
To: ABBOTT MEDICAL OPTICS INC.
Reel/Frame 029750/0222 →