throbber
US005579476A
`United States Patent
`5,579,476
`[11] Patent Number:
`
`[45] Date of Patent: Nov. 26, 1996
`Chengetal.
`
`UNO OA UY ATA
`
`[54] AUTOMATIC TEST ENVIRONMENT FOR
`COMMUNICATIONS PROTOCOL
`SOFTWARE
`
`Beizer, Software System Testing and Quality Assurance,
`1984, pp. 91-140.
`
`[75]
`
`Inventors: Hsu-Feng Cheng, Hsinchu; Jung-Ming
`Fang, Taipei Hsizn, both of Taiwan
`
`Primary Examiner—Robert W. Beausoliel, Jr.
`Assistant Examiner—Norman M. Wright
`Attorney, Agent, or Firm—Meltzer, Lippe Goldstein et al.
`
`[73] Assignee:
`
`Industrial Technology Research
`Institute, Hsinchu, Taiwan
`
`(57]
`
`ABSTRACT
`
`[21]
`
`[22]
`
`Appl. No.: 501,456
`
`Filed:
`
`Jul. 12, 1995
`
`Related U.S. Application Data
`
`[63]
`
`Continuation of Ser. No. 139,303, Oct. 19, 1993, abandoned.
`
`A test system and method are disclosed for testing a com-
`munications protocol software implementation or combina-
`tion of communications protocol software implementations.
`Thetest system has a memory for storing a communications
`protocol software implementation of a particular layer in a
`hierarchy of protocols. The test system has a processor for
`catching data outputted from the communications protocol
`software implementation to upper and lower layer commu-
`Tint. C1. oie ceccsssssssesesssssssesesssecsssssnseneeeen GO06F 11/00
`nications protocol software. The processor is also for inter-
`[51]
`
`US. Ch. cece
`.. 395/183.08; 395/183.15
`preting each frame contained inatestcasefile. In response
`[52]
`to interpreting an input data frame, the processorfeeds input
`Field of Search
` .............cc000 395/183.08, 183.01,
`[58]
`data contained in the input data frame to the communica-
`395/185.02, 183.1, 183.11, 183.14, 183.15,
`183.13
`tions protocol software implementation. In responseto inter-
`preting an output data frame,
`the processor compares
`received data outputted from the communications protocol
`software implementation with expected output data inter-
`preted from the output data frame, and generates a message
`depending on this comparison. Furthermore, the processor
`may simultaneously monitor the execution of the commu-
`nications protocol software implementation and generate a
`wake-up message if the communications protocol software
`implementation properly or unexpectedly ceases execution.
`In response to receiving a wake-up message, the processor
`writes an appropriate message in a test report file.
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,233,611
`
`.............. 371/16.1
`8/1993 Triantafyllos et al.
`OTHER PUBLICATIONS
`
`Automator Developer Guide with Examples, Jul. 1991,
`Version QANDG1.0 pp. 1+ to 1-8; 1-12 to 1-15; 4-21 to
`4-24; and 5-24 to 5-34.
`Automator Programmer Reference Manual, Jul. 1991, Ver-
`sion QANPR 1.0 pp. 1-7; 3-47; 4-24 to 4-25.
`Automator User Guide, Jul. 1001, Version QANUG 1.0 pp.
`2-2; 3-8 to 3-9; and 5-1 to 5-6.
`
`15 Claims, 5 Drawing Sheets
`
` (NOAMALLY
`
`COMPLETED)
`WAKEUPER
`
`
`
`
`
` WAIT FOR QUTPUT
`
`
`
`(CATCHER)
`
`
`SEND
`
`“WAKEUP"
`HESSAGE
`TO TESTER
`
`
`
`SET VALVE OF
`AUTO-VARTABLE
`
`1
`
`CONFIGIT 1022
`
`CONFIGIT 1022
`
`1
`
`

`

`U.S. Patent
`
`Nov. 26, 1996
`
`Sheet 1 of 5
`
`5,579,476
`
`NOILYZINOUHONAS--
`)
`
`Ov}
`
`x
`+
`Pecomwascesseewwaussnennwecont
`
`HALS31
`
`OV
`
`
`
`HALSALYANO)
`
`eT
`
`Yaddh (LHYYOTHd)bOIG
`
`2
`
`

`

`U.S. Patent
`
`Nov. 26, 1996
`
`Sheet 2 of 5
`
`5,579,476
`
`0E¢
`
`
`
`HAV]YANO]
`
`SNOTLVOINNWWOD
`
`109010Ud
`
`SVM40S
`
`cS¢
`
`USAV1Usd!
`
`SNOTLVOINAWNO)
`
`100010Hd
`
`SUV405
`
`1S¢
`
`14!!4t!1(I||44'''‘‘'‘J‘!I'‘i}t(i4‘‘114!4itr)‘i‘iii'1i41{!t|tI‘t''‘
`
`che
`
`SNd-SNST
`
`Ove
`
`ec‘9I4
`
`(LHYHOTHd)
`
`dSaLSal
`
`Oke
`
`JTdN0)
`
`3
`
`
`
`
`
`

`

`U.S. Patent
`
`Noy. 26, 1996
`
`Sheet 30f5
`
`5,579,476
`
`FIG.
`3
`340
`(PRIORART]
`+0)
`330
`™
`i eeSD _ od
`
`
`||EXCEPTION |
`
`
`'|HANDLER !
`310
`|
`|
`
`LOWER
`|
`|
`
`TESTER
`|
`|
`
`Loee =
`
`
`
`4
`
`

`

`U.S. Patent
`
`Nov. 26, 1996
`
`Sheet 4 of 5
`
`5,579,476
`
`990
`
`940
`
`FEEDER
`ee epee eee eo ee ee ee
`
`ewe ee eee ee eee eee eee eee ee
`
`5/0
`
`5 F
`
`IG.
`
`
` LOWER PSEUDO
`PSEUDO
`UPPER
`
`
`
`TESTER
`
`500—~”
`
`WAKEUPER
`
`920
`
`5
`
`

`

`U.S. Patent
`
`Nov. 26, 1996
`
`Sheet 5of5
`
`5,579,476
`
`TESTER)—_(NORMALLY
`COMPLETED)
`WAKEUPER
`
`FIG. 6
`
`WAIT FOR QUTPUT
`(CATCHER)
`
`SEND
`“WAKEUP"
`MESSAGE
`TO TESTER
`
`GOTO
`SPECIFIED
`FRAME NO.
`
`MATCHED
`WITH
`EXPECTED?
`
`
`
`REPORT
`ERROR
`
`6
`
`

`

`5,579,476
`
`1
`AUTOMATIC TEST ENVIRONMENT FOR
`COMMUNICATIONS PROTOCOL
`SOFTWARE
`
`This is a continuation of application Ser. No. 08/139,303,
`filed Oct. 19, 1993, now abandoned, for AUTOMATIC
`TEST ENVIRONMENT FOR COMMUNICATIONSPRO-
`TOCOL SOFTWARE.
`
`FIELD OF THE INVENTION
`
`The present invention is directed to a system for testing
`communications software. In particular, the present inven-
`tion providesa test system for feeding input test data to, and
`receiving output data from, a communications protocol
`software implementation or combination of communications
`protocol software implementations.
`
`BACKGROUNDOF THE INVENTION
`
`10
`
`20
`
`2
`Traditionally, IUT’s have been tested in a test environ-
`ment 100 such as depicted in FIG. 1. An uppertester 110 is
`provided for simulating communications protocol software
`of a higher layer than an JUT 120 from which the TUT 120
`may receive messages, or to which the IUT 120 may
`transmit messages. For example, the JUT 120 may be an
`X.25PLP software implementation (layer 3 communications
`protocol software) and the upper tester may contain a T.70
`software implementation (layer 4 communications protocol
`software). The upper tester 110 transmits to, and receives
`from, the IUT 120 different kinds of simulated inputted data
`and control messages according to a higher layer protocol.
`Likewise, a lower tester 130 is provided for simulating
`communications protocol software on a lowerlayer than the
`TUT 120 to which the TUT 120 may transmit messages, or
`from which the [UT 120 may receive messages. In the above
`example, the lower tester 130 may contain a LAPB software
`implementation (layer 2 communications protocol soft-
`ware). The lower tester 130 transmits different kinds of
`simulated input data and control messages according to a
`lower layer protocol.
`The simulated input data and control messages of the
`upper and lower testers may be obtained automatically from
`a test script file 111 or 131, respectively. Alternatively, the
`input data and control messages may be inputted by a user
`in an interactive session. In response to receiving these
`inputted messages,
`the [UT may output messages to the
`uppertester 110 and/or the lowertester 130. As shown by the
`line 140, the test environment 100 must provide intricate
`synchronization procedures so that the upper tester 110 and
`lower tester 130 simulate, as close as possible, the actual
`environment in which the IUT 120 is to be deployed.
`FIG. 2 showsa first conventional communications pro-
`tocol software test system 200 which provides a test envi-
`ronment according to the general environment 100 (FIG. 1).
`The test system 200 has a testbed 210 which illustratively
`may be a computer such as a Micro Vax™, manufactured by
`Digital Equipment Corporation. The [UT 220 is maintained
`in a separate device 230, e.g., the actual hardware in which
`the IUT 220 is to be deployed. The testbed 210 communi-
`cates with the device 230 via an ISDN S-interface bus 212.
`Furthermore, a user 240 may input data and control mes-
`sages to, and receive data and control messages from the
`device 230. The device 230 in which the IUT 220resides has
`lower layer communication protocol software 251 and upper
`layer communication protocol software 252 which serve to
`temporarily store information transmitted to the [UT 220 or
`received from the user 240 or testbed 210.
`
`A communications system typically includes two devices
`which can communicate with each other either directly or
`via one or more intermediary communications devicesof the
`communications system. Some examples of communica-
`tions devices include: private branch exchanges, data termi-
`nal equipments, central office switches, ISDN customer
`premises equipment, etc. These devices communicate with
`one another according to one or more communications
`protocols or sets of semantic and syntactic rules for com-
`municating. Some examples of communications protocols
`include: LAPD (Q.921), Q.931, X.25PLP, LAPB, T.70,
`T.62, DTAM, and V.120.
`Illustratively, devices of the communications system con-
`tain protocol software for achieving communication accord-
`ing to the different communications protocols. Such protocol
`software may be hierarchically organized into levels called
`layers according to the Open SystemsInterconnection (OSI)
`model. According to OSI, communications protocol soft-
`ware for communicating on the highest layer may be used
`for requesting high level or abstract communications goals.
`Communications protocol software of each lower layer may
`be used for requesting more specific sub-goals of higher
`layers. Finally, communications protocol software of the
`lowest layer may be used for requesting low level or actual
`physical tasks (i.e., the actual transmission or reception of
`data signals). Typically, a communicating devicc communi-
`cates by first generating a request to perform somerelatively
`abstract goal using high layer communications protocol
`Jn operation, the testhed 210 serves as an automatic lower
`software. This in turn may cause the device to generate one
`tester. The testbed 210 automatically feeds simulation input
`350
`or more requests to perform more specific sub-goals of the
`data and control message data fromatest casefile 260 to the
`abstract goal using lower layer communications protoco]
`IUT 220. The user 240 serves as an upper tester. The user
`software, etc., until one or more requests are generated using
`manually inputs data and control messages to, and receives
`communications protocol software of the lowest layer.
`data and control messages from, the JUT 220 during an
`U.S. Pat. Nos. 3,869,603, 4,055,801, 4,108,358, 4,713,
`interactive session. For example, if the testbed 210 is a
`815, 4,759,019, 4,821,266, 4,916,641, and 5,111,402 dis-
`telephone, the user 240 mightlift the handset from the cradle
`close automated test systemsfor testing a variety of types of
`(creating an off-hook signal) and press keys on the telephone
`hardware. Advantageously, implementations of communica-
`keypad. The user receives data from the lowertester 210 in
`tions protocol software for operating devices of a commu-
`the form of a dial tone,etc.
`nications system are tested in a simulated environment
`FIG. 3 depicts a second conventional test system 300
`before they are deployed in the equipment of the commu-
`according to the conventional architecture 100 (FIG. 1). An
`nications system. To that end, the communications protocol
`upper tester 350 is provided which is also called the test
`software implementation under test (UT)is tested by emu-
`responder. Both the test responder 350 and the IUT 320 are
`lating the data and control message inputs which may be
`stored in the device 340 which can be a Sun Microsystems’
`received from higher and lower layer communications pro-
`SUN 3™, SUN 4™, or SPARC™computers.
`tocol software. If in response to these inputs, the [UT outputs
`Thetest system 300 has lower tester 330 in the form of a
`the correct data and control messages(as per the protocol of
`device such as a Sun Microsystems’ SUN 3™, SUN 4",or
`the higher or lower layer), the IUT passesthetest.
`
`40
`
`45
`
`55
`
`60
`
`65
`
`7
`
`

`

`5,579,476
`
`3
`SPARC™ computers. The lower tester device 330 is a
`separate device from the device 340. The two devices 330
`and 340 can communicate with each other, e.g., via a Sun
`Microsystems, SUNLINK OSI™interface 355.
`The lowertester 330 contains a test driver program 310,
`a referencer 360 and an exception handler 370. The refer-
`encer 360 is a certified communications protocol software
`implementation of the same communications protocol(s) as
`the IUT 320. The referenccr 360 may thus be used as a
`teference as to how the [UT 320 should respond.
`The exception handler 370 operates under the control of
`the test driver program 310. The exception handler 370 is
`provided for purposes of altering the messages communi-
`cated between the referencer 360 and the SUNLINK OSI
`interface 355. The exception handler 370 can thus create an
`abnormality in the messages outputted from the referencer
`360.
`
`In operation, the user compiles a test case file which
`includes the data to be inputted to, and outputted from, the
`upperLester 350 and the lower tester 330. Thetest driver 310
`then transfers instructions, using Test Driver Responder
`Protocol (TDRP) language, regarding the operation of the
`uppertester 350 to the test responder 350 via the referencer
`360. SUNLINK OSI"interface 355 and the IUT 320. The
`device 340 and the device 330 then execute appropriate
`sleps to automatically feed inpul messages to the TUT 320
`and to receive output messages therefrom.
`The prior art test systems 200 (FIG. 2) and 300 (FIG.3)
`have several disadvantages. In the test system 200, the user
`is required to enter appropriate input data in an interactive
`session. Such an interactive session is tedious and prone to
`errors. Moreover, because of the limited speed of human
`data entry, the test requires a long time to complete. The time
`factor is important when considering that the same test may
`be applied to several different IUT’s or reapplied to the same
`JUT in the course of developing the IUT.
`In using the test system 300, the IUT is compiled together
`with a test script file which contains the inputted messages
`of the upper and lowertester. The tests carried out by each
`test script file may be planned and separately stored ahead of
`time. These test script files may then be compiled with the
`IUT to produce an executable object (machine language)
`file. However, any time a test or the IUT is modified,thefiles
`must be recompiled. Furthermore, an object file (containing
`the executable machine language code) is produced each
`time the IUT is compiled with a test scriptfile. Thus, a great
`deal of effort must be expended in managingthefiles, for
`example, to ensure that only current objectfiles are stored
`and only unneeded object files are discarded.
`In both test systems 200 and 300, the data outputted from
`the IUT is transmitted through the upper and lowertesters.
`The upper and lowertesters may have certain error conten-
`tion capabilities in which the upper and lowertesters con-
`tinue to perform normal operations even in the event erro-
`neous data and control messages are outputted from the IUT.
`Thus, the upper and lowertesters may filter out erroneous
`data and control messages outputted from the JUT. This
`reduces the ability to fully test the IUT.
`It is thus an object of the present invention to overcome
`the disadvantages of the priorart.
`
`SUMMARYOF THE INVENTION
`
`The present invention achieves these objects by providing
`an automatic interpretive test system with a singletester,i-e.,
`the lower and uppertester are combined into a single tester.
`
`10
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Furthermore, the test system automatically feeds input data
`simulating both the upper and lower tester, and checks
`output data received from the IUT, by sequentially inter-
`preting instructions from a test case file. The test casefile
`may be generated and stored prior to performing thetest.
`According to one embodiment, a test system is provided
`with a processor and a memory. Prior to conductingthetest,
`the IUT is stored in the memory. Furthermore,a test casefile
`is prepared containing a sequence of instructions called
`frames. The frames may be input data frames which contain
`data to be inputted to the [UT or output data frames which
`contain expected data to be outputted from the TUT. Tlus-
`tratively, the input and output data frames are sequentially
`ordered in the test case file to simulate a test session of
`requests and responses between the TUT and upper and
`lower layer communications protocol software. Optionally,
`the test system may be provided with a disk memory, such
`as ahard disk drive, for storing test case files. Thus, testfiles
`can be planned and stored prior to performing the tests.
`Duringa test, the processor executes a process called the
`tester. The tester process has four sub-processes: a catcher
`subprocess, an interpreter subprocess, a feeder subprocess
`and a comparator subprocess. The catcher subprocess is for
`receiving data outputted from the IUT to upper and lower
`layer communications protocol software. The interpreter
`subprocessis for interpreting each frame of the sequence of
`frames in the test case file. In response lo interpreting an
`input data frame, the processor executes the feeder subpro-
`cess to feed input data contained in the input data frame
`directly to the IUT. In response lo interpreting an output data
`frame, the processor executes the comparator subprocess to
`compare output data contained in the output data frame with
`corresponding output data received by the catcher subpro-
`cess. In response to the comparison, the processor illustra-
`tively generates messages indicating whetheror notthe data
`actually outputted from the IUT matched the expected data
`contained in the output data frames. [llustratively these
`generated messages are stored in a test report file.
`Illustratively,
`the processor also contemporaneously
`executes a second processcalled the wake-upper. The wake-
`upper monitors the IUT to determine if the [UT properly
`completes its execution or if it unexpectedly stops. The
`wake-upper process generates a wake-up message depend-
`ing on whether or not the IUT executes properly. Ilustra-
`tively, this is achieved by assigning a priority to the wake-
`upper process which is lower than the tester and IUT
`processes. This ensures that
`the wake-upper does not
`execute unless both the tester process and IUTareidle.
`The wake-up message generated by the wake-upper pro-
`cess is received by the processor while executing the catcher
`subprocess and analyzed by the processor while executing
`the comparator subprocess. Depending on the particular
`wake-up message, the processor generates an error message
`or successful execution message.Illustratively, in response
`to receiving a wake-up message, the processor writes an
`appropriate message in the above-mentioned test report file.
`In short, a flexible test system is provided for testing
`implementations of communications protocol software or
`communications software incorporating a combination of
`protocols. The tester system according to the present inven-
`tion provides the following advantages:
`(1) tedious manual data entry is avoided
`(2) human error is avoided
`(3) tests require less time to complete
`(4) test cascs may be predetermined and stored prior to
`performing thetest
`
`8
`
`

`

`5,579,476
`
`5
`(5) because the test system is an interpreter, the test cases
`need not be re-compiled with the IUT each time the IUT
`or test case is modified
`(6) file maintenance is minimized
`(7) because the test system interacts directly with the IUT
`rather than via upper or lower layer communication
`protocol software, no erroneous results produced by an
`IUT with a bugarefiltered out, and
`(8) because a single tester is provided which sequentially
`interprets frames from a test case file, intricate synchro-
`nization between upper and lowertesters is not needed.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`FIG. 1 depicts a conventional communications protocol
`software test system architecture.
`FIG.2 depicts a functional diagram ofa first conventional
`communications protocol software test system.
`FIG.3 depicts a functional diagram of a second conven-
`tional communications protocol software test system.
`FIG. 4 depicts a communications protocol software test
`system according to one embodimentof the present inven-
`tion.
`
`15
`
`20
`
`FIG. 5 depicts a functional diagram of the test system of
`FIG 4.
`
`25
`
`FIG.6 is a flowchart which schematicallyillustrates the
`operation of the test system depicted in FIGS. 4-5.
`
`6
`the test. Thus, the pseudo upper tester 550 and pseudo lower
`tester 540 may be mere buffers.
`The tester process 510 includes four sub-processes: a
`feeder sub-process 512, a catcher sub-process 514, an inter-
`preter sub-process 516 and a comparator sub-process 518.
`Theinterpreter sub-process 516 sequentially reads and inter-
`prets each frame or instruction of the test case file. These
`frames are discussed in greater detail below. The feeder
`sub-process 512 inputs data received from the interpreter
`sub-process 516 to the JUT 530. The catcher sub-process
`514 receives data outputted from the IUT 530. The com-
`parator sub-process 518 compares expected output data in an
`output data frameinterpretted by the interpreter sub-process
`516 with output data received by the catcher sub-process
`514.
`
`Appendix A depicts two illustrative test case files. A test
`case file may include a file header (e.g.,
`lines 1-8 or
`111-118), a summary (e.g., lines 10-29 or 120-133) and a
`sequence of one or more frames (e.g.,
`lines 31-110 or
`135-171). Each frame begins with a frame designator(e.g.,
`@_DX23), Frames may be input data frames, output data
`frames, SET frames or GOTO frames. Input and output data
`frames have the following syntax:
`
`[<frame no.>] <comment>
`HEADERhyhy hy hy bs bg Hy Bg by Ure, TR, Usever Info
`{<no. data items>} <data items>
`
`The frame number is a unique label from 1 to 65535
`which distinguishes the frame from other frames. Comments
`may be provided following the frame number. HEADER
`identifies the beginning of the header. The nine following
`bytes h, h, h, h, h; hg h, hg hy are reserved for later
`FIG. 4 depicts a test system 10 according to the present
`expansion. A value U,,,, follows which value serves as the
`invention.Ilustratively, the test system 10 is a multi-tasking
`process identifier of the IUT. The next bit T/R,, indicates
`computer system. The test system 10 has one or more
`whether the data contained in the frame is input data
`processors 12 or CPU’s for executing instructions of pro-
`(T,/R,=0) to be fed into the [UT 530 or whether the data is
`cesses. The test system 10 also has a main memory 14 and
`expected output data (T./R,=1) to be received from the IUT
`a disk memory 16 such as a hard disk drive. Typically, a
`530. The nextbit U,,,,.,is the process identifier of the pseudo
`process executed by the processor 12 is stored, at least in
`level via which data contained in the frameis to be received
`part, in the main memory 14. The disk memory 16 is used
`or transmitted (U,,,.=0 indicates pseudo upper level and
`for storing files. In addition,the test system 10 has a manual
`U,ver=!
`indicates pseudo lower level). A series of four
`input device 18, such as a keyboard, and a display device 20,
`“Info” digits follows indicating the kind of information
`such as a CRT or LCDdisplay. A data bus22 is also provided
`represented by the data frame.
`for transferring data between different devices of the test
`The number in the braces indicates the number of data
`system 10.
`itemsto be inputted to, or expected to be outputted from,the
`Tllustratively, the processor 12 of the test system is a
`TUT 530 which input data items or expected output data
`multi-tasking processor. In other words, the processor 12is
`items follow the numberin the braces. Data items can take
`capable of contemporaneously (or simultaneously,if the test
`the following form:
`system 10 has more than one processor 12) executing more
`(1) A 0-ff hexadecimal value representing one byte.
`than one process. This is usually achieved by alternately
`(2) ? indicating a byte of unspecified value. The value of
`executing one or moreinstructions of each non-idle process
`such a data item is irrelevant as this data item is to be
`in a round robin fashion. Due to the speed of the processor
`ignored.
`12, a user monitoring the input and output of a process via
`(3) Uzz indicating an auto-variable. Illustratively, 256
`the display device 18 has the impression that all processes
`355
`byte sized auto-variables are providedin the test system
`are executing simultaneously and continually. Each contem-
`500. Each auto variable functions as an ordinary vari-
`poraneously executing process may be assignedapriority
`able. Thus, the expression Uf8 returnsthe value stored
`which controls how often that process is executed by the
`in the auto variable Uf8. Operations may be performed
`processor 12 in relation to other processes. Processes with
`on auto variables using the following syntax: Uzz op1
`higher priorities are allotted more execution time in the
`zl op2 z2 op3 23, etc., where each operation op, can be
`processor 12 than processes with lower priorities.
`eeg77 ee? sehr ep? “8” (logical AND), “!”” Cogical OR),
`FIG. 5 showsa functional block diagram of a test system
`““” (logical XOR), “>” (right bit-shift), and “<” (left
`500 according to one embodimentof the present invention.
`bit-shift).
`As shown,the test system 500 executes a tester process 510
`(4) Szz indicating that a value is stored in an auto-
`and a wake-upper process 520. The tester process 510 can
`variable. This data item only occurs in an output data
`feed messages to, and receive messages from, the [UT 530
`frame for causing data outputted from the IUT 530 to
`via a pseudo lower tester 540 and a pseudo uppertester 550.
`be stored in a particular auto-variable.
`Illustratively, the tester process 510 performsall aspects of
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`30
`
`35
`
`45
`
`50
`
`60
`
`65
`
`9
`
`

`

`5,579,476
`
`7
`A SETframeis indicated by the word “SET” following
`the frame designator @__DX23. The SET frameis used for
`storing values in auto-variables. For example, in lines 36-37
`of Appendix A,16 is stored in the auto-variable Ue8 and 40
`is stored in the auto-variable Uf8.
`A GOTOframeis indicated by the word “GOTO” fol-
`lowing the frame designator @_DX23. The GOTO frame
`causes the processor 12 (FIG. 4) to branch to the frame
`indicated by the label contained in the GOTO frame. For
`example, after interpreting the GOTO framein line 171 of
`‘Appendix A, the processor 12 (FIG. 4) resumes interpreting
`with frame 4 on line 145. GOTO frames are useful for
`causing the processor 12 to repeatedly interpret a particular
`sub-sequence of frames of the test case file.
`FIG. 6 showsa flowchart illustrating the execution of the
`test system 500. Referring to FIGS. 4,5, and 6, the operation
`of the test system 500 is now illustrated. Initially,
`the
`processor 12 loads the TUT 530 into the memory 14 from,
`e.g., the storage device (disk memory) 16 for execution. The
`processor 12 then executes the interpreter sub-process 516
`by proceeding to step 602. In step 602, the processor 12
`determines whether there arc any test case files left to
`interpret. IIustratively, the test system 500 can interpret one
`or more sequences of frames in one or moretest casefiles.
`Tf all test case files have been interpreted, the processor 12
`ceases execution. Otherwise,
`the processor executes step
`604 in which the processor 12 determines if there are any
`more frameslcft in the currently interpretedtest casefile. If
`not,
`the processor 12 switches to executing the catcher
`sub-process 514 by proceeding to step 606. If there are
`framcsleft, the processor 12 continues executing the inter-
`preter sub-process 516 by interpreting the next framein step
`610.
`In step 610, the processor 12 determines whether the
`currently interpreted frame is an input/output data frame, a
`SET frame or a GOTO frame. In the event that the frame is
`a GOTOframe, the processor 12 executes step 612. In step
`612, the processor 12 causes interpretation to branch to the
`frame indicated by the label in the GOTO frame. That is,
`when the processor 12 executes a step requiring the inter-
`pretation of the next frame (step 610), the processor 12 will
`resume interpretation at the frame indicated by the label in
`the GOTOframe. The processor 12 then returns to step 604.
`In the event the frame is a SET frame, the processor 12
`executes step 614. Therein,
`the processor 12 stores an
`appropriate value in the auto-variable indicated by the SET
`frame. The processor then returns to step 604.
`In the event the frame is a data frame (i.e., input or
`output), the processor 12 proceedsto step 616. Therein,the
`processor 12 determines whether the data frame is an input
`data frame or an output data frame. In the event the data
`frame is an input data frame, the processor 12 executes the
`feeder sub-process 512 by proceeding to step 620. Therein,
`the processor 12 feeds the data contained in the input data
`framedirectly to the IUT 530. The processor 12 then returns
`to step 604.
`In the event the data frame is an output data frame, the
`processor 12 first switches to executing the catcher sub-
`process 514 by proceeding to step 622. In step 622, the
`processor 12 waits until cithcr output data is received from
`the IUT 530 via the pseudo upper tester 540 or pseudo lower
`tester 550 or until a wake-up message is received from the
`wake-upper process 520 (as discussed in greater detail
`below).
`When a wake-up message or output data is received, the
`processor executes the comparator sub-process 518 by pro-
`ceeding to step 624. Therein, the processor 12 first deter-
`
`20
`
`25
`
`40
`
`45
`
`50
`
`55
`
`65
`
`3
`mines whether a wake-up message or output data was
`received. lf a wake-up message was received, the processor
`12 proceeds to step 626, wherein the processor 12 reports an
`error in a test report file and ceases execution. Otherwise, the
`processor 12 proceedsto step 628 in which the processor 12
`compares the actually received output data with the output
`data contained in the interpreted output data frame. If they
`are notthe same,the processor proceedsto step 626, wherein
`the processor reports an error in the test report file and ceases
`execution. Otherwisc, the processor 12 returns to step 604.
`In addition, the processor 12 mayalso illustratively indicate
`in the test report file that data was properly received if the
`received output data matches the expected output data. For
`example, see Appendix B which shows two sample test
`report files generated for the twotest case files of Appendix
`A.
`
`the processor 12 waits to receive data
`In step 606,
`outputted from the IUT 530 via the pseudo upper or pseudo
`lower tester 540, 550 or a wake-up message from the
`wake-upper 520 (in a similar fashion to siep 622). Upon
`receiving either output data or a wake-up message,
`the
`processor 12 switches to executing the comparator sub-
`process 518 by proceeding to step 608. In step 608,
`the
`processor 12 determines whether a wake-up message or
`output data from the IUT 530 was received. If output data
`was received, then an error has occurred. Illustratively, all
`output data must be anticipated by an output data frame.
`Because, there are no more data frames to be interpreted
`(step 604) there are no output data frames anticipating
`outputdata. In such a case,the processor 12 proceeds to step
`626 and an error is written in the test report file.
`On the other hand, while executing the wake-upper pro-
`cess 520, the processor 12 outputs a message when the IUT
`530 completes its execution. If a wake-up message was
`received, then the wake-upper 520 has simply indicated that
`the IUT 530 properly completed the test. Thus, the processor
`returns to step 602 and the nexttest case file is interpreted.
`Contemporaneously while the processor 12 executes the
`tester process 530,
`the processor 12 also executes the
`wake-upper process 520.Illustratively, the wake-upper pro-
`cess 520 executes at a lower priority than the tester process.
`In such a case, the wake-upper process 520 does not execute
`unless and until the tester process 510 and IUT 530 are both
`idle.
`The sole purpose of the wake-upper process is to notify
`the tester process 510 if the JUT 530 properly ceases
`execution when expected or if the IUT 530 unexpectedly
`ceases execulion.If either condition occurs, the processor 12
`(while executive the wake-upper process 520) generates an
`appropriate wake-up message. The wake-up message is
`received while the processor 12 executes the catcher sub-
`process 514 of the tester process 510.
`Thetest system 500 utilizes message passing as the only
`channel for communicating between different executing
`processes such as the IUT 530,the tester process 510 and the
`wake-upper process 520. Almostall protocol software can
`be implemented as a process which communicates in such a
`fashion. Thus, the test system 500 can be used to test the
`majority of communications protocol software. The test
`system 500 can be used with the following protocols: LAPD
`(Q.921), Q.931, X.25PLP, LAPB, T.70, T.62, DTAM, and
`V.120.
`The interpretive test system provides significant advan-
`tages over the prior art. For example, the testing of X.25PLP
`using the conventional system 200 of FIG. 2 would require
`over four hours for applying all 90 test cases of a particular
`test plan. In contrast, the test system 500 can apply the same
`
`10
`
`10
`
`

`

`5,579,476
`
`9
`tests in less than four minutes and automatically generates a
`test report. Moreover, the test coverage is

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket