throbber
United States Patent [191
`Jessen et al.
`
`US005410681A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,410,681
`Apr. 25, 1995
`
`[63]
`[51]
`
`[5 8]
`
`[56]
`
`[75]
`
`[73] Assignee:
`
`[21]
`[221
`
`Appl. No.:
`Filed:
`
`[54] INTERPRETER FOR PERFORMING
`REMOTE TESTING OF COMPUTER
`SYSTEMS
`Inventors: Jay A. Jessen, Santa Clara;
`Palanivelu Nagaraian, Campbell;
`Sean L. Flynn, Cupertino; James A.
`Schneider, San Jose, all of Calif.
`Apple Computer, Inc., Cupertino,
`Calif.
`284,196
`Aug. 2, 1994
`Related US. Application Data
`Continuation of Ser. No. 795,913, Nov. 20, 1991, aban
`doned.
`Int. Cl.6 ..................... .. G06F 11/30; G06F 1l/32
`US. Cl. ........................... .. 395/500; 364/DIG. 1;
`364/DIG. 2; 364/234; 364/242.94; 364/264;
`364/264.3; 364/266; 364/267; 364/267.2;
`364/267.4; 364/267.6; 364/928; 364/943.9;
`364/944.9
`Field of Search ................ .. 364/DIG. 1 MS File,
`364/DIG. 2 MS File; 371/3, 15.1, 16.1, 16.2;
`395/500, 575, 118, 155, 156, 157, 162, 163
`References Cited
`U.S. PATENT DOCUMENTS
`4,051,326 9/ 1977
`4,710,869 12/1987
`4,882,674 1 1/ 1989
`4,899,306 2/ 1990
`4,907,146 3/ 1990
`4,920,481 4/1990
`5,036,315 7/1991
`5,045,994 9/ 1991
`5,107,497 4/1992
`5,153,886 10/1992
`5,157,782 10/ 1992
`5,185,857 2/1993
`5,214,785 5/ 1993
`5,233,611 8/1993 Triantafyllos et a1. .......... .. 37 V 16.1
`
`OTHER PUBLICATIONS
`Rose, Caroline, Hacker, Bradley, Anders, Robert, Wi
`they, Katie, Metzler, Mark, Chernicoff, Steve, Es
`pinosa, Chris, A Verill, Andy, Davis, Brent and How
`ard, Brian, Titled “Inside Macintosh Volume 1”, Pub
`lisher Addison-Wesley Publishing Company, Inc., Apr.
`
`1987, United States and Canada, pp. I-276, I-311 to
`I-334.
`Rose, Caroline, Hacker, Bradley, Anders, Robert, Wi
`they, Katie, Metzler, Mark, Chernicoff, Steve, Es
`pinoza, Chris, Averill, Andy Davis, Brent and Howard,
`Brian, Titled “Apple Inside Macintosh Volume V”,
`Publisher Addison Wesley Publishing Company, Inc.,
`pp. V-29 to V-30, V-225 to V-258, V-297-298.
`Sidhu, Gursharan S., Andrews, Richard F. and Oppen
`heimer,-Alan B., Titled “Inside Apple Talk”, Publisher
`Addison-Wesley Publishing Company, Inc., United
`States and Canada, Mar. 1989, pp. 9-1 to 9-28.
`Primagl Examiner-Robert B. Harrell
`Attorney, Agent, or Firm—Blakely, Sokoloff, Taylor &
`Zafman
`ABSTRACT
`[57]
`An interpretive language comprises instructions making
`up part of the ?rst sequence of instructions (a test
`“script”). The ?rst language comprises a ?rst set of
`instructions, the ?rst set of instructions causes a ?rst
`computer system (a “host” in a preferred embodiment)
`to issue a series of commands to a second computer
`system (a “target”) in order to cause the second com
`puter system to emulate user activity on the second
`computer system. User activity includes emulating typ
`ing text and/or moving a mouse cursor position. The
`language further comprises a second set of instructions
`which cause the ?rst computer system to issue a series
`of commands to the second computer system in order to
`cause the second computer system to respond to the
`first computer system with its state. This state includes
`user interface objects, and applications running in the
`target, etc. The language further comprises a third set of
`instructions, the third set of instructions causing the ?rst
`computer system to issue a sequence of commands to
`the second computer system to respond in a prede?ned
`manner. These instructions indicate that the target com
`puter system is to respond in within a given period of
`time, listen for further commands, etc. This is useful for
`repeatable and systematic testing of computer systems
`having a variety of hardware and software combina
`tions for compatibility testing. Multitasking using
`“threads” for control of different targets using different
`test routines is also provided.
`
`18 Claims, 11 Drawing Sheets
`
`we
`
`an:
`lumen: MQME
`an
`Nahum ltctrlgls‘El
`Gui-?g @
`Illllncl 23E
`
`.
`
`Folluns llloulod
`
`214
`212
`No 'lhnlds
`2]
`213 [?n-"are 0n
`\El Compile only 5‘11] Match Case Sensitive
`
`Keg Stroke am
`
`"w" 5""
`comm-ml Lin:
`w -
`
`CE)‘ '
`me.’
`
`Q
`l
`217
`
`001
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 1 of 11
`
`5,410,681
`
`121
`
`Target Machines
`
`Figure 1
`
`002
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 2 of 11
`
`5,410,681
`
`-llil Options
`Target | iergetMec
`‘m
`['
`Script file...
`Libraries ram...
`
`'
`
`I
`
`|
`
`4&4 km]
`ilutputfile...
`
`206
`
`208
`Network nmeggm
`Netuiork iietriglzm
`mm
`
`PQ‘IBIICB
`
`P Failures allowed
`
`214
`212
`Keg Stroke Rate
`‘
`215.}! No Threads
`213 ljz‘az a 0a
`207
`MW“ speed \@ \E] Compile only
`Match Case Sensitive
`-Commend line
`
`w .
`
`- -216
`
`RmVU-tes?oolfersimhihgeneiem users
`
`Figure 2
`
`003
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent Q
`
`Apr. 25, 1995
`
`Sheet 3 of 11
`
`5,410,681
`
`Mnclllrite 5.0
`applications
`llpplelink Folder
`m
`Q Auihorvare ml "m 3T2“
`MacPaint 2.0
`M
`[3 Landscape
`
`‘xii
`
`Size Kind
`21K
`' 314
`
`3
`
`‘w
`
`s
`
`330
`
`_
`300
`
`340
`
`6 File Edit Iliew Special
`
`350
`
`311
`
`310.
`
`Q Mama
`I ma:
`
`301 141K
`3K
`
`3“
`
`3”
`
`Ill]
`
`Trash
`
`Figure 3
`
`004
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 4 of 11
`
`5,410,681
`
`Mmmmwl.
`
`Select II"
`
`3GB
`
`Show Clipboard _
`
`_
`
`:
`
`Figure 4
`
`005
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 5 of 11
`
`5,410,681
`
`m’ m ' Menu 65 Item I '
`5a
`fuel I “am 3
`an
`Menu 65 Item 2
`m we em
`Menu 65 Item 3 _
`
`516
`517
`518
`
`006
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 6 of 11
`
`5,410,681
`
`lhemuhg
`level] Item I
`leuoll Item 2
`[mu-I1 ltvm ‘5
`
`i
`>
`
`5]]
`
`m
`
`MBIIII 76 "Bill I
`
`Menu 67 Item 2
`‘~1vhu 6? ltvm 5
`
`D
`>
`
`m N1mm It’) HMH 3
`
`' "
`
`007
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 7 of 11
`
`5,410,681
`
`700
`
`720
`I
`\
`C File Edit llieul Special
`
`721—>llJindnw2
`Name
`
`Size K'nd
`
`Size KN
`
`711
`
`' 710
`
`Ill]
`
`Trash
`
`Figure 7
`
`008
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 8 of 11
`
`5,410,681
`
`a m
`
`Rdmcmmmmm?
`
`Yss-p Retrieve omuggg?mmrm
`Using SendMouseO
`
`Calcu?mNewPositionRduivetoOld
`
`m
`
`NO _
`
`F
`395
`Issue PutMouseO To Move Mouse In
`Tm
`
`TargetGnngesVuiabkInManorym
`
`826 ~
`
`- MoveMmse
`
`B91
`Mouse Moved By Target on Next Cmsor
`Update Intel-mp:
`
`Figure 8
`
`009
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 9 of 11
`
`5,410,681
`
`Figure 9
`
`010
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 10 of 11
`
`5,410,681
`
`Figure 10
`
`011
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`US. Patent
`
`Apr. 25, 1995
`
`Sheet 11 of 11
`
`5,410,681
`
`m
`
`I
`
`“M9121?
`
`6am
`
`ma
`
`Tuk'l'imc
`
`1.195
`'
`Defer Command Until Sysmn
`
`110.6
`Process
`
`1191
`ScndResponsc
`
`‘1
`
`012
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`1
`
`5,410,681
`
`INTERPRETER FOR PERFORMING REMOTE
`TESTING OF COMPUTER SYSTEMS
`
`This is a continuation of application Ser. No.
`07/795,913, ?led Nov. 20, 1991, now abandoned.
`
`5
`
`10
`
`2
`tests must be performed ?awlessly in order for the test
`ing process to be performed effectively. In addition, the
`user must view the tested system’s display and/ or other
`results to determine if the user action achieved the de
`sired result. Again, to ensure proper functioning, this
`must be done repetitively. Human beings typically can
`not perform repetitive tasks such as these in an effective
`manner and monitor all the actions on the tested com
`puter system perfectly. Also, testing of new computer
`systems requires repetitive and repeatable testing. This
`is to ensure that errors (“bugs”) or other unexpected
`results are reproducible so that the source of the error
`can be determined. Therefore, repeatable testing on
`various hardware/ software platforms is required. These
`tests should also have a minimum impact on the system
`being tested so as to minimize the effect of the testing
`process (called “corruption”) on the computer being
`tested. These tests should also have a means for record
`ing the results of the tests so that they may be examined
`to analyze the error.
`In summary, substantial delays and errors are caused
`in the testing of computer systems prior to shipping.
`Also, the testing process may fail to catch all errors in a
`particular hardware/software combination.
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`This invention relates to performing diagnostics on
`computer systems. More speci?cally, this application
`relates to remotely testing computer systems having a
`variety of hardware/software combinations.
`2. Background of Related Art
`Traditional testing of computer systems and their
`associated software and ?rmware typically require that
`manual tests be designed in order to make sure that each
`function on given programs is operating as expected. In
`addition, such testing must be performed on a variety of
`systems running different hardware/software combina
`20
`tions to determine the compatibility of the underlying
`system. These tests require substantial user intervention
`because certain operations on these computer systems
`must be performed manually. Also, the results of those
`operations must be monitored by looking at ?les, the
`display of the system, or other results of performing the
`operations to determine if the proper result has been
`accomplished. This is a time-consuming and tedious
`process. Sometimes this takes the form of releasing a
`pre-release version of the system, a so-called “beta re
`lease.” This type of release of a product is one which is
`distributed to a limited number of individuals, typically
`very experienced computer program developers, and
`/or system programmers, to determine if there are any
`remaining errors or other unexpected results in the
`underlying system or system software.
`Both the initial testing process and the beta testing
`process, discussed above, are time-consuming and te
`dious tasks for individuals testing the computer system.
`They are also expensive for a manufacturer. Such test
`ing requires that the system be tested on a wide variety
`of compatible platforms (for instance, in the Macintosh
`brand family of computers, the Macintosh SE brand
`computer system, the Macintosh II, and other systems
`using a variety of hardware platforms but having com~
`45
`patible operating system software). For instance, an
`error which might occur in one model of machine or in
`one type of software combination may not occur on
`another machine having a different hardware and/or
`software combination. Testing each hardware platform
`in combination with certain underlying software re
`quires careful testing for proper compatibility.
`In addition to a variety of manual tests required for
`ensuring the functioning of a computer system, because
`the tests are performed manually they may become very
`55
`time-consuming and tedious. The testing process may
`also become error-prone, depending on the individuals
`performing the testing of systems. To ensure that a
`computer software product is fully functional before
`shipping a released product, the so-called “beta release”
`process takes a certain period of time. A long delay in
`testing a ?nal version of a computer system, including
`speci?c hardware and software combinations, may
`delay the release of a product so much that competitive
`advantage may be lost.
`Some prior art systems used for testing also require
`that the user input a series of commands and/or user
`activity which will generate an expected result. These
`
`25
`
`35
`
`40
`
`50
`
`65
`
`SUMMARY AND OBJECTS OF THE
`INVENTION
`One of the objects of the present invention is to pro
`vide an automated means for testing a wide variety of
`computer systems in a standardized way.
`Another of the objects of the present invention is to
`provide a means for testing computer systems in a rela
`tively systematic and error-free environment.
`Another of the objects of the present invention is to
`provide a means for testing a computer system repeti
`tively such that any errors in a variety of computer
`hardware/software combinations may be reproduced
`and thus more easily eliminated.
`Another of the objects of the present invention is to
`provide a cost effective means to test a wide variety of
`computer software/hardware combinations.
`Another of the objects of the present invention is to
`provide a means for remotely testing at least one com
`puter system to minimize the interference (the corrup
`tion) of the computer system by the apparatus perform
`ing the test.
`Another object of the present invention is to provide
`a means for remotely testing a plurality of computer
`systems by emulating user manipulation of user inter
`face objects on the systems and monitoring the results
`of the manipulation remotely.
`Another of the objects of the present invention is to
`provide a means for remotely monitoring the user inter
`face and operating system of a computer system.
`These and other objects of the present invention are
`provided for by a system for interpreting a ?rst se
`quence of instructions. A ?rst language comprises in
`structions making up part of the ?rst sequence of in
`structions (a test “script”). The ?rst set of instructions
`of the language causes a ?rst computer system (a “host”
`in a preferred embodiment) to issue a series of com
`mands to a second computer system (a “target”) in
`order to cause the second computer system to emulate
`user activity on said second computer system. User
`activity includes emulating typing text and/or moving a
`mouse cursor position. The language further comprises
`a second set of instructions. The second set of instruc
`tions causes the ?rst computer system to issue a series of
`
`013
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`4
`BRIEF DESCRIPTION OF DRAWINGS
`The present invention is illustrated by way of exam
`ple and not limitation of the of the accompanying in
`which like references indicate like elements and in
`which:
`FIG. 1 shows the coupling of computer systems used
`in the preferred embodiment.
`FIG. 2 shows a menu screen for initiating a test script
`from the host machine to be performed on a target
`machine.
`FIG. 3 shows some user interface objects which may
`be referred to and manipulated by the host machine on
`a target machine.
`FIG. 4 shows the structure of a “pull-down” menu
`which may be referenced and manipulated on a target
`machine by a host machine.
`FIGS. 5 and 6 show additional menu items which
`may be referenced and manipulated in a target machine
`by a host machine.
`FIG. 7 shows two windows which may be examined
`for matching user interface traits.
`FIG. 8 shows a flow diagram of a host'machine pro
`cess used to update a cursor position in a target ma
`chine.
`FIG. 9 shows a ?ow diagram of a host machine pro
`cess used to resize a window in a target machine.
`FIG. 10 shows an example of resizing a window in a
`target machine.
`FIG. 11 shows a communication scheme utilized by
`the target machine for communicating with the host.
`
`DETAILED DESCRIPTION
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protec
`tion. The copyright owner has no objection to the fac
`simile reproduction by anyone of the patent disclosure,
`as it appears in the Patent and Trademark Of?ce patent
`?les or records, but otherwise reserves all copyright
`rights whatsoever. Copyright Apple Computer, Inc.
`The present invention covers a method and apparatus
`for remotely testing and monitoring computer systems.
`In the following description, for the purposes of expla—
`nation, speci?c data structures, information, packets,
`protocols, user interface objects, and other details used
`by the preferred embodiment are set forth in order to
`provide a thorough understanding of the present inven
`tion. It will be appreciated, however, by one skilled in
`the art that the present invention may be practiced
`without these speci?c details. In other instances, well
`known circuits and devices are shown in block diagram
`form in order to not unnecessarily obscure the present
`invention.
`
`5,410,681
`3
`commands to the second computer system in order to
`cause the second computer system to respond to the
`?rst computer system with the state of the display of the
`second computer system. This includes user interface
`objects, and applications running in the target, etc. The
`language further comprises a third set of instructions,
`the third set of instructions causing the ?rst computer
`system to issue a sequence of commands to the second
`computer system to respond in a prede?ned manner.
`These instructions indicate that the target computer
`system is to respond in within a given period of time,
`listen for further commands, etc. The preferred embodi
`ment therefore allows a user to generate a test “script”
`or command language program which de?nes a series
`of tests which may be performed on the target com
`puter. This is useful for repeatable and systematic test
`ing of computer systems having a variety of hardware
`and software combinations for compatibility testing.
`Faults in the system(s) may be isolated, thus allowing
`corrective measures to be taken. This is a distinct im
`provement over prior art manual testing by individual
`testers.
`These and other objects of the present invention are
`provided for by an interpretive language capable of
`25
`being interpreted by a ?rst computer system (a “host”)
`to cause a second computer system to perform speci?ed
`actions. The language includes a ?rst set of descriptors
`which de?ne abstractions of user interface objects on
`the second computer system (the “target”) and a ?rst set
`of commands which direct emulated user actions to be
`performed on the user interface objects in the second
`computer system. The system also includes a second set
`of commands which request information regarding the
`user interface objects in the second computer system.
`The information is in the form of abstractions of the user
`interface objects and avoids transmitting bitmap images
`of the target computer system to the host computer
`system so that the abstractions may be checked against
`40
`expected results. Therefore, repeatable and systematic
`testing of computer systems may be accomplished.
`These and other objects of the present invention are
`further provided for a system for testing computer sys
`tems which comprises a ?rst target computer system
`having a ?rst hardware/software combination and a
`second target computer system having a second hard
`ware/software combination. A host computer system
`comprises means for directing a ?rst thread to control
`the actions of the ?rst target computer system using a
`?rst sequence of instructions and a second thread to
`control the actions of the second target computer sys
`tem using a second sequence of instructions indepen
`dent of the ?rst target computer system. Thus, multiple
`computers having different hardware/software combi
`nations may be tested using different test script routines
`using different processes (“threads”) in the host com
`puter system. The ?rst and second sequences of instruc
`tions (the test “scripts”) emulate user activity on the
`?rst and second target computer systems and cause the
`?rst and second computer systems to report the state of
`user interface objects on displays coupled to the ?rst
`and second computer systems. Therefore, the results of
`emulated user activity may be tested for. A means for
`65
`communicating, such as a local area network, couples
`the host computer system to the ?rst and second target
`computer systems.
`
`0
`
`5
`
`Coupling of the Preferred Embodiment—-FIG. 1
`The preferred embodiment is a testing environment
`wherein a “host” computer system issues commands to
`“target” computer systems, the target computer sys
`tems returning the results of those operations back to
`the host. The coupling of the systems in the preferred
`embodiment is graphically represented with reference
`to FIG. 1. For instance, on a network such as 110
`shown in FIG. 1, a host 100 may be coupled to the
`network for communication with various target ma—
`chines such as 121 through 125. The host computer
`system 100 communicates with each of target machines
`121 through 125 over network 110 for instructing the
`targets to perform various tasks. Each of the target
`
`014
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`5,410,681
`5
`machines 121 through 125 can communicate over net
`work 110 for providing results of those tasks back to
`host 100 when host 100 initiates a communication. In a
`preferred embodiment, host 100 and target machines
`121 through 125 are members of the Macintosh brand
`family of personal computers manufactured by Apple
`Computer, Inc. of Cupertino, Calif. In a preferred em
`bodiment, network 110 is the Appletalk brand local area
`network (LAN). It will be appreciated by one skilled in
`the art, however, that any type of machine which has a
`network capability may communicate with other ma
`chines in a network such as 110 in a similar manner.
`Network 110 may be one of the other types of LAN’s
`commercially available in the market, such as Ethernet,
`a token ring, or a star LAN system in alternative em
`bodiments.
`The preferred embodiment is a system in which tasks
`are described in a high level script or command lan
`guage interpreted and executed by host machine 100.
`On the basis of the commands written in this script
`language, host machine 100 directs target machines 121
`through 125 to perform certain actions and respond to
`the host with the results of those actions. Communica
`tion is provided in a manner well-known to those skilled
`in the art, between host 100 and targets 121 through 125
`using Appletalk brand network protocols (for instance,
`the Appletalk Transaction Protocol or ATP) such as
`those referred to in the publication “Inside Appletalk,
`Second Edition” by Gursharan E. Sidhu, Richard F.
`Andrews, and Alan B. Oppenheimer (1990) available
`from Addison-Wesley Publishing Company, Inc. (here
`inafter “Inside Appletalk”). The majority of the under
`lying host and target programs (known as the “host”
`and “agen ” respectively) of the preferred embodiment "
`is written in the C+ + programming language and
`compiled using the MPW C+ + compilation tools
`available from Apple Computer, Inc. of Cupertino,
`Calif. Portions are implemented in 680><0 assembly
`language. It can be appreciated by one skilled in the art
`that any other type of high level language, such as
`FORTRAN, Pascal, or low level language such as
`assembly language, may be used to implement the sys
`tem in alternative embodiments.
`The architecture of the preferred embodiment is
`45
`based on a theater metaphor. Each individual test which
`is written for target machines such as 121 through 125
`shown in FIG. 1 is executed by “actors” or subtasks in
`the host. Each of the actors plays different roles, per
`forming different tests by interpreting and executing
`actions indicated by di?'erent “scripts” (command lan
`guage routines) for target machines coupled to network
`110. There is also a “director” in the system of the
`preferred embodiment which stages, oversees, and di
`rects the test execution of each of the actors. An actor
`may be any entity that plays a role in a testing process.
`The most common types of actors which are used in the
`preferred embodiment are those which emulate user
`action in the target system. Other actors which are
`contemplated within the spirit and scope of the pre
`60
`ferred embodiment are those which include a human
`tester entering commands on the keyboard directly on
`each of the target machines, or any external functions
`which can communicate with the director or the actors
`running the tests. Each of the actors runs as an indepen
`dent task in a multitasking mode along with the direc
`tor. Actors in the system of the preferred embodiment
`are different processes or “threads” which are con
`
`65
`
`55
`
`6
`trolled by the script associated with the actor and the
`director.
`Because each of the target machines 121 through 125
`may be different models of the same computer system
`with different hardware and/or software con?gura
`tions, it is possible to test computer software on each of
`the systems using the same set of tests, but in different
`hardware/software environments. Therefore, compati
`bility testing of the program with various con?gura
`tions of hardware and software may be performed. In
`addition, the preferred embodiment provides for rigor
`ous repetitive testing of each of the target machines
`using the scripts for each of the actors. Therefore, faults
`may be detected from multiple iterations of a script,
`wherein a manual testing of individual machines may
`not otherwise uncover such ?aws.
`The system of the preferred embodiment comprises
`two major components: the host system, and the target
`system(s). The host system provides all the “acting” and
`“directing” functions as described above. The host in~
`terprets the scripts and issues commands to the target
`machines to perform emulated user operations based on
`those scripts. Also, the host issues queries to determine
`the state of the target machines and receives messages
`from the target machines responding with the requested
`information. In this manner, various user actions may be
`emulated on the target machines and the results exam
`ined by the host for faults. The target machines receive
`the messages transmitted by the host, perform the ac
`tion as if a user was operating the target machine, and
`sample certain data structures within the target machine
`reporting back to the host machine to indicate whether
`given operations were successful or not. These func
`tions will be discussed in more detail below. The pro
`gram running on the target machine, known as an
`“agent”, is installed on the target machine in a prede
`?ned directory (the “System Folder” in the Macintosh ’
`brand operating system) so that it will be recognized
`and loaded during power up initialization of the target
`machine. In the Macintosh brand operating environ
`ment, the agent program is loaded into the central pro
`cessing unit as an initialization routine known as an
`“INIT” or “system extension.” In alternative embodi
`ments on IBM PC brand compatible computer systems,
`such a routine may be loaded as a “TSR” (“terminate
`and stay residen ”) program which resides in the mem
`ory of the target system and performs given actions as
`directed by the host.
`
`Command Line Invocation
`The host machine operates in two modes for initiating
`execution of scripts via actors onto target machines: a
`command line mode; or an interactive window interface
`controlled mode. The command line scheme may be
`used to launch actors in the preferred embodiment using
`a command line such as:
`vu-a “Actor1”-t “*:TargetMac”-s Script.vu
`which starts the actor thread ”Actor1” in the host to
`control the target machine “TargetMac” using the
`script “Script.vu.” Each of the parameters in the above
`example command line are de?ned as follows. The “-a”
`option speci?es the name of the actor. This name is an
`alphanumeric string. From that point on, the test run
`ning on the target machine may be referred ‘to by this
`string. So, in the example given above, the test running
`on the target machine may be referred to as the process
`“Actorl.” This may be used for checking the results of
`given tests, or performing single line commands. The
`
`015
`
`ServiceNow's Exhibit No. 1003
`
`
`
`

`

`8
`-p <patience setting>: This option is used to set the
`overall execution speed of the actor (and therefore
`commands) on the target machine. Actions get
`slower as patience increases. The default setting for
`patience is one.
`-fail < n >: This command is used to specify the maxi
`mum number of command failures that are to be
`allowed in the course of script execution. If the
`number of failures exceeds <n>, script execution
`will abort. The default setting is in?nite, so script
`execution will not stop until the script has been
`completed or the user aborts execution.
`-timeout <t>: This option is used to set the maxi
`mum time to wait for a transaction with a target
`machine to complete. If the transaction fails to
`complete within <t>, then the transaction is con
`sidered to have failed. The default setting is 20. The
`maximum value is 255.
`-retries < r>: This sets the maximum number of times
`the actor retries a transaction with the target ma
`chine. The default setting is 3. The maximum num
`ber is 255. If 255 is given, in the preferred embodi
`ment, the number of retries will be considered to be
`in?nite. When this occurs, the actor will keep try
`ing to reaquire the target.
`-cs: This makes the actors string matching case sensi
`tive. The default for this setting is that string
`matching is not case sensitive. For instance, in
`default operating mode, “USER” and “user”
`would be considered the same entity by an actor,
`but would not be the same when the “-cs” option is
`used.
`-
`
`0
`
`25
`
`5,410,681
`7
`option indicates the target address of the target
`machine. In this case, the target is “*zTargetMac.” The
`target name is speci?ed in the following format:
`“<zone>: <target user name>.” The “*” as used in
`the Appletalk brand networking system, is the current
`zone that the host machine resides in. Further, the tar
`get user name, in this case, “TargetMac” is the second
`?eld. The speci?cation of named entities in networks
`such as zones and user names are discussed in more
`detail in the publication “Inside Appletalk,” at pages 7-1
`to 8-24. It will be appreciated by one skilled in the art
`that other types of networking systems may be used in
`alternative embodiments which use unique network
`addresses or names for target machines. In an alterna
`tive embodiment, the network path name may be re
`placed with the Internet address of the target machine.
`This address will be of the form “ <network number>:
`<note I.D.>: <socket number>.”
`The “-s” option, as shown on the command line
`above, is used for indicating the name of the script (or
`20
`command) ?le to be executed on the target machine by
`the actor. Script ?les contain a sequence of instructions
`which cause actions to occur on the target machine for
`either causing speci?c user actions to be emulated,
`checking the state of the target machine, or performing
`other functions such as modifying variables within the
`script ?le (for example, error counts) for performance
`of the test. Script ?les will be discussed in more detail
`below.
`Other options which may be speci?ed on the “vu”
`command line include the following:
`-c: This option indicates compile only. It is used for
`checking the syntax of the script fle without exe
`cuting it. Error messages are reported to the user of '
`the host using the standard output ?le (for instance,
`35
`the display). Using this option does not require the
`user to specify a target machine.
`-1 <log ?le name>: This is used for specifying the
`name of a log ?le. Any output messages from the
`script ?le which would normally go to the standard
`output ?le of the host (such as the display) or error
`warning messages will be placed into the ?le enti
`tled <log ?le name> on the host.
`-dt: This option indicates that a diagnostic trace is to
`be performed when executing the script ?le. This
`45
`option may only be used when a log ?le has been
`speci?ed using the -1 option discussed above. Any
`errors or other warning messages will be placed
`into the ?le speci?ed by the -1 option.
`-0 <output ?le name>: This option is used to redi
`rect the output of print or display statements from
`the standard output ?le (typically the display) to a
`speci?ed fle. This may be used for redirecting the
`output of individual actors to speci?ed ?les. There
`fore, separate ?les may be maintained as outputs for
`separate actors.
`-m <mouse speed>: This option is used to specify
`the speed of a mouse movement on the target ma
`chine. A mouse moves in prede?ned time intervals
`known as steps. <mouse speed> speci?es the
`number of pixels that the mouse will move in each
`step on the target machine. If all mouse movements
`are desired by the user to be moved in onestep, the
`speed should be set to zero. The default setting for
`the speed is 50.
`-k <key stroke rate>: This option is used to set the
`maximum rate of keystrokes on the target machine
`in characters per second. The default setting is 20.
`
`-libs <search path>: This is used to specify the path
`or the directories in which the host is to access task
`libraries. The system of

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