System and method for data coverage analysis of a computer program
First Claim
1. A method for analyzing data coverage of a computer program, the method comprising the steps of:
- identifying a region of interest in computer memory, said region of interest being a memory region of interest and having a plurality of data elements; and
determining an extent of access to said memory region of interest by said computer program, thereby providing data coverage information, wherein the step of determining comprises the step of identifying any data elements within said memory region of interest not accessed during execution.
2 Assignments
0 Petitions
Accused Products
Abstract
The inventive system and method is directed toward verifying the accuracy of data tables specified by a developer to be used by a program. The system searches through an application program for instructions which access areas of memory declared by the developer as being of interest and executes instrumentation code for these instructions. Input to the program is the source code of a user program and optionally, a data coverage specification prepared by a developer. Instrumentation can be implemented by inserting instrumenting code into the source code prior to compilation using facilities within the compiler itself. Alternatively, the instrumentation code can be added to the executable program code after compilation is complete. Yet a third option involves generating and executing instrumentation during execution of the user program without ever modifying the user program code at any stage. The output of the system is data coverage information indicating the number of times that various elements of the data tables of interest have been accessed during one full run of the user program. The system thereby provides a mechanism for evaluating the integrity of data to be accessed by a program where prior instrumentation systems have concentrated on verifying the validity of program logic flow.
-
Citations
18 Claims
-
1. A method for analyzing data coverage of a computer program, the method comprising the steps of:
-
identifying a region of interest in computer memory, said region of interest being a memory region of interest and having a plurality of data elements; and
determining an extent of access to said memory region of interest by said computer program, thereby providing data coverage information, wherein the step of determining comprises the step of identifying any data elements within said memory region of interest not accessed during execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
identifying read operations by computer program instructions to the data elements within the memory region of interest; and
maintaining track of reads from data elements during execution of the computer program, thereby indicating which data elements have and have not been read from during execution of the computer program.
-
-
3. The method of claim 2, wherein the step of maintaining track of reads from the data elements comprises the step of:
instrumenting a subset of computer program instructions to check for read operations from data elements in the memory region of interest for computational efficiency.
-
4. The method of claim 3, wherein the step of instrumenting a subset of computer program instructions further comprises the step of:
-
marking instructions to be instrumented with codes recognizable to a compiler, thereby generating marked instructions; and
instrumenting said marked instructions to check for read operations from data elements in the memory region of interest, thereby obviating a need to instrument instructions which are not marked and providing computational efficiency.
-
-
5. The method of claim 3, wherein the step of instrumenting a subset of computer program instructions comprises the steps of:
-
identifying functions of interest within the computer program; and
limiting said step of instrumenting to instructions associated with said functions of interest within said computer program, wherein said instructions associated with said functions of interest are associated instructions.
-
-
6. The method of claim 5, further comprising the steps of
identifying associated instructions which access data elements within the memory region of interest; - and
counting the number of times each data element in the memory region of interest is accessed by said associated instructions during execution of the computer program.
- and
-
7. The method of claim 5, wherein the step of instrumenting is performed in an instrumenting compiler.
-
8. The method of claim 5, wherein the step of instrumenting is performed in a static instrumentor.
-
9. The method of claim 5, wherein the step of instrumenting is performed in a dynamic instrumentor.
-
10. The method of claim 2, further comprising the steps of:
-
creating data coverage tables having coverage elements corresponding to the data elements in the memory regions of interest, said coverage elements in said data coverage tables being counters;
initializing said counters to zero; and
incrementing a counter corresponding to a data element in a memory region of interest by a single count whenever said data element is accessed by the computer program.
-
-
11. The method of claim 10, comprising the further steps of:
-
establishing a final count for each said counter;
producing a data coverage report indicating the final count for each said counter; and
color coding said report based on a numerical value of the final count for each said counter, thereby indicating the relative access frequency of the data elements in the memory region of interest in a visually illustrative manner.
-
-
12. A system for analyzing data coverage of a computer program, the system comprising:
-
a memory region specification for identifying a region of interest in computer memory, said region of interest being a memory region of interest and having a plurality of data elements; and
a data coverage analyzer for determining an extent of access to said memory region of interest, wherein the data coverage analyzer comprises a memory region analyzer for identifying read operations by computer program instructions to the data elements within the memory region of interest, and a data access recorder for maintaining track of reads from the data elements during execution of the computer program, thereby indicating which data elements have and have not been read from during execution of the computer program. - View Dependent Claims (13, 14, 15, 16, 17)
a null access tracker for identifying any data elements within said memory region of interest not accessed during execution.
-
-
14. The system of claim 13, wherein the data access recorder comprises:
a data access analyzer for instrumenting a subset of computer program instructions to check for read operations from data elements in the memory region of interest for computational efficiency.
-
15. The system of claim 14, wherein the data access recorder further comprises:
-
a function list specification for identifying functions of interest within the computer program; and
a data coverage optimizer for limiting instrumentation to instructions associated with said functions of interest within said computer program, wherein said instructions associated with said functions of interest are associated instructions.
-
-
16. The system of claim 15, further comprising:
-
a coverage instruction locator for identifying associated instructions which access data elements within the memory region of interest; and
data coverage reporters for counting the number of times each data element in the memory region of interest is accessed by said associated instructions during execution of the computer program.
-
-
17. The system of claim 16, wherein the data coverage reporters comprise:
-
data coverage tables having coverage elements corresponding to elements in the memory regions of interest, said coverage elements in said data coverage tables being counters;
data element resetters for initializing said counters to zero; and
data element adjustors for incrementing a counter corresponding to a data element in a memory region of interest by a single count whenever said data element is accessed by the computer program.
-
-
18. A computer program product having a computer readable medium having computer program logic recorded thereon for analyzing data coverage of a computer program, the computer program product comprising:
-
a memory region specification for identifying a region of interest in computer memory, said region of interest being a memory region of interest and having a plurality of data elements; and
a data coverage analyzer for determining an extent of access to said memory region of interest, wherein the data coverage analyzer comprises a null access tracker for identifying any data elements within said memory region of interest not accessed during execution.
-
Specification