Prior to using a circuit test system, a user must typically provide the system with data that describes the specific application in which the test system is to operate. For example, in board test applications, a user must typically provide a description of the board to be tested, including descriptions of its pins, devices, node names, node connections and other characteristics. The user may also need to specify test activities (e.g. by defining test procedures, test sequences, and other events that need to be executed by the hardware or software of a test system). In system on a chip (SOC) applications, a user must typically provide a description of the device to be tested, including descriptions of its pin names and other characteristics. The user may also need to specify individual tests, test sequences, test flows, expected results, and tester behaviors when errors are encountered. In both of these contexts (and others), the “test definition data” provided by the user must be consistent and correct for a test system to behave as expected and desired. As a result, any errors in a user's data must be corrected.
User input to a test system is typically converted from a human readable form to more rigorously formed circuit test data structures. It is during this processing and conversion that a test developer must correct any errors found in his or her data (which errors may have been introduced, for example, by typing error, specification of an invalid data value, or selection of a data value that was not previously specified). Often, a computer process' detection of invalid data results in the process aborting, with a possible notification that invalid data has been detected in a certain line of code. Discerning the type of data that must be supplied to “cure” the error can be a laborious and time-consuming task.
In one embodiment, apparatus comprises computer readable media, and program code stored on the computer readable media. The program code comprises code to define a user interface, and code that interacts with the user interface. A first portion of code that interacts with the user interface detects invalid test definition data in user input and, upon detection of the invalid test definition data, prompts a user to select a valid data option from a set of valid data options. The prompting is undertaken through the user interface. A second portion of code that interacts with the user interface receives a valid data option selected through the user interface, and updates the invalid test definition data with the valid data option.
In another embodiment, a first computer-based method is provided. In accordance with the method, user input is parsed to detect invalid test definition data in the user input. Upon detection of invalid test definition data, a user is prompted to select a valid data option from a set of valid data options. Upon receiving the valid data option selected from the set of valid data options, the invalid test definition data is updated with the valid data option. Circuit test data structures to control an automated circuit tester are then generated.
In yet another embodiment, a second computer-based method is provided. In accordance with the method, source code for generating circuit test data structures is parsed to identify type name definitions and enumeration constant definitions contained in the source code. A string table is then generated from the identified type name and enumeration constant definitions. Thereafter, the string table is linked to an input validation and error messaging portion of the source code to 1) cause the source code to index the string table upon detection of invalid test definition data, and then 2) cause a set of valid data options retrieved from the string table to be displayed to a user for user selection.
Other embodiments of the invention are also disclosed.
Illustrative embodiments of the invention are illustrated in the drawings in which:
A first exemplary embodiment of apparatus that may be used to detect and correct invalid test definition data in user input is shown in
For purposes of this description, the phrases “user input” and “test definition data” are intended to cover data that is manipulated, as well as the commands or instructions that cause the data to be manipulated. User input 102 may be provided in various forms, and may be provided in the form of a test definition file (or files), or in the form of individual responses. User input 102 may also be provided to code 100 prior to launch of the code, or interactively (and possibly through a screen of user interface 106). Test definition data is defined herein to include any sort of data that is used to configure a circuit tester, such as the names of pins, devices, nodes, and node connections to be tested, as well as the types and sequences of tests to be executed by a circuit tester.
In one embodiment of the
Although a set of valid data options could be generated “on the fly” when invalid data is detected, it will often be preferable to compile and store valid data options in advance. The apparatus shown in
In addition to creating a store 112 of valid data options prior to when code 100 analyzes user input to detect invalid test definition data, a store 112 may also be generated or supplemented while the code 100 is analyzing user input.
In the apparatuses described above, the code defining user interface 106 comprises code to configure how a set of valid data options is displayed. For example, the user interface 106 may generate a window 302 for 1) prompting a user that invalid has been detected (see prompt 304,
The order of options in list 306 may be variously chosen, and may include an alphabetical ordering, ordering by highest likelihood of correctness, and so on. If ordering by highest likelihood of correctness is possible, code 100 may determine which option is most likely to be correct by, for example, pattern matching, determining which data option has appeared most frequently, determining which data option appeared most recently, etc. In one embodiment, user interface 106 provides a user with means (e.g., a menu option) to configure how valid data options are displayed in window 302 (e.g., alphabetically, etc.).
There may be instances when data that has been detected as invalid is invalid for want of a specification to make it valid. To address this issue, the user interface 106 may comprise code to define an input area 308 (
As discussed with respect to user interface 106 (
Method 400 may further comprise compiling a set of valid data options based on a context of invalid data. For example, the context of invalid data may be used to identify a number of valid data options that are defined for the context.
Method 400 may also comprise logging valid data options in a store of valid data options, and then deriving a set of valid data options from the store. When logging valid data options, each option may be logged in accordance with a context index so that it may later be compiled with other valid data options by conducting a search for data options associated with a particular context index.
By prompting a user with a set of valid data options upon the detection of invalid data, as variously shown in
While illustrative and presently preferred embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.