Browse Prior Art Database

Dynamic Testing of Program Data Structures

IP.com Disclosure Number: IPCOM000077891D
Original Publication Date: 1972-Oct-01
Included in the Prior Art Database: 2005-Feb-25
Document File: 3 page(s) / 55K

Publishing Venue

IBM

Related People

Sacks, DJ: AUTHOR [+2]

Abstract

In complex programming systems environments, many programs are implemented that provide services to other functions. These services often consist of generating pointers, or data structures containing constants and pointers. The pointers address areas in other known structures in the environment. Since these service programs are driven by other programs, they are difficult to test. The method described here enables one to exhaustively test such service programs with minimal human effort. The advantage of this method is that it is easily expandable, and it is completely implementable as a computer program.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 54% of the total text.

Page 1 of 3

Dynamic Testing of Program Data Structures

In complex programming systems environments, many programs are implemented that provide services to other functions. These services often consist of generating pointers, or data structures containing constants and pointers. The pointers address areas in other known structures in the environment. Since these service programs are driven by other programs, they are difficult to test. The method described here enables one to exhaustively test such service programs with minimal human effort. The advantage of this method is that it is easily expandable, and it is completely implementable as a computer program.

This method uses an address normalization procedure, which represents any pointer generated by the service program as relative to the structure in which its target lies. That is, the address of the structure containing the target is subtracted from the address of the target, and this difference replaces the pointer, so that each normalized pointer is relative to its target structure. Normalized model output (i.e. the structures generated by the service program containing constants and normalized pointers) is stored on a secondary storage device. The test consists of normalizing the pointers in the output structure generated by a test case, and comparing each structure to the corresponding model structure on secondary storage; inequality indicates an error.

In more detail, the method comprises the following steps:
1) A correct prototype of a service program with prototype

initialization data is used to generate the output of the

service program; this contains unnormalized addresses. Step

11 in Fig. 1 illustrates the prototype output generation.
2) A set of model outputs is respectively generated from the

prototype outputs by normalizing its pointers. The resultant

model structure is in the correct form to be used later for

comparisons. These model structures may be handbuilt if no

prototype program is available. Step 12 illustrates model

structure generation.
3) The model structures are written onto a secondary storage

device...