US20130137498A1 - Electronic Gaming Machine Automated Testing - Google Patents

Electronic Gaming Machine Automated Testing Download PDF

Info

Publication number
US20130137498A1
US20130137498A1 US13/307,498 US201113307498A US2013137498A1 US 20130137498 A1 US20130137498 A1 US 20130137498A1 US 201113307498 A US201113307498 A US 201113307498A US 2013137498 A1 US2013137498 A1 US 2013137498A1
Authority
US
United States
Prior art keywords
gaming machine
test
electronic gaming
egm
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/307,498
Inventor
Rodney Lynn Willyard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Multimedia Games Inc
Original Assignee
Multimedia Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US13/307,498 priority Critical patent/US20130137498A1/en
Assigned to MULTIMEDIA GAMES, INC. reassignment MULTIMEDIA GAMES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WILLYARD, RODNEY LYNN
Application filed by Multimedia Games Inc filed Critical Multimedia Games Inc
Assigned to COMERICA BANK, A TEXAS BANKING ASSOCIATION reassignment COMERICA BANK, A TEXAS BANKING ASSOCIATION SECURITY AGREEMENT Assignors: MULTIMEDIA GAMES, INC.
Publication of US20130137498A1 publication Critical patent/US20130137498A1/en
Assigned to MEGABINGO INTERNATIONAL, LLC, MULTIMEDIA GAMES, INC., MGAM TECHNOLOGIES, LLC, MULTIMEDIA GAMES HOLDING COMPANY, INC. reassignment MEGABINGO INTERNATIONAL, LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: COMERICA BANK
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GLOBAL CASH ACCESS, INC., MULTIMEDIA GAMES, INC.
Assigned to EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.), EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC.) reassignment EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.) RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: BANK OF AMERICA, N.A.
Assigned to EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC.), EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.) reassignment EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC.) RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: BANK OF AMERICA, N.A.
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: CENTRAL CREDIT, LLC, EVERI GAMES HOLDING INC., EVERI GAMES INC., EVERI HOLDINGS INC., EVERI INTERACTIVE LLC, EVERI PAYMENTS INC., GCA MTL, LLC
Assigned to EVERI GAMES INC., EVERY PAYMENTS INC., CENTRAL CREDIT, LLC, EVERI GAMES HOLDING INC., EVERI HOLDINGS INC., EVERI INTERACTIVE LLC, GCA MTL, LLC reassignment EVERI GAMES INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JEFFERIES FIANANCE LLC
Assigned to GCA MTL, LLC, EVERI HOLDINGS INC., EVERI GAMES HOLDING INC., CENTRAL CREDIT, LLC, EVERI PAYMENTS INC., EVERI INTERACTIVE LLC, EVERI GAMES INC. reassignment GCA MTL, LLC CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Assignors: JEFFERIES FINANCE LLC
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT (SHORT-FORM) Assignors: EVERI HOLDINGS INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • G07F17/3204Player-machine interfaces
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/3232Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed
    • G07F17/3234Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed about the performance of a gaming system, e.g. revenue, diagnosis of the gaming system
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F9/00Details other than those peculiar to special kinds or types of apparatus
    • G07F9/02Devices for alarm or indication, e.g. when empty; Advertising arrangements in coin-freed apparatus
    • G07F9/026Devices for alarm or indication, e.g. when empty; Advertising arrangements in coin-freed apparatus for alarm, monitoring and auditing in vending machines or means for indication, e.g. when empty

Definitions

  • the present invention relates generally to gaming systems, machines, and methods used to provide wagering games, and, more particularly, to electronic gaming machine automated testing.
  • Gaming systems, machines, and methods used to provide wagering games may be electronically implemented by mechanisms akin to traditional slot machines. These may be referred to as “slot machines” because they commonly show the result of a wager by displaying reels of symbols or empty spaces, and indicating a payout based on particular alignments or combinations of the symbols or empty spaces. In an electronic slot machine, the results may be determined by generating a random number to select a payout from a set or range of possible payouts.
  • Gaming systems, machines, and methods used to provide wagering games may be electronically implemented by instant lottery systems. These may be referred to as “video lottery” systems because they commonly show the result of a play in the lottery game on a video display device at the player terminal.
  • the results may be identified by a set of electronic lottery records.
  • the set of electronic lottery records may be analogous to a set of printed paper lottery game tickets.
  • Individual lottery game play records may be assigned from the set of electronic lottery game play records in some random order in response to requests for plays in the lottery game.
  • the result defined by an assigned electronic lottery game play record may be displayed at an electronic lottery player station rather than on a printed lottery ticket.
  • an electronic lottery game set may include one million records, with one record associated with the top prize, ten records associated with a next highest prize, and so forth throughout all of the potential results available in the lottery game set.
  • Gaming systems, machines, and methods used to provide wagering games may be electronically implemented by predetermined cards or displays and include a number of designations randomly arranged in a grid, matrix, or other layout of locations.
  • The may be referred to as “bingo” systems.
  • the game board or display may be represented by a data structure which defines a representation having various card or display locations and designations associated with the locations. For example, in a traditional bingo game sequence, a number of the predetermined bingo cards are first sold for a particular bingo game. After the sale of bingo cards is closed for a given game, designations are randomly selected from a pool of available designations and matched to the designations on each bingo card that is in play in the bingo game. This matching of bingo designations randomly selected for a game and bingo designations associated with a bingo card in play in the game may be referred to as daubing the card.
  • a method for testing an electronic gaming machine includes generating a test sequence comprising one or more tests to be conducted on the electronic gaming machine, generating a test script from the test sequence, accessing a protocol dictionary to determine values for the inputs, emulating one or more parts of the electronic gaming machine by applying the specific values for the inputs to the electronic gaming machine, receiving one or more outputs from the electronic gaming machine, accessing the protocol dictionary to determine conditions associated with the outputs, and interpreting the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met.
  • the tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine.
  • the test script includes one or more inputs to be applied to the electronic gaming machine. The one or more inputs are associated with wagering game play. The values emulate one or more parts of the electronic gaming machine.
  • an article of manufacture includes a computer readable medium and computer-executable instructions carried on the computer readable medium.
  • the instructions are readable by a processor.
  • the instructions when read and executed, cause the processor to generate a test sequence comprising one or more tests to be conducted on the electronic gaming machine, generate a test script from the test sequence, access a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine, emulate one or more parts of the electronic gaming machine by applying the values for the inputs to the electronic gaming machine, receive one or more outputs from the electronic gaming machine, access the protocol dictionary to determine conditions associated with the outputs, and interpret the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met.
  • the tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine.
  • the test script includes one or more inputs to be applied to the electronic gaming machine. The one or more inputs are associated with wagering game play.
  • a system for testing an electronic gaming machine includes a test server comprising a server processor coupled to a server memory and a test fixture comprising an emulator.
  • the server memory containing instructions for causing the server processor to generate a test sequence comprising one or more tests to be conducted on the electronic gaming machine, generate a test script from the test sequence, the test script comprising one or more inputs to be applied to the electronic gaming machine, access a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine, and communicate the values to the test fixture.
  • the emulator is configured to emulate one or more parts of the electronic gaming machine by applying the values for the inputs to the electronic gaming machine, receive one or more outputs from the electronic gaming machine, and communicate the outputs to the test server.
  • the server memory contains further instructions for causing the server processor to access the protocol dictionary to determine conditions associated with the outputs and interpret the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met.
  • the test fixture is communicatively coupled to the test server.
  • the tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine.
  • the one or more inputs are associated with wagering game play;
  • a method of determining a protocol dictionary includes determining an input to be applied to an electronic gaming machine, applying the input to the electronic gaming machine, monitoring the application of input to the electronic gaming machine, recording the input to the electronic gaming machine in an operational trace, associating the operational trace with the input, and storing the association in the protocol dictionary. The input associated with wagering game play.
  • a method of determining a protocol dictionary includes determining an input to be applied to an electronic gaming machine, the input associated with wagering game play, applying the input to the electronic gaming machine, receiving an output from the electronic gaming machine in response to the input, recording the output to the electronic gaming machine in an operational trace, associating the operational trace with the output, and storing the association in the protocol dictionary.
  • FIG. 1 is an example and embodiment of a system for electronic gaming machine (“EGM”) automated testing
  • FIG. 2 is another illustration of a system for providing EGM automated testing
  • FIG. 3 is an example embodiment of a system for determining a protocol dictionary for use in subsequent testing of an EGM-under-test
  • FIG. 4 is an example method for applying a test to an EGM-under-test.
  • FIG. 5 is an example illustration of a method for determining a protocol dictionary for translating test steps to be communicated to an EGM or for translating test results from an EGM.
  • FIG. 1 is an example and embodiment of a system 100 for electronic gaming machine (“EGM”) automated testing.
  • System 100 may be configured to perform validation, verification, or other test on a wagering game based in an EGM.
  • system 100 may be configured to test EGM software 106 .
  • System 100 may include an EGM-under-test 102 communicatively coupled to an EGM test fixture 104 .
  • EGM test fixture 104 may be configured to send one or more signals, messages, or other communication to EGM-under-test 102 .
  • EGM-under-test 102 may be configured to process the signals, messages, or other communication as input to EGM software 106 .
  • EGM-under-test 102 may be configured to send one or more signals, messages, or other communication to EGM test fixture 104 .
  • EGM test fixture 104 may be configured to capture and process such signals, messages, or other communication as output of EGM software 106 .
  • System 100 may be configured to test a wagering game embodied within EGM software 106 .
  • EGM software 106 may be tested by system 100 .
  • system 100 may test an individual game or a game based on a common software platform.
  • EGM software 106 may be developed as a new wagering casino game that may require testing to ensure proper operation within a casino environment.
  • EGM software 106 may require testing for any suitable parameter, such as appropriate response to funding or defunding actions, game play, payouts, or response to input or output.
  • System 100 may provide automated testing of EGM software 106 .
  • Manual testing may be used to test EGM software 106 .
  • debugging or testing hooks may be added to EGM software 106 such that EGM software 106 provides particular values at particular points in the execution of the EGM software 106 .
  • debugging or testing hooks may alter the performance of the software and thus may be undesirable.
  • system 100 may be configured to test EGM software 106 as EGM software 106 will be deployed in an actual, production EGM. In such an embodiment, EGM software 106 may be used without any debugging or testing hooks.
  • System 100 may be configured to conduct full regression, automated testing of EGM software 106 .
  • System 100 may be configured to use automated testing of EGM software 106 to emulate corner or edge cases, such as where a player card or voucher would be inserted at the same time.
  • System 100 may provide testing of any suitable part of EGM software 106 , including game play, funding operations, defunding operations, input/output controls, or payouts.
  • EGM-under-test 102 may include one or more modules for accepting signals, commands, or other communication.
  • such modules may be included in EGM software 106 .
  • such modules may be external interfaces to EGM software 106 .
  • Such modules may include digital-analog converters configured to transform digital signals to analog and vice-versa; data busses; communication ports; software and/or software application programming interfaces (APIs); digital ports; or other suitable mechanisms for communicating between EGM software 106 and devices external to the software.
  • APIs software application programming interfaces
  • Such modules may be present in a production EGM.
  • EGM-under-test 102 may include a touch screen input module 110 configured to accept signals, messages, or commands indicative of input from a touch screen. Such signals may include those that would be input from a user playing a casino wagering game on an EGM.
  • EGM-under-test 102 may include a video output module configured to output signals, messages, or commands related to video output. Such signals may be associated with that sent as output to a display of an EGM from EGM software 106 .
  • EGM-under-test 102 may include a SAS communication module 118 configured to accept signals, messages, or commands indicative of input from an SAS test host. While SAS communication may be used, EGM 102 may include any suitable communication module corresponding to a communication used by EGM.
  • EGM-under-test 102 may include a bill acceptor input module 122 configured to accept signals, messages, or commands indicative of input from a bill accepter on an EGM. Such signals may be associated with inserting currency into an EGM for wagering game play.
  • EGM-under-test 102 may include a card reader input module 126 configured to accept signals, messages, or commands indicative of input from a card reader on an EGM. Such signals may be associated with a player inserting a player card, used to track game play for affinity and marketing purposes, into an EGM.
  • EGM-under-test 102 may include a voucher reader input module 128 configured to accept signals, messages, or commands indicative of input from a voucher reader on an EGM. Such signals may be associated with a player inserting a voucher, indicating a balance of credits or currency available for wagering game play, into an EGM.
  • EGM-under-test 102 may include a voucher printer output module 132 configured to output signals, messages, or commands indicative of output to a voucher printer on an EGM. Such signals may be associated with output from EGM software 106 to refund unplayed credits on the EGM by attempting to print a voucher for a user to move credits to another EGM or take to a cashier.
  • EGM-under-test 102 may include a button input module 134 configured to receive signals, messages, or commands indicative of buttons, levers, or other input of an EGM. Such signals may be associated with a user pressing buttons, pulling levers, or taking other actions on an EGM.
  • the buttons may include buttons for selecting wagers, lines of game play, hold cards, or other actions for an EGM.
  • EGM-under-test 102 may include a lights output module 138 configured to output signals, messages, or commands indicative of lights displayed on an EGM. Such signals may be associated with turning lights on or off, playing sounds, or other display actions on an EGM.
  • EGM-under-test 102 may include a switches output module 142 configured to output signals, messages, or commands to control switches on an EGM. Such signals may be associated with display mechanisms of an EGM, such as spinning a wheel.
  • EGM-under-test 102 may include a universal serial bus (“USB”) I/O module 146 configured to output signals, messages, or commands for input or output to accessories, communication modules, or other portions of an EGM using USB.
  • USB universal serial bus
  • EGM-under-test 102 may include a mechanical reel output module 150 configured to output signals, messages, or commands for mechanical reels, which may display the result of a slot machine.
  • modules Although a particular number of modules are shown in EGM-under-test 102 , any suitable kind or number may be used. The functionality of one or more of the modules may be bundled within a fewer number of modules. One or more of the modules may be included within EGM software 106 .
  • Each of such modules of EGM-under-test 102 may be communicatively coupled to corresponding modules in test fixture 104 .
  • Test fixture 104 may include any suitable number of such modules for interfacing with EGM-under-test 102 .
  • the modules may be communicatively coupled to test module 108 .
  • Test fixture 104 may include test module 108 .
  • Test module may be configured to control or coordinate operation of test fixture 104 .
  • Test module 108 may be configured to send or receive signals, commands, or other communication through various modules to EGM-under-test 102 .
  • test fixture 104 for interfacing with EGM-under-test 102
  • any suitable kind or number may be used.
  • the functionality of one or more of the modules may be bundled within a fewer number of modules.
  • Each of the interfaces in test fixture 104 may be configured to simulate, emulate, or record the operation of part of a casino wagering machine or system. Such operations may be provided to provide a test environment for EGM-under-test 102 .
  • Each of the interfaces may include digital-analog converters configured to transform digital signals to analog and vice-versa; power control busses; serial ports; digital input and output lines and cards; data busses; communication ports; software and/or software application programming interfaces (APIs); digital ports; or other suitable mechanisms for communicating with EGM-under-test 102 .
  • digital-analog converters configured to transform digital signals to analog and vice-versa
  • power control busses serial ports
  • digital input and output lines and cards data busses
  • communication ports software and/or software application programming interfaces (APIs); digital ports; or other suitable mechanisms for communicating with EGM-under-test 102 .
  • APIs software application programming interfaces
  • test fixture 104 may include a touch screen emulator 112 configured to provide signals, messages, or commands emulating the input of a touch screen to EGM-under-test 102 .
  • Touch screen emulator 112 may be communicatively coupled to touch screen input module 110 .
  • Touch screen emulator 112 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Touch screen emulator may emulate, for example, input from buttons for placing wagers, selecting paylines, cashing out of an EGM, selecting hold cards, or other input or output associated with a user using an EGM.
  • Test fixture 104 may include a Virtual Network Computing (“VNC”)-Kernel-based Virtual Machine (“KVM”) switch module 116 communicatively coupled to video output module 114 and configured to receive signals, messages, or commands from video output module 114 .
  • VNC-KVM switch module 116 may provide output from touch screen input module 110 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • VNC-KVM switch module 116 may provide interactive and/or automated control of input and output between a test server and an EGM-under-test.
  • VNC-KVM switch module 116 may be configured to sense digital or analog video interfaces, audio, or other user input and output.
  • test fixture 104 may include an SAS test host 120 .
  • test fixture 104 may be included in another portion of system 100 .
  • SAS test host 120 may be communicatively coupled to SAS communication module 118 and configured to send and receive signals, messages, or commands to or from SAS communication module 118 .
  • SAS test host 120 may be configured to simulate or emulate SAS communication between an EGM and other portions of a casino network system.
  • SAS test host 120 may provide signals to or from test module or to or from other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a bill acceptor emulator 124 communicatively coupled to bill acceptor input module 122 .
  • Bill acceptor emulator 124 may be configured to provide signals, messages, or commands to emulate acceptance of currency at an EGM.
  • Bill acceptor emulator 124 may be configured to receive input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a card reader emulator 128 configured to provide signals, messages, or commands emulating the input of a player card used to access an EGM to EGM-under-test 102 .
  • Card reader emulator 128 may be communicatively coupled to card reader input module 126 .
  • Card reader emulator 128 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a voucher input/output (“I/O”) emulator 130 configured to provide or receive signals, messages, or commands emulating or containing vouchers for transferring funds between an EGM to EGM-under-test 102 .
  • Voucher I/O emulator 130 may be communicatively coupled to voucher reader input module 128 and/or voucher reader output module 132 .
  • Card reader emulator 118 may communicate I/O for test module 108 or for other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a button emulator 136 configured to provide signals, messages, or commands emulating the input of a buttons on an EGM to EGM-under-test 102 .
  • Button emulator 136 may be communicatively coupled to button input module 134 .
  • Button emulator 136 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a light reader 140 configured to receive signals, messages, or commands from lights output module 138 in EGM-under-test 102 .
  • Light reader 140 may be communicatively coupled to lights output module 138 .
  • Light reader 140 may provide output from lights output module 138 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a switch reader 144 configured to receive signals, messages, or commands from switch output module 142 in EGM-under-test 102 .
  • Switch reader 144 may be communicatively coupled to switch output module 142 .
  • Switch reader 144 may provide output from switch output module 142 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a USB I/O emulator 148 configured to send and receive signals, messages, or commands with USB I/O module 146 in EGM-under-test 102 .
  • USB I/O emulator 148 may be communicatively coupled to USB I/O module 146 .
  • USB I/O emulator 148 may facilitate I/O with test module 108 or other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test fixture 104 may include a mechanical reel reader 152 configured to receive signals, messages, or commands from mechanical reel output module 150 in EGM-under-test 102 .
  • Mechanical reel reader 152 may be communicatively coupled to mechanical reel output module 150 .
  • Mechanical reel reader 152 may provide output from mechanical reel output module 150 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Test module 108 may be configured to send or receive signals to EGM-under-test 102 through interface modules such as shown in FIG. 1 to test the operation of EGM-under-test 102 .
  • Test module 108 may be configured to record resulting signals from EGM-under-test 102 .
  • Test fixture 104 may include a processor 158 coupled to a memory 162 .
  • EGM-under-test 102 may include a processor 156 coupled to a memory 160 .
  • Test module 108 may be implemented by logic or instructions resident in memory 162 to be executed by processor 158 .
  • EGM software 106 may be implemented by logic or instructions resident in memory 160 to be executed by processor 156 .
  • Test fixture 104 may include a touch screen emulator 112 configured to provide signals, messages, or commands emulating the input of a touch screen to EGM-under-test 102 .
  • Touch screen emulator 112 may be communicatively coupled to touch screen input module 110 .
  • Touch screen emulator 112 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102 .
  • Processors 156 , 158 may comprise, for example a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data.
  • processors 156 , 158 may interpret and/or execute program instructions and/or process data stored in memories 160 , 162 .
  • Memories 160 , 162 may be configured in part or whole as application memory, system memory, or both.
  • Memories 160 , 162 may include any system, device, or apparatus configured to hold and/or house one or more memory modules. Each memory module may include any system, device or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media).
  • EGM-under-test 102 may include some or all of an EGM including any casino or wagering system configured to provide wagering or casino games on devices such as EGMs to a user.
  • the EGM may include any suitable electronic device for providing wagering or casino game play, such as a slot machine, video poker machine, bingo machine, or lottery machine.
  • FIG. 2 is another illustration of system 100 for providing EGM automated testing.
  • System 100 may include a test server 206 communicatively coupled to test fixture 206 .
  • test server 206 may be communicatively coupled to SAS test host 120 .
  • Test server 206 may be configured to communicate with test fixture 104 to provide tests to be conducted on EGM-under-test 102 and to receive the results of such tests.
  • Test server 206 may include any suitable components for determining and executing tests to be conducted upon EGM-under-test 102 , including a test sequence module, test script generator 214 , test result logger 226 , test script interpreter 218 , or result interpreter 224 .
  • Test server 206 may include or may be communicatively coupled to sources of information for conducting tests upon EGM-under-test such as test sequence database 210 , results database 228 , or protocol dictionary 222 . Although a single test server 206 and a certain number and kind of components and sources of information are shown, the functionality of test server 206 and such components and information may be implemented in any suitable number and kind of entities configured to perform the functionality described herein.
  • Test server 206 may include a processor 230 coupled a memory 232 .
  • the memory 232 may include logic or instructions to be executed to perform the functionality of test server 206 as described herein.
  • Processor 230 may comprise, for example a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data.
  • processor 230 may interpret and/or execute program instructions and/or process data stored in memory 232 .
  • Memory 232 may be configured in part or whole as application memory, system memory, or both.
  • Memory 232 may include any system, device, or apparatus configured to hold and/or house one or more memory modules. Each memory module may include any system, device or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media).
  • Test sequence module 208 may be configured to control operation of test server 206 and provide a user interface to an operator of test server 206 .
  • Test sequence module 208 may include commands, instructions, or options for loading tests to be conducted upon EGM-under-test 102 , configuring system 100 for testing EGM-under-test 102 , logging results from testing EGM-under-test 102 , or any other suitable operation.
  • Test sequence module 208 may be implemented by, for example, an application, software module, or library.
  • Test sequence module 208 may be communicatively coupled to test sequence database 210 .
  • Test sequence module 208 may be configured to query test sequence database 210 to obtain a test sequence 212 to be conducted upon EGM-under-test 102 .
  • Test sequence module 208 may be configured to provide operations for a user of test sequence module 208 to develop test sequence 212 .
  • Test sequence module 208 may be configured to save a developed or modified test sequence 212 to test sequence database 210 for later use.
  • Test sequence database 210 may be implemented in, for example, a database, record, file, or any other suitable structure.
  • Test sequence database 210 may include one or more test sequences for use by test sequence module 208 .
  • Test sequence database 210 may store test sequences according to the range of tests required for a given EGM. For example, all EGMs may be subject to a common set of tests, such as accepting currency or affinity player cards and registering such input in available credit or communicating game play to a server. In another example, an EGM developed from a common platform or family of EGM games may be tested for a common feature, such as simulated or physical, mechanical slot machine reels.
  • a particular type of EGM game may require tests common to the type of EGM, such as a video poker EGM requiring testing of “keep” buttons.
  • an EGM may require testing specific to the EGM itself as determined by a developer of the EGM.
  • a single test sequence may be created or stored.
  • multiple test sequences testing a subset of functionality may be created or stored for a given EGM.
  • Test sequence 212 may include an ordered sequence of tests that may be conducted upon EGM-under-test 102 .
  • Test sequence 212 may include one or more subsequences, which may each be stored separately in test sequence database.
  • Test sequence 212 may contain commands of input that are to be passed to EGM-under-test 102 and may contain conditions that are to be subsequently checked after the commands are issued.
  • the ordered sequence of tests in test sequence 212 may include logical descriptions of the tests to be conducted upon EGM-under-test 102 .
  • Test sequence 212 may include indications of multiple steps, timing, operations to be conducted with a given module of the test fixture, parameters for such operations, or expected outputs or output criteria.
  • test sequence 212 may include indications of a test step such as
  • test sequence 212 may be implemented using Boolean logic, execution loop logic, functions, or any suitable programmatic instructions.
  • Test sequence 212 may contain elements sufficiently abstracted to enable a user of test server 206 to quickly and efficiently create or modify test sequences.
  • Test sequence module 208 may be communicatively coupled to test script generator 214 .
  • Test sequence 212 may be sent by test sequence module 208 to test script generator 214 .
  • Test script generator 214 may be configured to generate a test script based upon test sequence 212 .
  • test script generator 214 may be included within test sequence module 208 to provide operational parameters, setup information, headers, or other tasks associated with testing EGM-under-test 102 .
  • Test script generator 214 may be configured to generate a test script 216 from test sequence 212 .
  • Test script generator 214 may be configured to determine specific portions of EGM-under-test 106 that are to be tested.
  • a test sequence 212 may indicate that $5 may be deposited within EGM-under-test 102 for each currency acceptance method on the EGM-under.
  • Test script generator 214 may be configured to determine the methods by which EGM-under-test 102 may be configured to implement the deposit of $5.
  • EGM-under-test 102 may be configured to accept a $5 bill from a particular make, model, or kind of bill acceptor or a bill acceptor with a particular interface.
  • EGM-under-test 102 may be configured to accept a $5 deposit from a bill collector or from a voucher reader.
  • Test script generator 214 may generate a test script 218 identifying the specific bill acceptor used by EGM-under-test 102 , the range of bill acceptors that may be used by EGM-under-test 102 , or the range of methods—such as insertion of a bill or insertion of a voucher—that may be used to fund game play.
  • Test script generator 214 may be implemented by, for example, an application, software module, or library.
  • Test script 216 may include a set of steps to be conducted for testing EGM-under-test 102 that are more detailed compared to test sequence 212 . The steps may contain, for example, commands, functions, parameters specific to the hardware used or emulated for EGM-under-test 102 .
  • Test script 216 may include setup, termination, or other background steps necessary to test EGM-under-test 102 .
  • Test script generator 214 may be communicatively coupled to test script interpreter 218 .
  • Test script generator 214 may be configured to send test script 216 to test script interpreter 218 .
  • Test script interpreter 218 may be configured to interpret test script 216 and communicate specific actions to be conducted upon EGM-under-test 102 by test fixture 104 . Such actions may include the signals, commands, voltages, or other communication to be sent by test fixture 104 to EGM-under-test 102 , or the signals, commands, voltages, or other communication from EGM-under-test 102 that will be observed or recorded by test fixture 104 .
  • test script 216 may designate that the bill acceptor emulator 124 of test fixture 104 should emulate acceptance of a $5 bill.
  • Test script generator 214 may be configured to send commands to test fixture 104 to issue the specific voltages, commands, data bits, or other indicia of information to bill acceptor input module 122 representing input of a $5 bill.
  • test script interpreter 218 may be configured to access protocol dictionary 222 .
  • Protocol dictionary 222 may be implemented by a database, library, record, file, or any other suitable mechanism.
  • Protocol dictionary 222 may include an association of a set of specific voltages, commands, data bits, or other indicia of information for a given value to be sent or received from EGM-under-test 102 .
  • Protocol dictionary 222 may include such associations indexed by EGM type, interface type, action, or any other suitable criteria.
  • Test script interpreter 218 may be configured to communicate specific voltages, commands, data bits, or other information determined by interpreting test script 216 to test fixture 104 to be applied to EGM-under-test 102 .
  • Test fixture 104 may be configured to apply the specific voltages, commands, data bits, or other information to EGM-under-test 102 as shown in FIG. 1 .
  • Test fixture 104 may be configured to receive voltages, commands, data bits, or other information from EGM-under-test 102 as a result of tests applied to EGM-under-test 102 as shown in FIG. 1 .
  • Test fixture 104 may be configured to communicate such results or output values to test server 206 .
  • Result interpreter 224 may be configured to receive such information.
  • Result interpreter 224 may be implemented by, for example, an application, software module, or library.
  • Result interpreter 224 may be configured to access protocol dictionary 222 to interpret results received from test fixture 104 .
  • test fixture 104 may return a particular data stream from printer voucher output module 132 .
  • Result interpreter 224 may be configured to look up some or all of the data stream in protocol dictionary 222 to determine the value of the printed voucher.
  • the particular received data stream may correspond to a printed voucher output of $10.30, or another particular denomination.
  • Test result interpreter 224 may be configured to send interpreted results to test result logger 226 .
  • Test result logger 226 may be implemented by, for example, an application, software module, or library.
  • Test result logger 226 may be configured to compare results from applying a test to EGM-under-test 102 against expected values.
  • Test result logger 226 may be configured to store results of applying tests to EGM-under-test 102 in results database 228 . For example, a cashed out value of credits received from EGM-under-test 102 may not equal the correct, expected amount. In such a case, a user of system 100 may be notified that EGM-under-test 102 failed a validation test and may require additional debugging or troubleshooting.
  • Results database may be implemented by a database, file, record, or any other suitable mechanism.
  • Test result logger 226 may be configured to present test results to a user of test server through test sequence module 208 .
  • a user operating system 100 may apply one or more tests to an EGM-under-test 102 using a test server 206 to control a test fixture 104 .
  • the user may use system 100 to test the operational validity of newly developed EGM software 106 .
  • the user may select various options or features on test server 206 to determine what tests to be applied to EGM-under-test 102 .
  • Test server 206 may transform, translate, or otherwise enable the tests selected by the user of system 100 into signals, commands, or instructions recognizable by EGM-under-test 102 and causing EGM-under-test 102 to perform various functions associated with an EGM.
  • Test fixture 104 may relay the results of applying a test to EGM-under-test 102 to test server 206 .
  • Test server 206 may interpret such results and compare the results against expected values.
  • a user of test server 206 may determine that test results meet acceptable thresholds or expected values and validate the operation of EGM-under-test 102 .
  • a user may generate a test sequence 212 using test sequence module 208 .
  • Generating test sequence 212 may be accomplished by selecting specific functional tests to be completed by an EGM, tests specific to EGM-under-test 102 , prescribed tests for a family or type of EGM, or other criteria.
  • Test sequence module 208 may generate one or more test sequences 212 and/or access a known set of test sequences from test sequence database 210 .
  • the user of test server 206 may retrieve a specific test sequence 212 from test sequence database 210 . Threshold criteria or expected results may be defined.
  • test sequence 212 may be used to generate a test script 216 by test script generator 214 .
  • Test script generator 214 may assemble test script 216 based on steps identified by test sequence module 208 .
  • Test script generator 214 may add initialization, operational parameters, communication, and other steps necessary to add to test sequence 212 to test EGM-under-test 102 .
  • Test script generator 214 may repeat certain steps of test sequence 212 , for example, in a conditional loop or across a range of test parameters.
  • Test script generator 214 may create a test script 216 and communicate the script to test script interpreter 218 .
  • Test script interpreter 218 may interpret the elements of test script 216 and translate them into specific commands, voltages, instructions, or other communication specific to interfaces of EGM-under-test 102 and test fixture 104 .
  • Test script interpreter 218 may access protocol dictionary 222 to translate or interpret various portions of test script 218 .
  • Test script interpreter 218 may be configured to send the resulting input commands to test fixture 104 .
  • test module 108 may route the appropriate communication to EGM-under-test 102 through an appropriate channel or module. For example, signals indicating user input on a touch screen may be sent through touch screen emulator 112 ; signals indicating communication over SAS from network casino components to the EGM may be sent through SAS test host 120 ; signals indicating bills inserted into a bill accepter may be sent through bill acceptor emulator 124 ; signals indicating swiping of a card in a card reader may be sent through card reader emulator 128 ; signals indicating insertion of a voucher into a voucher reader may be sent through voucher I/O emulator 130 ; signals indicating pressed buttons or pulled levers may be sent through button emulator 136 ; and/or signals indicating USB communication through—for example—peripheral devices configured to connect to an EGM may be sent through USB I/O emulator 148 .
  • EGM-under-test 102 may receive signals for testing various portions of the EGM and the response of the EGM software 106 .
  • EGM software 106 may receive such signals through the interfaces of EGM-under-test 102 as if the signals would be used in production on an actual EGM, such as an EGM in a casino wagering environment, although such signals may be provided instead by test fixture 104 .
  • EGM software 106 may receive signals indicating actions on a touch screen through touch screen input module 110 ; receive signals indicating communication over SAS through SAS communication module 118 ; receive signals indicating bills inserted in a bill acceptor through bill acceptor input module 122 ; receive signals indicating a card swiped on a card reader through card reader input module 126 ; receive signals indicating insertion or reading a voucher through voucher reader input module 128 ; and/or receive signals indicating actions on buttons through button input module 134 .
  • the EGM software 106 may execute to conduct activities associated with wagering game play, such as adding or removing credits, determining available credits, determining displays of the wagering game, or other suitable activities of an EGM. EGM software 106 may operate—and thus be tested—as if EGM software 106 was deployed in a casino wagering environment.
  • the EGM software 106 may cause resulting signals to be sent from EGM-under-test 102 in response to the received signals, wagering game play, or other determinations by EGM software 106 .
  • EGM-under-test 102 may send signals indicating video output of a game and other options to be displayed through video output module 114 ; send signals indicating communication with casino network components—such as a casino server—over SAS through SAS communication module 118 ; send signals indicating vouchers to be printed through voucher printer output module 132 ; send signals indicating lights on the EGM to be operated through lights output module 138 ; send signals indicating the turning-on or turning-off of switches—such as those controlling mechanical displays on the EGM—through switches output module; send signals indicating USB communication through USB I/O module 146 ; and/or send signals indicating spinning and stopping of mechanical reels of the EGM through mechanical reel output module 150 .
  • EGM software 106 may send such signals through its interfaces as if the signals would be used in production on an actual EGM, such as an EGM in a casino wagering environment, although the signals may be received instead by test fixture 104 .
  • test fixture may receive signals indicating video to be displayed through VNC-KVM module 116 ; signals indicating SAS communication through SAS test host 120 ; signals indicating vouchers to be printed through voucher I/O emulator 130 ; signals indicating lights to be displayed through light reader 140 ; signals indicating switches to be operated through switch reader 144 ; signals indicating USB communication through USB I/O emulator 148 ; and/or signals indicating the spinning and stopping of mechanical reels through mechanical reel reader 152 .
  • the nature of the signals exchanged between the interfaces of EGM-under-test 102 and test fixture 104 may depend upon the type of input or output and may vary between interfaces.
  • SAS communication between interfaces 118 , 120 may be conducted using serial communication conforming to SAS standards.
  • switch signals between interfaces 142 , 144 may include sets wherein each set includes a “0” or “1” to turn a given switch on or off.
  • interfaces Although a certain number of interfaces are shown on EGM-under-test 102 and test fixture 104 , the actual organization of interfaces may include any suitable number of interfaces or any suitable organization of interfaces. Signals between particular interfaces may be combined with signals of other interfaces. For example, signals for card readers or bill acceptors as shown with interfaces 122 , 124 , 126 , 128 may be communicated together over USB interfaces 146 , 148 . In such cases, test module 108 and/or EGM software 106 or other portions of system 100 may disassemble and parse the signals to obtain the specific signals for the interfaces shown.
  • Test module 108 upon receipt of signals from EGM-under-test 102 , may communicate such information as output values to test server 206 .
  • Result interpreter 224 may receive the output values and may interpret the signals to determine the results as communicated by EGM software 106 .
  • Result interpreter 224 may access protocol dictionary 222 to determine the meaning of various received signals.
  • Result interpreter 224 may send the determined results to test result logger 226 .
  • Test result logger 226 may store the results of the test in results database 228 and send the results to test sequence module 212 .
  • Test sequence module 212 may display the results to a user of test server 206 .
  • test script 216 may indicate conditional operations, wherein a result determined by result interpreter 224 may be used to determine a subsequent action to be tested upon EGM-under-test 102 .
  • Result interpreter 224 may send interim results to test script interpreter 218 , which may send subsequent input signals to test fixture 104 .
  • FIG. 3 is an example embodiment of a system 300 for determining a protocol dictionary 222 for use in subsequent testing of an EGM-under-test.
  • the system 100 of FIGS. 1-2 may rely upon determining, for a given input of EGM-under-test 102 , what signals to send to the EGM-under-test 102 to stimulate operation of the EGM-under-test 102 .
  • the system 100 may rely upon determining, for a given input of EGM-under-test 102 , how to interpret signals received from the EGM-under-test 102 to evaluate whether the EGM-under-test 102 has performed according to specifications. Such determinations and associations may be made by the system 300 of FIG. 3 and stored in protocol dictionary 222 .
  • a given instance of system 300 may be used to monitor a particular EGM, a particular kind of EGM, a platform or family of EGMs wherein the EGMs share common features or components, or an EGM with a particular component such as a particular kind of interface. Operation of such a system 300 may be used to generate a protocol dictionary 222 for the particular EGM, particular kind of EGM, platform or family of EGMs, or an EGM with a particular component. Subsequently, the protocol dictionary 222 may be used by system 100 of FIGS. 1-2 to test another such particular EGM, another EGM of the same particular kind, another EGM from the same platform or family, or another EGM with the particular component. Development of protocol dictionary 222 may reduce the need to develop a fully functional emulator for various parts of test fixture 104 . Such functionality may be used, for example, for faster development or when components of an EGM are developed by a third party.
  • System 300 may include an EGM 302 communicatively coupled to a listener 354 configured to trace the operation of EGM 302 to yield an operational trace 356 .
  • System 300 may include a protocol discoverer 358 configured to parse operational trace 356 to associate particular actions or inputs with elements in operational trace 356 .
  • EGM 302 may include any EGM to be tested as described above.
  • Protocol discoverer 358 may be communicatively coupled to EGM 302 to input commands into EGM 302 .
  • Protocol discoverer 358 may be configured to associate an operational trace 356 with a previously issued input to EGM 302 . Such an association may be stored in protocol dictionary 222 .
  • monitor 354 and/or protocol discoverer 358 may be implemented in a test fixture or test server such as those shown in FIGS. 1 and 2 .
  • monitor 354 and/or protocol discoverer 358 may be implemented in one or more electronic devices separate from the test fixture 104 or test server 106 of FIGS. 1 and 2 .
  • monitor 354 and/or protocol discoverer may include a processor coupled to a memory, or reside on an electronic device including a processor coupled to a memory.
  • the memory may contain logic or instructions for execution on the processor. The executed instructions may carry out some or all of the functionality of monitor 354 and/or protocol discoverer 358 .
  • Monitor 354 may contain one or more modules, components, or electronic devices for monitoring the communication of signals within an EGM, between an EGM and other casino entities, or between an EGM and a peripheral device.
  • monitor 354 may include a serial communication monitor, a USB device monitor, digital I/O boards, analog-to-digital ports and converters, a mechanical reels monitor-validator, or any other suitable mechanism for gathering information regarding the communication of signals from the EGM.
  • Monitor 354 may be configured to intercept or monitor one or more such signals within an EGM, between an EGM and other casino entities, or between an EGM and a peripheral device. Monitor 354 may be configured to switch such signals such that they are redirected to monitor 354 . Monitor 354 may be configured to record such signals as a pass-through monitor, wherein the signals maintain their original destination.
  • System 300 may be configured to monitor an EGM 302 to determine entries to populate protocol dictionary 222 .
  • EGM 302 may be selected to be monitored because the particular EGM 302 requires testing—and thus its communications protocols need to be recorded in protocol dictionary 222 , the particular kind of EGM 302 requires testing, the platform or family to which EGM 303 belongs requires testing, EGMs with common features or components to EGM 302 require testing, or EGM 302 includes a particular component which requires testing.
  • EGM 302 may be implemented by EGM-under-test 102 of FIGS. 1 and 2 .
  • protocol dictionary 222 may be created as EGM-under-test 102 is tested.
  • EGM 302 may be communicatively coupled to test server 206 and/or test fixture 104 as illustrated by EGM-under-test 102 in FIGS. 1 and 2 .
  • EGM 302 may be used to establish protocol dictionary 222 so that EGM-under-test 102 of FIGS. 1 and 2 may be tested.
  • EGM 302 may include EGM software 306 communicatively coupled to one or more interfaces.
  • interfaces may include instances of interfaces similar to those described in FIG. 1 for EGM-under-test 102 , such as a touch screen input module 310 , video output module 314 , SAS communication module 318 , bill acceptor input module 322 , card reader input module 326 , voucher reader input module 328 , voucher printer output module 332 , button input module 334 , lights output module 338 , switches output module 342 , USB I/O module 346 , or mechanical reel output module 350 .
  • Such interfaces may be configured to receive or send signals indicative of EGM operations as described in conjunction with EGM-under-test 102 in FIG. 1 .
  • monitor 354 may be configured to monitor communication signals between the EGM 302 interfaces and the interfaces of a test fixture such as test fixture 104 of FIGS. 1 and 2 .
  • monitor 354 may be configured to perform monitoring operations and protocol discoverer 358 may be configured to determine protocol associations for an EGM-under-test.
  • EGM 302 may be implemented by such an EGM-under-test 102 shown in FIG. 1 .
  • monitor 354 may be configured to monitor communication signals between EGM 302 and its components, casino entities communicatively coupled to EGM 302 , or peripherals communicatively coupled to EGM 302 .
  • EGM 302 may contain or be communicatively coupled to such components, entities, or peripherals as shown in FIG. 3 .
  • signals may transmitted between the interfaces of EGM 302 and a touch screen 312 , video device 316 , SAS test host 320 , bill acceptor 324 , card reader 328 , voucher reader 330 , voucher printer 331 , button 336 , lights 340 , switches 344 , USB device 348 , or mechanical reels 352 .
  • Protocol discoverer 358 may be configured to log serial communications, detect values or sequences, or determine other such output from EGM 302 in response to inputs provided to EGM 302 .
  • Protocol discoverer 358 may be configured to run a monitoring script, wherein a script of inputs is provided to EGM 302 and the associated output recorded. The association between such an input and an associated output may be stored within protocol discoverer.
  • protocol discoverer 358 may associate the output signals in the operational trace 356 with the known outcome.
  • a protocol for the set of output signals may be established, associated logically with the known condition, and stored in protocol dictionary 222 . In subsequent use of protocol dictionary 222 , recognition of the same pattern of output signals encountered by a test server may be used to evaluate the nature of a received output.
  • Monitor 302 may be configured to log the signals associated with a given input applied to EGM 302 , applied by protocol discoverer 358 . Such input may include pressing a button on EGM 302 , sending a message from another entity on the casino network to the EGM, inputting currency or a voucher, or swiping a player card. Protocol discoverer may be configured to associate the resulting operational trace with the input that was applied to the EGM 302 . Thus, a protocol for the set of input signals as applied to the EGM 302 may be established, associated logically with the known input, and stored in protocol dictionary 222 . In subsequent use of protocol dictionary 222 , the set of signals associated with the known input may be applied to an EGM-under-test to emulate the input operation.
  • protocol discoverer 358 may issue inputs to EGM 302 .
  • protocol discoverer 358 may be operated manually by a user of system 300 .
  • protocol discoverer may be operated automatically according to a script of inputs to be applied to EGM 302 .
  • the inputs may include, for example, using various portions of EGM 302 such as causing buttons, levers, or touch screens to be pushed, communications to arrive from networked casino components, bills inserted into a bill acceptor, or a card swiped by a card reader. Such inputs may be made through, for example, touch screen 312 , SAS test host 320 , bill acceptor 324 , card reader 328 , voucher reader 330 , button 336 , or USB device 344 . In one embodiment, wherein EGM 302 implements an EGM-under-test 102 of FIGS. 1 and 2 , the inputs may be emulated.
  • monitor 354 may monitor the specific signals used to communicate the inputs to EGM 302 .
  • Monitor 354 may record such monitored signals into operational trace 356 and provide operational trace 356 to protocol discoverer 358 .
  • Protocol discoverer 358 may associate the inputs applied to EGM 302 with the observations from operational trace 356 .
  • Protocol discoverer may store such associations in protocol dictionary 222 .
  • protocol discoverer 358 may insert a $5 bill into EGM 302 and subsequently press a cash-out button.
  • Monitor 354 may detect the communication between bill acceptor 324 and bill acceptor input module 322 and then the communication between touch screen 312 and touch screen input module 310 .
  • Monitor 354 may capture the signals associated with the input operations and record them in operational trace 356 .
  • Protocol discoverer 358 may parse the recorded signals from the input operations and associate them with the commands “InsertBill 5 , ‘Stack’ and “Press ‘Cash Out.’”
  • a voucher reader 330 may have a serial interface with commands for controlling the voucher reader 330 .
  • Protocol discoverer 358 may communicate with voucher reader 330 to instruct voucher reader 330 to send a signal to the rest of EGM 302 that a particular voucher with a given identification and a given balance has been deposited.
  • Monitor 354 may capture the signals associated with the input operation and record the signals into operational trace 356 , which may be parsed by protocol discoverer 358 .
  • Protocol discoverer 358 may thus have access to the commands used by voucher reader 330 itself in such a case. After storing the association of the observed signals with the action caused in protocol dictionary 222 , a subsequent test of an EGM may be made emulating the action of the voucher reader 330 without requiring the voucher reader 330 to be present.
  • EGM 302 may conduct various activities in response to the applied input, such as conduct a wagering game, update credits, award payouts, conduct bonuses, activate peripherals, contact networked casino entities, or other suitable action. EGM 302 may provide such signals through its interfaces. Monitor 354 may record signals generated as a result of such activities. For example, monitor 354 may record output signals sent from the interfaces of EGM 302 to a video device 316 , SAS test host 320 , voucher printer 331 , lights 340 , switches 344 , USB device 348 , or mechanical reels 352 . Monitor 354 may record such information in operational trace 356 and send operational trace 356 to protocol discoverer 358 . Protocol discoverer 358 may determine an association between the input signals sent to EGM 302 and the resultant output signals. Protocol discoverer 358 may record such an association in protocol dictionary 222 .
  • FIG. 4 is an example method 400 for applying a test to an EGM-under-test.
  • a sequence of test steps to be applied to the EGM may be determined. Such test steps may be abstracted to logical steps that may be applied to an EGM.
  • the test sequence may be loaded from pre-defined or previously used test sequences.
  • the sequence or steps therein may be created or modified.
  • the test sequence may be saved.
  • a test script based upon the test sequence may be generated. Generating the test script may include adding overhead, configuration, or initialization steps, adding loops or conditional tests, or other tasks.
  • a protocol dictionary may be accessed to determine, for a given portion of the test script, how the test script may be represented by signals communicated to the EGM.
  • the test script may be interpreted to determine the signals, timing, and other operation of sending test signals to the EGM.
  • the signals may be applied to the EGM.
  • the signals may be applied to interfaces for, for example, bill readers, voucher readers, buttons, touch screens, SAS hosts, or other suitable interfaces.
  • the signals may emulate, for example, the actions, inputs, or signals of various components of the EGM, entities coupled over a network with the EGM, or peripherals connected to the EGM.
  • response output signals from the EGM may be received.
  • a series of such signals may be received.
  • Such signals may be include information sent from the EGM intended for various components of the EGM, entities coupled over a network with the EGM, or peripherals connected to the EGM.
  • the protocol dictionary may be accessed to determine, for a given received signal, the associated meaning
  • the received signals may be translated into test results. The translation may be made based upon references to the protocol dictionary.
  • the status of the test script may be evaluated.
  • the test script applied to the EGM may have conditional or iterative elements. For example, if an input causes an acceptable response from the EGM, a second test may be applied to the EGM by varying the input to a second value, or by conducting a second input that depended upon the first. If the test script is not complete, then method 400 may return to step 425 and continue to execute the test script. If the test script is complete, then the method 400 may continue in step 460 .
  • test results may be logged.
  • test results may be analyzed to determine whether the results indicate a malfunction, bug, successful operation, or other outcome.
  • FIG. 5 is an example illustration of a method 500 for determining a protocol dictionary for translating test steps to be communicated to an EGM or for translating test results from an EGM.
  • Method 500 may include application of an input and/or receipt of an output.
  • method 500 may include application of an input whose emulation, operational trace, or protocol is unknown. In such an embodiment, method 500 may be used to determine the emulation, operational trace, or protocol of the input.
  • Application of the input may be accomplished directly. Depending upon the nature of the input or output, such application may be accomplished manually, while in other embodiments such application may be automated. For example, pushing a button on an EGM may be accomplished by manually pressing the button or by programming a solenoid coupled to a test fixture to move a testing member to press the button. In another example, a signal from a SAS server may be sent to the EGM.
  • method 500 may include application of an input whose emulation, operational trace, or protocol is known. In such an embodiment, method 500 may be used to determine the emulation, operational trace, or protocol of the resulting output from such an input.
  • a series of protocols to be discovered may be determined.
  • Each of the protocols may represent the input or output signals associated with an action of an EGM.
  • the protocols may be used to emulate input to or interpret output from an EGM. Some protocols may require more than one input or output step.
  • the protocols may be conditional, iterative, or otherwise compound.
  • an input to be sent to an EGM may be determined.
  • the input to be sent may be determined as one of several input or output steps to be conducted in association with determining a protocol.
  • the input to be sent may be determined by selecting a protocol to be discovered.
  • step 515 it may be determined whether the input will be emulated.
  • the input may be emulated such that signals representing the input may be sent to the EGM without actually conducting the action associated with the input.
  • a bill collector may be emulated to emulate the signal associated with inserting a certain amount of money into the EGM.
  • the input may be actually applied such that signals representing the input may be sent to the EGM. For example, a button on an EGM may be pressed. The selection of whether to emulate an input may be made based on whether protocol has been discovered for a given input.
  • a protocol for the input associated with pressing a button may not be known and the input may actually be conducted, but during a second execution of method 515 the protocol for the input may have been discovered and thus emulated.
  • the protocol may have been discovered using the remaining steps of method 500 as described herein.
  • the input may be emulated and applied to the EGM.
  • the input may be emulated by, for example, sending signals, voltages, digital signals or data, switch signals, electronic communication, text strings or other information to the EGM.
  • the emulated input may be sent through, for example, digital input/output boards, serial interfaces, Ethernet, SAS, or any other suitable mechanism.
  • the protocol dictionary may be accessed and an operational trace associated with the input may be retrieved. The operational trace may be applied to the EGM as an emulation of the input. Method 500 may then proceed to step 555 .
  • the input may be applied to the EGM.
  • the application of input may be monitored.
  • the application of input may be monitored with a pass-through technique or mechanism.
  • application of an input configured to be input using serial communication may be monitored with a serial listening device configured to send the input to its original destination and a copy of the input to a listening point.
  • the application of input may be redirected to a listening point.
  • application of button inputs may be wired to be redirected to digital input boards to be monitored. In such embodiments where inputs are redirected, method 500 might not execute steps to monitor output associated with the input.
  • an operational trace of the input signals may be determined based on the monitored input.
  • the operational trace may include a recording, measurement, or other indication of the input.
  • the indication of the input may be recorded, measured, or otherwise indicated over time.
  • the operational trace may be associated with the input.
  • the association of the operational trace and the input may be stored in the protocol dictionary. Subsequent emulation of the input may be conducted by accessing the protocol dictionary.
  • step 555 operations on the EGM may be conducted in response to the input. For example, if a wager button is input, a wager may be made on the EGM; if a “Spin Wheels” button is input, a wagering game may be conducted; or if currency is input, a total amount of funds available for wagering may be updated.
  • output signals in response to such operations may be generated and returned from the EGM.
  • Such output signals may include voltages, digital signals or data, switch signals, electronic communication, text strings or other information from EGM.
  • the output signals may be monitored.
  • the output signals may be monitored by, for example, digital input/output boards, serial interfaces, Ethernet, SAS, or any other suitable mechanism.
  • the reception of output signals may be monitored with, for example, a pass-through technique or mechanism or by redirecting output to a listening point.
  • an operational trace of the input signals may be determined based on the monitored output.
  • the operational trace may include a recording, measurement, or other indication of the output.
  • the indication of the output may be recorded, measured, or otherwise indicated over time.
  • the operational trace may be associated with the output. Determination of the output may be made by programmatic determinations of expected output given an input. The programmatic determinations may be embodied in, for example, a state machine represented in logic or instructions stored in a memory. For example, given an input of a cash-out option, output signals corresponding to printing a voucher may be expected and subsequently monitored.
  • the association of the operational trace and the output may be stored in the protocol dictionary. Subsequent interpretation of received signals corresponding to the output signals may be determined by accessing the protocol dictionary.
  • step 585 it may be determined whether additional protocols, or additional input or output steps need to be monitored. Such additional monitoring may be required as an additional protocol in a series of regressive tests or learning to be determined, or as an additional input or output as part of a compound operation. If so, the method 500 may repeat starting at step 510 . If not, method 500 may terminate.
  • Methods 400 and 500 may be implemented using the system of FIGS. 1-3 , or any other system operable to implement methods 400 and 500 . As such, the preferred initialization point for methods 400 and 500 and the order of its steps may depend on the implementation chosen. In some embodiments, some steps may be optionally omitted, repeated, or combined. In some embodiments, some steps of methods 400 and 500 may be executed in parallel with other steps of methods 400 500 . In certain embodiments, methods 400 and 500 may be implemented partially or fully in software embodied in computer-readable media.
  • Computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time.
  • Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such wires, optical fibers, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
  • direct access storage device e.g., a hard disk drive or floppy disk
  • sequential access storage device e.g., a tape disk drive
  • compact disk CD-ROM, DVD, random access memory (RAM)
  • RAM random access memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable read-only memory

Abstract

A method for testing an electronic gaming machine includes generating a test sequence comprising tests to be conducted on the electronic gaming machine, generating a test script from the test sequence, accessing a protocol dictionary to determine values for the inputs, emulating parts of the electronic gaming machine by applying the specific values for the inputs to the electronic gaming machine, receiving outputs from the electronic gaming machine, accessing the protocol dictionary to determine conditions associated with the outputs, and interpreting the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met. The tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine. The test script includes inputs to be applied to the electronic gaming machine. The inputs are associated with wagering game play. The values emulate parts of the electronic gaming machine.

Description

    TECHNICAL FIELD OF THE INVENTION
  • The present invention relates generally to gaming systems, machines, and methods used to provide wagering games, and, more particularly, to electronic gaming machine automated testing.
  • BACKGROUND
  • Gaming systems, machines, and methods used to provide wagering games may be electronically implemented by mechanisms akin to traditional slot machines. These may be referred to as “slot machines” because they commonly show the result of a wager by displaying reels of symbols or empty spaces, and indicating a payout based on particular alignments or combinations of the symbols or empty spaces. In an electronic slot machine, the results may be determined by generating a random number to select a payout from a set or range of possible payouts.
  • Gaming systems, machines, and methods used to provide wagering games may be electronically implemented by instant lottery systems. These may be referred to as “video lottery” systems because they commonly show the result of a play in the lottery game on a video display device at the player terminal. In an electronic lottery gaming system, the results may be identified by a set of electronic lottery records. The set of electronic lottery records may be analogous to a set of printed paper lottery game tickets. Individual lottery game play records may be assigned from the set of electronic lottery game play records in some random order in response to requests for plays in the lottery game. The result defined by an assigned electronic lottery game play record may be displayed at an electronic lottery player station rather than on a printed lottery ticket. As in traditional paper lotteries, the rules by which the set of lottery records is created for an electronic lottery game determines the overall prize distribution for the game. For example, an electronic lottery game set may include one million records, with one record associated with the top prize, ten records associated with a next highest prize, and so forth throughout all of the potential results available in the lottery game set.
  • Gaming systems, machines, and methods used to provide wagering games may be electronically implemented by predetermined cards or displays and include a number of designations randomly arranged in a grid, matrix, or other layout of locations. The may be referred to as “bingo” systems. The game board or display may be represented by a data structure which defines a representation having various card or display locations and designations associated with the locations. For example, in a traditional bingo game sequence, a number of the predetermined bingo cards are first sold for a particular bingo game. After the sale of bingo cards is closed for a given game, designations are randomly selected from a pool of available designations and matched to the designations on each bingo card that is in play in the bingo game. This matching of bingo designations randomly selected for a game and bingo designations associated with a bingo card in play in the game may be referred to as daubing the card.
  • SUMMARY
  • In one embodiment, a method for testing an electronic gaming machine includes generating a test sequence comprising one or more tests to be conducted on the electronic gaming machine, generating a test script from the test sequence, accessing a protocol dictionary to determine values for the inputs, emulating one or more parts of the electronic gaming machine by applying the specific values for the inputs to the electronic gaming machine, receiving one or more outputs from the electronic gaming machine, accessing the protocol dictionary to determine conditions associated with the outputs, and interpreting the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met. The tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine. The test script includes one or more inputs to be applied to the electronic gaming machine. The one or more inputs are associated with wagering game play. The values emulate one or more parts of the electronic gaming machine.
  • In another embodiment, an article of manufacture includes a computer readable medium and computer-executable instructions carried on the computer readable medium. The instructions are readable by a processor. The instructions, when read and executed, cause the processor to generate a test sequence comprising one or more tests to be conducted on the electronic gaming machine, generate a test script from the test sequence, access a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine, emulate one or more parts of the electronic gaming machine by applying the values for the inputs to the electronic gaming machine, receive one or more outputs from the electronic gaming machine, access the protocol dictionary to determine conditions associated with the outputs, and interpret the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met. The tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine. The test script includes one or more inputs to be applied to the electronic gaming machine. The one or more inputs are associated with wagering game play.
  • In yet another embodiment, a system for testing an electronic gaming machine includes a test server comprising a server processor coupled to a server memory and a test fixture comprising an emulator. The server memory containing instructions for causing the server processor to generate a test sequence comprising one or more tests to be conducted on the electronic gaming machine, generate a test script from the test sequence, the test script comprising one or more inputs to be applied to the electronic gaming machine, access a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine, and communicate the values to the test fixture. The emulator is configured to emulate one or more parts of the electronic gaming machine by applying the values for the inputs to the electronic gaming machine, receive one or more outputs from the electronic gaming machine, and communicate the outputs to the test server. The server memory contains further instructions for causing the server processor to access the protocol dictionary to determine conditions associated with the outputs and interpret the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met. The test fixture is communicatively coupled to the test server. The tests include a criteria indicating inappropriate or appropriate operation of the electronic gaming machine. The one or more inputs are associated with wagering game play;
  • In an additional embodiment, a method of determining a protocol dictionary, includes determining an input to be applied to an electronic gaming machine, applying the input to the electronic gaming machine, monitoring the application of input to the electronic gaming machine, recording the input to the electronic gaming machine in an operational trace, associating the operational trace with the input, and storing the association in the protocol dictionary. The input associated with wagering game play.
  • In a yet additional embodiment, a method of determining a protocol dictionary includes determining an input to be applied to an electronic gaming machine, the input associated with wagering game play, applying the input to the electronic gaming machine, receiving an output from the electronic gaming machine in response to the input, recording the output to the electronic gaming machine in an operational trace, associating the operational trace with the output, and storing the association in the protocol dictionary.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of the present invention and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 is an example and embodiment of a system for electronic gaming machine (“EGM”) automated testing;
  • FIG. 2 is another illustration of a system for providing EGM automated testing;
  • FIG. 3 is an example embodiment of a system for determining a protocol dictionary for use in subsequent testing of an EGM-under-test;
  • FIG. 4 is an example method for applying a test to an EGM-under-test; and
  • FIG. 5 is an example illustration of a method for determining a protocol dictionary for translating test steps to be communicated to an EGM or for translating test results from an EGM.
  • DETAILED DESCRIPTION
  • FIG. 1 is an example and embodiment of a system 100 for electronic gaming machine (“EGM”) automated testing. System 100 may be configured to perform validation, verification, or other test on a wagering game based in an EGM. In one embodiment, system 100 may be configured to test EGM software 106. System 100 may include an EGM-under-test 102 communicatively coupled to an EGM test fixture 104. EGM test fixture 104 may be configured to send one or more signals, messages, or other communication to EGM-under-test 102. EGM-under-test 102 may be configured to process the signals, messages, or other communication as input to EGM software 106. EGM-under-test 102 may be configured to send one or more signals, messages, or other communication to EGM test fixture 104. EGM test fixture 104 may be configured to capture and process such signals, messages, or other communication as output of EGM software 106.
  • System 100 may be configured to test a wagering game embodied within EGM software 106. One or more different instances of EGM software 106 may be tested by system 100. For example, system 100 may test an individual game or a game based on a common software platform. EGM software 106 may be developed as a new wagering casino game that may require testing to ensure proper operation within a casino environment. EGM software 106 may require testing for any suitable parameter, such as appropriate response to funding or defunding actions, game play, payouts, or response to input or output.
  • System 100 may provide automated testing of EGM software 106. Manual testing may be used to test EGM software 106. However, such a method may be slow, error-prone, or incomplete. In one embodiment, debugging or testing hooks may be added to EGM software 106 such that EGM software 106 provides particular values at particular points in the execution of the EGM software 106. However, such debugging or testing hooks may alter the performance of the software and thus may be undesirable. In one embodiment, system 100 may be configured to test EGM software 106 as EGM software 106 will be deployed in an actual, production EGM. In such an embodiment, EGM software 106 may be used without any debugging or testing hooks. System 100 may be configured to conduct full regression, automated testing of EGM software 106. System 100 may be configured to use automated testing of EGM software 106 to emulate corner or edge cases, such as where a player card or voucher would be inserted at the same time. System 100 may provide testing of any suitable part of EGM software 106, including game play, funding operations, defunding operations, input/output controls, or payouts.
  • EGM-under-test 102 may include one or more modules for accepting signals, commands, or other communication. In one embodiment, such modules may be included in EGM software 106. In another embodiment, such modules may be external interfaces to EGM software 106. Such modules may include digital-analog converters configured to transform digital signals to analog and vice-versa; data busses; communication ports; software and/or software application programming interfaces (APIs); digital ports; or other suitable mechanisms for communicating between EGM software 106 and devices external to the software. Such modules may be present in a production EGM.
  • For example, EGM-under-test 102 may include a touch screen input module 110 configured to accept signals, messages, or commands indicative of input from a touch screen. Such signals may include those that would be input from a user playing a casino wagering game on an EGM.
  • EGM-under-test 102 may include a video output module configured to output signals, messages, or commands related to video output. Such signals may be associated with that sent as output to a display of an EGM from EGM software 106.
  • EGM-under-test 102 may include a SAS communication module 118 configured to accept signals, messages, or commands indicative of input from an SAS test host. While SAS communication may be used, EGM 102 may include any suitable communication module corresponding to a communication used by EGM.
  • EGM-under-test 102 may include a bill acceptor input module 122 configured to accept signals, messages, or commands indicative of input from a bill accepter on an EGM. Such signals may be associated with inserting currency into an EGM for wagering game play.
  • EGM-under-test 102 may include a card reader input module 126 configured to accept signals, messages, or commands indicative of input from a card reader on an EGM. Such signals may be associated with a player inserting a player card, used to track game play for affinity and marketing purposes, into an EGM.
  • EGM-under-test 102 may include a voucher reader input module 128 configured to accept signals, messages, or commands indicative of input from a voucher reader on an EGM. Such signals may be associated with a player inserting a voucher, indicating a balance of credits or currency available for wagering game play, into an EGM.
  • EGM-under-test 102 may include a voucher printer output module 132 configured to output signals, messages, or commands indicative of output to a voucher printer on an EGM. Such signals may be associated with output from EGM software 106 to refund unplayed credits on the EGM by attempting to print a voucher for a user to move credits to another EGM or take to a cashier.
  • EGM-under-test 102 may include a button input module 134 configured to receive signals, messages, or commands indicative of buttons, levers, or other input of an EGM. Such signals may be associated with a user pressing buttons, pulling levers, or taking other actions on an EGM. The buttons may include buttons for selecting wagers, lines of game play, hold cards, or other actions for an EGM.
  • EGM-under-test 102 may include a lights output module 138 configured to output signals, messages, or commands indicative of lights displayed on an EGM. Such signals may be associated with turning lights on or off, playing sounds, or other display actions on an EGM.
  • EGM-under-test 102 may include a switches output module 142 configured to output signals, messages, or commands to control switches on an EGM. Such signals may be associated with display mechanisms of an EGM, such as spinning a wheel.
  • EGM-under-test 102 may include a universal serial bus (“USB”) I/O module 146 configured to output signals, messages, or commands for input or output to accessories, communication modules, or other portions of an EGM using USB.
  • EGM-under-test 102 may include a mechanical reel output module 150 configured to output signals, messages, or commands for mechanical reels, which may display the result of a slot machine.
  • Although a particular number of modules are shown in EGM-under-test 102, any suitable kind or number may be used. The functionality of one or more of the modules may be bundled within a fewer number of modules. One or more of the modules may be included within EGM software 106.
  • Each of such modules of EGM-under-test 102 may be communicatively coupled to corresponding modules in test fixture 104. Test fixture 104 may include any suitable number of such modules for interfacing with EGM-under-test 102. The modules may be communicatively coupled to test module 108.
  • Test fixture 104 may include test module 108. Test module may be configured to control or coordinate operation of test fixture 104. Test module 108 may be configured to send or receive signals, commands, or other communication through various modules to EGM-under-test 102.
  • Although a particular number of interface modules are shown in test fixture 104 for interfacing with EGM-under-test 102, any suitable kind or number may be used. The functionality of one or more of the modules may be bundled within a fewer number of modules. Each of the interfaces in test fixture 104 may be configured to simulate, emulate, or record the operation of part of a casino wagering machine or system. Such operations may be provided to provide a test environment for EGM-under-test 102. Each of the interfaces may include digital-analog converters configured to transform digital signals to analog and vice-versa; power control busses; serial ports; digital input and output lines and cards; data busses; communication ports; software and/or software application programming interfaces (APIs); digital ports; or other suitable mechanisms for communicating with EGM-under-test 102.
  • For example, test fixture 104 may include a touch screen emulator 112 configured to provide signals, messages, or commands emulating the input of a touch screen to EGM-under-test 102. Touch screen emulator 112 may be communicatively coupled to touch screen input module 110. Touch screen emulator 112 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102. Touch screen emulator may emulate, for example, input from buttons for placing wagers, selecting paylines, cashing out of an EGM, selecting hold cards, or other input or output associated with a user using an EGM.
  • Test fixture 104 may include a Virtual Network Computing (“VNC”)-Kernel-based Virtual Machine (“KVM”) switch module 116 communicatively coupled to video output module 114 and configured to receive signals, messages, or commands from video output module 114. VNC-KVM switch module 116 may provide output from touch screen input module 110 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102. VNC-KVM switch module 116 may provide interactive and/or automated control of input and output between a test server and an EGM-under-test. VNC-KVM switch module 116 may be configured to sense digital or analog video interfaces, audio, or other user input and output.
  • In one embodiment, test fixture 104 may include an SAS test host 120. In another embodiment, test fixture 104 may be included in another portion of system 100. SAS test host 120 may be communicatively coupled to SAS communication module 118 and configured to send and receive signals, messages, or commands to or from SAS communication module 118. SAS test host 120 may be configured to simulate or emulate SAS communication between an EGM and other portions of a casino network system. SAS test host 120 may provide signals to or from test module or to or from other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a bill acceptor emulator 124 communicatively coupled to bill acceptor input module 122. Bill acceptor emulator 124 may be configured to provide signals, messages, or commands to emulate acceptance of currency at an EGM. Bill acceptor emulator 124 may be configured to receive input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a card reader emulator 128 configured to provide signals, messages, or commands emulating the input of a player card used to access an EGM to EGM-under-test 102. Card reader emulator 128 may be communicatively coupled to card reader input module 126. Card reader emulator 128 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a voucher input/output (“I/O”) emulator 130 configured to provide or receive signals, messages, or commands emulating or containing vouchers for transferring funds between an EGM to EGM-under-test 102. Voucher I/O emulator 130 may be communicatively coupled to voucher reader input module 128 and/or voucher reader output module 132. Card reader emulator 118 may communicate I/O for test module 108 or for other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a button emulator 136 configured to provide signals, messages, or commands emulating the input of a buttons on an EGM to EGM-under-test 102. Button emulator 136 may be communicatively coupled to button input module 134. Button emulator 136 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a light reader 140 configured to receive signals, messages, or commands from lights output module 138 in EGM-under-test 102. Light reader 140 may be communicatively coupled to lights output module 138. Light reader 140 may provide output from lights output module 138 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a switch reader 144 configured to receive signals, messages, or commands from switch output module 142 in EGM-under-test 102. Switch reader 144 may be communicatively coupled to switch output module 142. Switch reader 144 may provide output from switch output module 142 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a USB I/O emulator 148 configured to send and receive signals, messages, or commands with USB I/O module 146 in EGM-under-test 102. USB I/O emulator 148 may be communicatively coupled to USB I/O module 146. USB I/O emulator 148 may facilitate I/O with test module 108 or other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test fixture 104 may include a mechanical reel reader 152 configured to receive signals, messages, or commands from mechanical reel output module 150 in EGM-under-test 102. Mechanical reel reader 152 may be communicatively coupled to mechanical reel output module 150. Mechanical reel reader 152 may provide output from mechanical reel output module 150 to test module 108 or to other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Test module 108 may be configured to send or receive signals to EGM-under-test 102 through interface modules such as shown in FIG. 1 to test the operation of EGM-under-test 102. Test module 108 may be configured to record resulting signals from EGM-under-test 102.
  • Test fixture 104 may include a processor 158 coupled to a memory 162. EGM-under-test 102 may include a processor 156 coupled to a memory 160. Test module 108 may be implemented by logic or instructions resident in memory 162 to be executed by processor 158. EGM software 106 may be implemented by logic or instructions resident in memory 160 to be executed by processor 156.
  • Test fixture 104 may include a touch screen emulator 112 configured to provide signals, messages, or commands emulating the input of a touch screen to EGM-under-test 102. Touch screen emulator 112 may be communicatively coupled to touch screen input module 110. Touch screen emulator 112 may provide input from test module 108 or from other suitable mechanisms for evaluating the operation of EGM-under-test 102.
  • Processors 156, 158 may comprise, for example a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processors 156, 158 may interpret and/or execute program instructions and/or process data stored in memories 160, 162. Memories 160, 162 may be configured in part or whole as application memory, system memory, or both. Memories 160, 162 may include any system, device, or apparatus configured to hold and/or house one or more memory modules. Each memory module may include any system, device or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media).
  • EGM-under-test 102 may include some or all of an EGM including any casino or wagering system configured to provide wagering or casino games on devices such as EGMs to a user. The EGM may include any suitable electronic device for providing wagering or casino game play, such as a slot machine, video poker machine, bingo machine, or lottery machine.
  • FIG. 2 is another illustration of system 100 for providing EGM automated testing. System 100 may include a test server 206 communicatively coupled to test fixture 206. In one embodiment, test server 206 may be communicatively coupled to SAS test host 120. Test server 206 may be configured to communicate with test fixture 104 to provide tests to be conducted on EGM-under-test 102 and to receive the results of such tests.
  • Test server 206 may include any suitable components for determining and executing tests to be conducted upon EGM-under-test 102, including a test sequence module, test script generator 214, test result logger 226, test script interpreter 218, or result interpreter 224. Test server 206 may include or may be communicatively coupled to sources of information for conducting tests upon EGM-under-test such as test sequence database 210, results database 228, or protocol dictionary 222. Although a single test server 206 and a certain number and kind of components and sources of information are shown, the functionality of test server 206 and such components and information may be implemented in any suitable number and kind of entities configured to perform the functionality described herein.
  • Test server 206 may include a processor 230 coupled a memory 232. The memory 232 may include logic or instructions to be executed to perform the functionality of test server 206 as described herein. Processor 230 may comprise, for example a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor 230 may interpret and/or execute program instructions and/or process data stored in memory 232. Memory 232 may be configured in part or whole as application memory, system memory, or both. Memory 232 may include any system, device, or apparatus configured to hold and/or house one or more memory modules. Each memory module may include any system, device or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media).
  • Test sequence module 208 may be configured to control operation of test server 206 and provide a user interface to an operator of test server 206. Test sequence module 208 may include commands, instructions, or options for loading tests to be conducted upon EGM-under-test 102, configuring system 100 for testing EGM-under-test 102, logging results from testing EGM-under-test 102, or any other suitable operation. Test sequence module 208 may be implemented by, for example, an application, software module, or library.
  • Test sequence module 208 may be communicatively coupled to test sequence database 210. Test sequence module 208 may be configured to query test sequence database 210 to obtain a test sequence 212 to be conducted upon EGM-under-test 102. Test sequence module 208 may be configured to provide operations for a user of test sequence module 208 to develop test sequence 212. Test sequence module 208 may be configured to save a developed or modified test sequence 212 to test sequence database 210 for later use.
  • Test sequence database 210 may be implemented in, for example, a database, record, file, or any other suitable structure. Test sequence database 210 may include one or more test sequences for use by test sequence module 208. Test sequence database 210 may store test sequences according to the range of tests required for a given EGM. For example, all EGMs may be subject to a common set of tests, such as accepting currency or affinity player cards and registering such input in available credit or communicating game play to a server. In another example, an EGM developed from a common platform or family of EGM games may be tested for a common feature, such as simulated or physical, mechanical slot machine reels. In yet another example, a particular type of EGM game may require tests common to the type of EGM, such as a video poker EGM requiring testing of “keep” buttons. In a still another example, an EGM may require testing specific to the EGM itself as determined by a developer of the EGM. In one embodiment, for a given EGM a single test sequence may be created or stored. In another embodiment, multiple test sequences testing a subset of functionality may be created or stored for a given EGM.
  • Test sequence 212 may include an ordered sequence of tests that may be conducted upon EGM-under-test 102. Test sequence 212 may include one or more subsequences, which may each be stored separately in test sequence database. Test sequence 212 may contain commands of input that are to be passed to EGM-under-test 102 and may contain conditions that are to be subsequently checked after the commands are issued. The ordered sequence of tests in test sequence 212 may include logical descriptions of the tests to be conducted upon EGM-under-test 102. Test sequence 212 may include indications of multiple steps, timing, operations to be conducted with a given module of the test fixture, parameters for such operations, or expected outputs or output criteria. For example, test sequence 212 may include indications of a test step such as
      • (Simultaneously) [insert $5 bill into bill acceptor] and [swipe player card]
      • [player logged in?]
      • [credits increased by $5?]
      • [Cash out]
      • [balance received on voucher=$5+previous balance?]
      • [reset]
        Such steps may direct that a $5 bill be inserted (or emulated) into the EGM simultaneously with a player card being swiped (or emulated) at the EGM. After such an action, whether or not the EGM recognizes that a player has successfully logged in to the EGM may be tested. The available balance of credits may be tested for an increase of $5. A cash-out command may be sent to the EGM and the remaining balance to be printed on a printed voucher may be tested. The system may be reset after such tests to an original starting state.
  • The steps described in test sequence 212 may be implemented using Boolean logic, execution loop logic, functions, or any suitable programmatic instructions. Test sequence 212 may contain elements sufficiently abstracted to enable a user of test server 206 to quickly and efficiently create or modify test sequences.
  • Test sequence module 208 may be communicatively coupled to test script generator 214. Test sequence 212 may be sent by test sequence module 208 to test script generator 214. Test script generator 214 may be configured to generate a test script based upon test sequence 212. In one embodiment, test script generator 214 may be included within test sequence module 208 to provide operational parameters, setup information, headers, or other tasks associated with testing EGM-under-test 102. Test script generator 214 may be configured to generate a test script 216 from test sequence 212. Test script generator 214 may be configured to determine specific portions of EGM-under-test 106 that are to be tested. For example, a test sequence 212 may indicate that $5 may be deposited within EGM-under-test 102 for each currency acceptance method on the EGM-under. Test script generator 214 may be configured to determine the methods by which EGM-under-test 102 may be configured to implement the deposit of $5. For example, EGM-under-test 102 may be configured to accept a $5 bill from a particular make, model, or kind of bill acceptor or a bill acceptor with a particular interface. In another example, EGM-under-test 102 may be configured to accept a $5 deposit from a bill collector or from a voucher reader. Test script generator 214 may generate a test script 218 identifying the specific bill acceptor used by EGM-under-test 102, the range of bill acceptors that may be used by EGM-under-test 102, or the range of methods—such as insertion of a bill or insertion of a voucher—that may be used to fund game play.
  • Test script generator 214 may be implemented by, for example, an application, software module, or library. Test script 216 may include a set of steps to be conducted for testing EGM-under-test 102 that are more detailed compared to test sequence 212. The steps may contain, for example, commands, functions, parameters specific to the hardware used or emulated for EGM-under-test 102. Test script 216 may include setup, termination, or other background steps necessary to test EGM-under-test 102.
  • Test script generator 214 may be communicatively coupled to test script interpreter 218. Test script generator 214 may be configured to send test script 216 to test script interpreter 218. Test script interpreter 218 may be configured to interpret test script 216 and communicate specific actions to be conducted upon EGM-under-test 102 by test fixture 104. Such actions may include the signals, commands, voltages, or other communication to be sent by test fixture 104 to EGM-under-test 102, or the signals, commands, voltages, or other communication from EGM-under-test 102 that will be observed or recorded by test fixture 104. For example, test script 216 may designate that the bill acceptor emulator 124 of test fixture 104 should emulate acceptance of a $5 bill. Test script generator 214 may be configured to send commands to test fixture 104 to issue the specific voltages, commands, data bits, or other indicia of information to bill acceptor input module 122 representing input of a $5 bill.
  • To interpret test script 216 and determine what signals to send to test fixture 104, test script interpreter 218 may be configured to access protocol dictionary 222. Protocol dictionary 222 may be implemented by a database, library, record, file, or any other suitable mechanism. Protocol dictionary 222 may include an association of a set of specific voltages, commands, data bits, or other indicia of information for a given value to be sent or received from EGM-under-test 102. Protocol dictionary 222 may include such associations indexed by EGM type, interface type, action, or any other suitable criteria.
  • Test script interpreter 218 may be configured to communicate specific voltages, commands, data bits, or other information determined by interpreting test script 216 to test fixture 104 to be applied to EGM-under-test 102. Test fixture 104 may be configured to apply the specific voltages, commands, data bits, or other information to EGM-under-test 102 as shown in FIG. 1.
  • Test fixture 104 may be configured to receive voltages, commands, data bits, or other information from EGM-under-test 102 as a result of tests applied to EGM-under-test 102 as shown in FIG. 1. Test fixture 104 may be configured to communicate such results or output values to test server 206. Result interpreter 224 may be configured to receive such information. Result interpreter 224 may be implemented by, for example, an application, software module, or library.
  • Result interpreter 224 may be configured to access protocol dictionary 222 to interpret results received from test fixture 104. For example, test fixture 104 may return a particular data stream from printer voucher output module 132. Result interpreter 224 may be configured to look up some or all of the data stream in protocol dictionary 222 to determine the value of the printed voucher. For example, the particular received data stream may correspond to a printed voucher output of $10.30, or another particular denomination.
  • Result interpreter 224 may be configured to send interpreted results to test result logger 226. Test result logger 226 may be implemented by, for example, an application, software module, or library. Test result logger 226 may be configured to compare results from applying a test to EGM-under-test 102 against expected values. Test result logger 226 may be configured to store results of applying tests to EGM-under-test 102 in results database 228. For example, a cashed out value of credits received from EGM-under-test 102 may not equal the correct, expected amount. In such a case, a user of system 100 may be notified that EGM-under-test 102 failed a validation test and may require additional debugging or troubleshooting. Results database may be implemented by a database, file, record, or any other suitable mechanism. Test result logger 226 may be configured to present test results to a user of test server through test sequence module 208.
  • In operation, a user operating system 100 may apply one or more tests to an EGM-under-test 102 using a test server 206 to control a test fixture 104. In one embodiment, the user may use system 100 to test the operational validity of newly developed EGM software 106. The user may select various options or features on test server 206 to determine what tests to be applied to EGM-under-test 102. Test server 206 may transform, translate, or otherwise enable the tests selected by the user of system 100 into signals, commands, or instructions recognizable by EGM-under-test 102 and causing EGM-under-test 102 to perform various functions associated with an EGM. Test fixture 104 may relay the results of applying a test to EGM-under-test 102 to test server 206. Test server 206 may interpret such results and compare the results against expected values. A user of test server 206 may determine that test results meet acceptable thresholds or expected values and validate the operation of EGM-under-test 102.
  • In one embodiment, a user may generate a test sequence 212 using test sequence module 208. Generating test sequence 212 may be accomplished by selecting specific functional tests to be completed by an EGM, tests specific to EGM-under-test 102, prescribed tests for a family or type of EGM, or other criteria. Test sequence module 208 may generate one or more test sequences 212 and/or access a known set of test sequences from test sequence database 210. The user of test server 206 may retrieve a specific test sequence 212 from test sequence database 210. Threshold criteria or expected results may be defined.
  • After one or more test sequences 212 are selected, the test sequence 212 may be used to generate a test script 216 by test script generator 214. Test script generator 214 may assemble test script 216 based on steps identified by test sequence module 208. Test script generator 214 may add initialization, operational parameters, communication, and other steps necessary to add to test sequence 212 to test EGM-under-test 102. Test script generator 214 may repeat certain steps of test sequence 212, for example, in a conditional loop or across a range of test parameters.
  • Test script generator 214 may create a test script 216 and communicate the script to test script interpreter 218. Test script interpreter 218 may interpret the elements of test script 216 and translate them into specific commands, voltages, instructions, or other communication specific to interfaces of EGM-under-test 102 and test fixture 104. Test script interpreter 218 may access protocol dictionary 222 to translate or interpret various portions of test script 218. Test script interpreter 218 may be configured to send the resulting input commands to test fixture 104.
  • When test fixture 104 receives input commands, voltages, instructions, or other communication to be applied to EGM-under-test 102, test module 108 may route the appropriate communication to EGM-under-test 102 through an appropriate channel or module. For example, signals indicating user input on a touch screen may be sent through touch screen emulator 112; signals indicating communication over SAS from network casino components to the EGM may be sent through SAS test host 120; signals indicating bills inserted into a bill accepter may be sent through bill acceptor emulator 124; signals indicating swiping of a card in a card reader may be sent through card reader emulator 128; signals indicating insertion of a voucher into a voucher reader may be sent through voucher I/O emulator 130; signals indicating pressed buttons or pulled levers may be sent through button emulator 136; and/or signals indicating USB communication through—for example—peripheral devices configured to connect to an EGM may be sent through USB I/O emulator 148.
  • EGM-under-test 102 may receive signals for testing various portions of the EGM and the response of the EGM software 106. EGM software 106 may receive such signals through the interfaces of EGM-under-test 102 as if the signals would be used in production on an actual EGM, such as an EGM in a casino wagering environment, although such signals may be provided instead by test fixture 104. For example, EGM software 106 may receive signals indicating actions on a touch screen through touch screen input module 110; receive signals indicating communication over SAS through SAS communication module 118; receive signals indicating bills inserted in a bill acceptor through bill acceptor input module 122; receive signals indicating a card swiped on a card reader through card reader input module 126; receive signals indicating insertion or reading a voucher through voucher reader input module 128; and/or receive signals indicating actions on buttons through button input module 134. The EGM software 106 may execute to conduct activities associated with wagering game play, such as adding or removing credits, determining available credits, determining displays of the wagering game, or other suitable activities of an EGM. EGM software 106 may operate—and thus be tested—as if EGM software 106 was deployed in a casino wagering environment.
  • The EGM software 106 may cause resulting signals to be sent from EGM-under-test 102 in response to the received signals, wagering game play, or other determinations by EGM software 106. For example, EGM-under-test 102 may send signals indicating video output of a game and other options to be displayed through video output module 114; send signals indicating communication with casino network components—such as a casino server—over SAS through SAS communication module 118; send signals indicating vouchers to be printed through voucher printer output module 132; send signals indicating lights on the EGM to be operated through lights output module 138; send signals indicating the turning-on or turning-off of switches—such as those controlling mechanical displays on the EGM—through switches output module; send signals indicating USB communication through USB I/O module 146; and/or send signals indicating spinning and stopping of mechanical reels of the EGM through mechanical reel output module 150.
  • EGM software 106 may send such signals through its interfaces as if the signals would be used in production on an actual EGM, such as an EGM in a casino wagering environment, although the signals may be received instead by test fixture 104. For example, test fixture may receive signals indicating video to be displayed through VNC-KVM module 116; signals indicating SAS communication through SAS test host 120; signals indicating vouchers to be printed through voucher I/O emulator 130; signals indicating lights to be displayed through light reader 140; signals indicating switches to be operated through switch reader 144; signals indicating USB communication through USB I/O emulator 148; and/or signals indicating the spinning and stopping of mechanical reels through mechanical reel reader 152.
  • The nature of the signals exchanged between the interfaces of EGM-under-test 102 and test fixture 104 may depend upon the type of input or output and may vary between interfaces. For example, SAS communication between interfaces 118, 120 may be conducted using serial communication conforming to SAS standards. In another example, switch signals between interfaces 142, 144 may include sets wherein each set includes a “0” or “1” to turn a given switch on or off.
  • Although a certain number of interfaces are shown on EGM-under-test 102 and test fixture 104, the actual organization of interfaces may include any suitable number of interfaces or any suitable organization of interfaces. Signals between particular interfaces may be combined with signals of other interfaces. For example, signals for card readers or bill acceptors as shown with interfaces 122, 124, 126, 128 may be communicated together over USB interfaces 146, 148. In such cases, test module 108 and/or EGM software 106 or other portions of system 100 may disassemble and parse the signals to obtain the specific signals for the interfaces shown.
  • Test module 108, upon receipt of signals from EGM-under-test 102, may communicate such information as output values to test server 206. Result interpreter 224 may receive the output values and may interpret the signals to determine the results as communicated by EGM software 106. Result interpreter 224 may access protocol dictionary 222 to determine the meaning of various received signals. Result interpreter 224 may send the determined results to test result logger 226. Test result logger 226 may store the results of the test in results database 228 and send the results to test sequence module 212. Test sequence module 212 may display the results to a user of test server 206.
  • The operations of designating tests, conducting the tests, and receiving the results may happen repeatedly and in parallel with each other. For example, a test script 216 may indicate conditional operations, wherein a result determined by result interpreter 224 may be used to determine a subsequent action to be tested upon EGM-under-test 102. Result interpreter 224 may send interim results to test script interpreter 218, which may send subsequent input signals to test fixture 104.
  • FIG. 3 is an example embodiment of a system 300 for determining a protocol dictionary 222 for use in subsequent testing of an EGM-under-test. The system 100 of FIGS. 1-2 may rely upon determining, for a given input of EGM-under-test 102, what signals to send to the EGM-under-test 102 to stimulate operation of the EGM-under-test 102. The system 100 may rely upon determining, for a given input of EGM-under-test 102, how to interpret signals received from the EGM-under-test 102 to evaluate whether the EGM-under-test 102 has performed according to specifications. Such determinations and associations may be made by the system 300 of FIG. 3 and stored in protocol dictionary 222.
  • A given instance of system 300 may be used to monitor a particular EGM, a particular kind of EGM, a platform or family of EGMs wherein the EGMs share common features or components, or an EGM with a particular component such as a particular kind of interface. Operation of such a system 300 may be used to generate a protocol dictionary 222 for the particular EGM, particular kind of EGM, platform or family of EGMs, or an EGM with a particular component. Subsequently, the protocol dictionary 222 may be used by system 100 of FIGS. 1-2 to test another such particular EGM, another EGM of the same particular kind, another EGM from the same platform or family, or another EGM with the particular component. Development of protocol dictionary 222 may reduce the need to develop a fully functional emulator for various parts of test fixture 104. Such functionality may be used, for example, for faster development or when components of an EGM are developed by a third party.
  • System 300 may include an EGM 302 communicatively coupled to a listener 354 configured to trace the operation of EGM 302 to yield an operational trace 356. System 300 may include a protocol discoverer 358 configured to parse operational trace 356 to associate particular actions or inputs with elements in operational trace 356. EGM 302 may include any EGM to be tested as described above. Protocol discoverer 358 may be communicatively coupled to EGM 302 to input commands into EGM 302. Protocol discoverer 358 may be configured to associate an operational trace 356 with a previously issued input to EGM 302. Such an association may be stored in protocol dictionary 222.
  • In one embodiment, monitor 354 and/or protocol discoverer 358 may be implemented in a test fixture or test server such as those shown in FIGS. 1 and 2. In another embodiment, monitor 354 and/or protocol discoverer 358 may be implemented in one or more electronic devices separate from the test fixture 104 or test server 106 of FIGS. 1 and 2. In such an embodiment, monitor 354 and/or protocol discoverer may include a processor coupled to a memory, or reside on an electronic device including a processor coupled to a memory. The memory may contain logic or instructions for execution on the processor. The executed instructions may carry out some or all of the functionality of monitor 354 and/or protocol discoverer 358.
  • Monitor 354 may contain one or more modules, components, or electronic devices for monitoring the communication of signals within an EGM, between an EGM and other casino entities, or between an EGM and a peripheral device. For example, monitor 354 may include a serial communication monitor, a USB device monitor, digital I/O boards, analog-to-digital ports and converters, a mechanical reels monitor-validator, or any other suitable mechanism for gathering information regarding the communication of signals from the EGM.
  • Monitor 354 may be configured to intercept or monitor one or more such signals within an EGM, between an EGM and other casino entities, or between an EGM and a peripheral device. Monitor 354 may be configured to switch such signals such that they are redirected to monitor 354. Monitor 354 may be configured to record such signals as a pass-through monitor, wherein the signals maintain their original destination.
  • System 300 may be configured to monitor an EGM 302 to determine entries to populate protocol dictionary 222. As described above, EGM 302 may be selected to be monitored because the particular EGM 302 requires testing—and thus its communications protocols need to be recorded in protocol dictionary 222, the particular kind of EGM 302 requires testing, the platform or family to which EGM 303 belongs requires testing, EGMs with common features or components to EGM 302 require testing, or EGM 302 includes a particular component which requires testing.
  • In one embodiment, EGM 302 may be implemented by EGM-under-test 102 of FIGS. 1 and 2. In such an embodiment, protocol dictionary 222 may be created as EGM-under-test 102 is tested. EGM 302 may be communicatively coupled to test server 206 and/or test fixture 104 as illustrated by EGM-under-test 102 in FIGS. 1 and 2. In another embodiment, EGM 302 may be used to establish protocol dictionary 222 so that EGM-under-test 102 of FIGS. 1 and 2 may be tested.
  • EGM 302 may include EGM software 306 communicatively coupled to one or more interfaces. Such interfaces may include instances of interfaces similar to those described in FIG. 1 for EGM-under-test 102, such as a touch screen input module 310, video output module 314, SAS communication module 318, bill acceptor input module 322, card reader input module 326, voucher reader input module 328, voucher printer output module 332, button input module 334, lights output module 338, switches output module 342, USB I/O module 346, or mechanical reel output module 350. Such interfaces may be configured to receive or send signals indicative of EGM operations as described in conjunction with EGM-under-test 102 in FIG. 1.
  • In one embodiment, monitor 354 may be configured to monitor communication signals between the EGM 302 interfaces and the interfaces of a test fixture such as test fixture 104 of FIGS. 1 and 2. In such an embodiment, monitor 354 may be configured to perform monitoring operations and protocol discoverer 358 may be configured to determine protocol associations for an EGM-under-test. In such an embodiment, EGM 302 may be implemented by such an EGM-under-test 102 shown in FIG. 1. In another embodiment, monitor 354 may be configured to monitor communication signals between EGM 302 and its components, casino entities communicatively coupled to EGM 302, or peripherals communicatively coupled to EGM 302. In such an embodiment, EGM 302 may contain or be communicatively coupled to such components, entities, or peripherals as shown in FIG. 3. For example, such signals may transmitted between the interfaces of EGM 302 and a touch screen 312, video device 316, SAS test host 320, bill acceptor 324, card reader 328, voucher reader 330, voucher printer 331, button 336, lights 340, switches 344, USB device 348, or mechanical reels 352.
  • Protocol discoverer 358 may be configured to log serial communications, detect values or sequences, or determine other such output from EGM 302 in response to inputs provided to EGM 302. Protocol discoverer 358 may be configured to run a monitoring script, wherein a script of inputs is provided to EGM 302 and the associated output recorded. The association between such an input and an associated output may be stored within protocol discoverer. By knowing the outcome of a particular input, protocol discoverer 358 may associate the output signals in the operational trace 356 with the known outcome. Thus, a protocol for the set of output signals may be established, associated logically with the known condition, and stored in protocol dictionary 222. In subsequent use of protocol dictionary 222, recognition of the same pattern of output signals encountered by a test server may be used to evaluate the nature of a received output.
  • Monitor 302 may be configured to log the signals associated with a given input applied to EGM 302, applied by protocol discoverer 358. Such input may include pressing a button on EGM 302, sending a message from another entity on the casino network to the EGM, inputting currency or a voucher, or swiping a player card. Protocol discoverer may be configured to associate the resulting operational trace with the input that was applied to the EGM 302. Thus, a protocol for the set of input signals as applied to the EGM 302 may be established, associated logically with the known input, and stored in protocol dictionary 222. In subsequent use of protocol dictionary 222, the set of signals associated with the known input may be applied to an EGM-under-test to emulate the input operation.
  • In operation, protocol discoverer 358 may issue inputs to EGM 302. In one embodiment, protocol discoverer 358 may be operated manually by a user of system 300. In another embodiment, protocol discoverer may be operated automatically according to a script of inputs to be applied to EGM 302.
  • The inputs may include, for example, using various portions of EGM 302 such as causing buttons, levers, or touch screens to be pushed, communications to arrive from networked casino components, bills inserted into a bill acceptor, or a card swiped by a card reader. Such inputs may be made through, for example, touch screen 312, SAS test host 320, bill acceptor 324, card reader 328, voucher reader 330, button 336, or USB device 344. In one embodiment, wherein EGM 302 implements an EGM-under-test 102 of FIGS. 1 and 2, the inputs may be emulated.
  • While the inputs are sent to EGM 302, monitor 354 may monitor the specific signals used to communicate the inputs to EGM 302. Monitor 354 may record such monitored signals into operational trace 356 and provide operational trace 356 to protocol discoverer 358. Protocol discoverer 358 may associate the inputs applied to EGM 302 with the observations from operational trace 356. Protocol discoverer may store such associations in protocol dictionary 222.
  • For example, protocol discoverer 358 may insert a $5 bill into EGM 302 and subsequently press a cash-out button. Monitor 354 may detect the communication between bill acceptor 324 and bill acceptor input module 322 and then the communication between touch screen 312 and touch screen input module 310. Monitor 354 may capture the signals associated with the input operations and record them in operational trace 356. Protocol discoverer 358 may parse the recorded signals from the input operations and associate them with the commands “InsertBill 5, ‘Stack’ and “Press ‘Cash Out.’”
  • In another example, a voucher reader 330 may have a serial interface with commands for controlling the voucher reader 330. Protocol discoverer 358 may communicate with voucher reader 330 to instruct voucher reader 330 to send a signal to the rest of EGM 302 that a particular voucher with a given identification and a given balance has been deposited. Monitor 354 may capture the signals associated with the input operation and record the signals into operational trace 356, which may be parsed by protocol discoverer 358. Protocol discoverer 358 may thus have access to the commands used by voucher reader 330 itself in such a case. After storing the association of the observed signals with the action caused in protocol dictionary 222, a subsequent test of an EGM may be made emulating the action of the voucher reader 330 without requiring the voucher reader 330 to be present.
  • EGM 302 may conduct various activities in response to the applied input, such as conduct a wagering game, update credits, award payouts, conduct bonuses, activate peripherals, contact networked casino entities, or other suitable action. EGM 302 may provide such signals through its interfaces. Monitor 354 may record signals generated as a result of such activities. For example, monitor 354 may record output signals sent from the interfaces of EGM 302 to a video device 316, SAS test host 320, voucher printer 331, lights 340, switches 344, USB device 348, or mechanical reels 352. Monitor 354 may record such information in operational trace 356 and send operational trace 356 to protocol discoverer 358. Protocol discoverer 358 may determine an association between the input signals sent to EGM 302 and the resultant output signals. Protocol discoverer 358 may record such an association in protocol dictionary 222.
  • FIG. 4 is an example method 400 for applying a test to an EGM-under-test. In step 405, a sequence of test steps to be applied to the EGM may be determined. Such test steps may be abstracted to logical steps that may be applied to an EGM. The test sequence may be loaded from pre-defined or previously used test sequences. In step 410, the sequence or steps therein may be created or modified. In step 415, the test sequence may be saved.
  • In step 420, a test script based upon the test sequence may be generated. Generating the test script may include adding overhead, configuration, or initialization steps, adding loops or conditional tests, or other tasks. In step 425, a protocol dictionary may be accessed to determine, for a given portion of the test script, how the test script may be represented by signals communicated to the EGM. In step 430, the test script may be interpreted to determine the signals, timing, and other operation of sending test signals to the EGM.
  • In step 435, the signals may be applied to the EGM. The signals may be applied to interfaces for, for example, bill readers, voucher readers, buttons, touch screens, SAS hosts, or other suitable interfaces. The signals may emulate, for example, the actions, inputs, or signals of various components of the EGM, entities coupled over a network with the EGM, or peripherals connected to the EGM.
  • In step 440, response output signals from the EGM may be received. A series of such signals may be received. Such signals may be include information sent from the EGM intended for various components of the EGM, entities coupled over a network with the EGM, or peripherals connected to the EGM.
  • In step 445, the protocol dictionary may be accessed to determine, for a given received signal, the associated meaning In step 450, the received signals may be translated into test results. The translation may be made based upon references to the protocol dictionary. In step 455, the status of the test script may be evaluated. The test script applied to the EGM may have conditional or iterative elements. For example, if an input causes an acceptable response from the EGM, a second test may be applied to the EGM by varying the input to a second value, or by conducting a second input that depended upon the first. If the test script is not complete, then method 400 may return to step 425 and continue to execute the test script. If the test script is complete, then the method 400 may continue in step 460.
  • In step 460, the test results may be logged. In step 460, the test results may be analyzed to determine whether the results indicate a malfunction, bug, successful operation, or other outcome.
  • FIG. 5 is an example illustration of a method 500 for determining a protocol dictionary for translating test steps to be communicated to an EGM or for translating test results from an EGM. Method 500 may include application of an input and/or receipt of an output.
  • In one embodiment, method 500 may include application of an input whose emulation, operational trace, or protocol is unknown. In such an embodiment, method 500 may be used to determine the emulation, operational trace, or protocol of the input. Application of the input may be accomplished directly. Depending upon the nature of the input or output, such application may be accomplished manually, while in other embodiments such application may be automated. For example, pushing a button on an EGM may be accomplished by manually pressing the button or by programming a solenoid coupled to a test fixture to move a testing member to press the button. In another example, a signal from a SAS server may be sent to the EGM.
  • In another embodiment, method 500 may include application of an input whose emulation, operational trace, or protocol is known. In such an embodiment, method 500 may be used to determine the emulation, operational trace, or protocol of the resulting output from such an input.
  • In step 505, a series of protocols to be discovered may be determined. Each of the protocols may represent the input or output signals associated with an action of an EGM. The protocols may be used to emulate input to or interpret output from an EGM. Some protocols may require more than one input or output step. The protocols may be conditional, iterative, or otherwise compound. In step 510, an input to be sent to an EGM may be determined. The input to be sent may be determined as one of several input or output steps to be conducted in association with determining a protocol. The input to be sent may be determined by selecting a protocol to be discovered.
  • In step 515, it may be determined whether the input will be emulated. In one embodiment, the input may be emulated such that signals representing the input may be sent to the EGM without actually conducting the action associated with the input. For example, a bill collector may be emulated to emulate the signal associated with inserting a certain amount of money into the EGM. In another example, the input may be actually applied such that signals representing the input may be sent to the EGM. For example, a button on an EGM may be pressed. The selection of whether to emulate an input may be made based on whether protocol has been discovered for a given input. For example, during a first execution of step 515 a protocol for the input associated with pressing a button may not be known and the input may actually be conducted, but during a second execution of method 515 the protocol for the input may have been discovered and thus emulated. The protocol may have been discovered using the remaining steps of method 500 as described herein.
  • If the input is to be emulated, then in step 520 the input may be emulated and applied to the EGM. The input may be emulated by, for example, sending signals, voltages, digital signals or data, switch signals, electronic communication, text strings or other information to the EGM. The emulated input may be sent through, for example, digital input/output boards, serial interfaces, Ethernet, SAS, or any other suitable mechanism. To emulate the input, the protocol dictionary may be accessed and an operational trace associated with the input may be retrieved. The operational trace may be applied to the EGM as an emulation of the input. Method 500 may then proceed to step 555.
  • If the input is not to be emulated, then in step 525 the input may be applied to the EGM. In step 535, the application of input may be monitored. In one embodiment, the application of input may be monitored with a pass-through technique or mechanism. For example, application of an input configured to be input using serial communication may be monitored with a serial listening device configured to send the input to its original destination and a copy of the input to a listening point. In another embodiment, the application of input may be redirected to a listening point. For example, application of button inputs may be wired to be redirected to digital input boards to be monitored. In such embodiments where inputs are redirected, method 500 might not execute steps to monitor output associated with the input.
  • In step 540, an operational trace of the input signals may be determined based on the monitored input. The operational trace may include a recording, measurement, or other indication of the input. The indication of the input may be recorded, measured, or otherwise indicated over time. In step 545, the operational trace may be associated with the input. In step 550, the association of the operational trace and the input may be stored in the protocol dictionary. Subsequent emulation of the input may be conducted by accessing the protocol dictionary.
  • In step 555, operations on the EGM may be conducted in response to the input. For example, if a wager button is input, a wager may be made on the EGM; if a “Spin Wheels” button is input, a wagering game may be conducted; or if currency is input, a total amount of funds available for wagering may be updated.
  • In step 560, output signals in response to such operations may be generated and returned from the EGM. Such output signals may include voltages, digital signals or data, switch signals, electronic communication, text strings or other information from EGM. In step 565, the output signals may be monitored. The output signals may be monitored by, for example, digital input/output boards, serial interfaces, Ethernet, SAS, or any other suitable mechanism. The reception of output signals may be monitored with, for example, a pass-through technique or mechanism or by redirecting output to a listening point. In step 570, an operational trace of the input signals may be determined based on the monitored output. The operational trace may include a recording, measurement, or other indication of the output. The indication of the output may be recorded, measured, or otherwise indicated over time.
  • In step 575, the operational trace may be associated with the output. Determination of the output may be made by programmatic determinations of expected output given an input. The programmatic determinations may be embodied in, for example, a state machine represented in logic or instructions stored in a memory. For example, given an input of a cash-out option, output signals corresponding to printing a voucher may be expected and subsequently monitored. In step 580, the association of the operational trace and the output may be stored in the protocol dictionary. Subsequent interpretation of received signals corresponding to the output signals may be determined by accessing the protocol dictionary.
  • In step 585, it may be determined whether additional protocols, or additional input or output steps need to be monitored. Such additional monitoring may be required as an additional protocol in a series of regressive tests or learning to be determined, or as an additional input or output as part of a compound operation. If so, the method 500 may repeat starting at step 510. If not, method 500 may terminate.
  • Methods 400 and 500 may be implemented using the system of FIGS. 1-3, or any other system operable to implement methods 400 and 500. As such, the preferred initialization point for methods 400 and 500 and the order of its steps may depend on the implementation chosen. In some embodiments, some steps may be optionally omitted, repeated, or combined. In some embodiments, some steps of methods 400 and 500 may be executed in parallel with other steps of methods 400 500. In certain embodiments, methods 400 and 500 may be implemented partially or fully in software embodied in computer-readable media.
  • For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such wires, optical fibers, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
  • Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the disclosure as defined by the appended claims.

Claims (20)

What is claimed is:
1. A method for testing an electronic gaming machine, comprising:
generating a test sequence comprising one or more tests to be conducted on the electronic gaming machine, the tests including a criteria indicating inappropriate or appropriate operation of the electronic gaming machine;
generating a test script from the test sequence, the test script comprising one or more inputs to be applied to the electronic gaming machine, the one or more inputs associated with wagering game play;
accessing a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine;
emulating one or more parts of the electronic gaming machine by applying the specific values for the inputs to the electronic gaming machine;
receiving one or more outputs from the electronic gaming machine;
accessing the protocol dictionary to determine conditions associated with the outputs; and
interpreting the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met.
2. The method of claim 1, wherein emulating one or more parts of the electronic gaming machine includes emulating a bill acceptor.
3. The method of claim 1, wherein emulating one or more parts of the electronic gaming machine includes emulating pressing inputs into the electronic gaming machine.
4. The method of claim 1, wherein emulating one or more parts of the electronic gaming machine includes emulating communication from a casino server.
5. The method of claim 1, wherein emulating one or more parts of the electronic gaming machine includes emulating swiping of a player card.
6. The method of claim 1, wherein receiving one or more outputs from the electronic gaming machine includes receiving outputs indicating the result of wagering game play.
7. An article of manufacture, comprising:
a computer readable medium; and
computer-executable instructions carried on the computer readable medium, the instructions readable by a processor, the instructions, when read and executed, for causing the processor to:
generate a test sequence comprising one or more tests to be conducted on the electronic gaming machine, the tests including a criteria indicating inappropriate or appropriate operation of the electronic gaming machine;
generate a test script from the test sequence, the test script comprising one or more inputs to be applied to the electronic gaming machine, the one or more inputs associated with wagering game play;
access a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine;
emulate one or more parts of the electronic gaming machine by applying the values for the inputs to the electronic gaming machine;
receive one or more outputs from the electronic gaming machine;
access the protocol dictionary to determine conditions associated with the outputs; and
interpret the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met.
8. The article of claim 7, wherein emulating one or more parts of the electronic gaming machine includes emulating a bill acceptor.
9. The article of claim 7, wherein emulating one or more parts of the electronic gaming machine includes emulating pressing inputs into the electronic gaming machine.
10. The article of claim 7, wherein emulating one or more parts of the electronic gaming machine includes emulating communication from a casino server.
11. The article of claim 7, wherein emulating one or more parts of the electronic gaming machine includes emulating swiping of a player card.
12. The article of claim 7, wherein receiving one or more outputs from the electronic gaming machine includes receiving outputs indicating the result of wagering game play.
13. A system for testing an electronic gaming machine, comprising:
a test server comprising a server processor coupled to a server memory;
a test fixture comprising an emulator, the test fixture communicatively coupled to the test server;
the server memory containing instructions for causing the server processor to:
generate a test sequence comprising one or more tests to be conducted on the electronic gaming machine, the tests including a criteria indicating inappropriate or appropriate operation of the electronic gaming machine;
generate a test script from the test sequence, the test script comprising one or more inputs to be applied to the electronic gaming machine, the one or more inputs associated with wagering game play;
access a protocol dictionary to determine values for the inputs, the values emulating one or more parts of the electronic gaming machine; and
communicate the values to the test fixture;
the emulator configured to:
emulate one or more parts of the electronic gaming machine by applying the values for the inputs to the electronic gaming machine;
receive one or more outputs from the electronic gaming machine; and
communicate the outputs to the test server;
the server memory containing further instructions for causing the server processor to:
access the protocol dictionary to determine conditions associated with the outputs; and
interpret the determined conditions to determine whether the criteria for appropriate operation of the electronic gaming machine has been met.
14. The system of claim 13, wherein the emulator is configured to emulate a bill acceptor.
15. The system of claim 13, wherein the emulator is configured to emulate pressing inputs into the electronic gaming machine.
16. The system of claim 13, wherein the emulator is configured to emulate communication from a casino server.
17. The system of claim 13, wherein the emulator is configured to emulate swiping of a player card.
18. The system of claim 13, wherein receiving one or more outputs from the electronic gaming machine includes receiving outputs indicating the result of wagering game play.
19. A method of determining a protocol dictionary, comprising:
determining an input to be applied to an electronic gaming machine, the input associated with wagering game play;
applying the input to the electronic gaming machine;
monitoring the application of input to the electronic gaming machine;
recording the input to the electronic gaming machine in an operational trace;
associating the operational trace with the input; and
storing the association in the protocol dictionary.
20. A method of determining a protocol dictionary, comprising:
determining an input to be applied to an electronic gaming machine, the input associated with wagering game play;
applying the input to the electronic gaming machine;
receiving an output from the electronic gaming machine in response to the input;
recording the output to the electronic gaming machine in an operational trace;
associating the operational trace with the output; and
storing the association in the protocol dictionary.
US13/307,498 2011-11-30 2011-11-30 Electronic Gaming Machine Automated Testing Abandoned US20130137498A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/307,498 US20130137498A1 (en) 2011-11-30 2011-11-30 Electronic Gaming Machine Automated Testing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/307,498 US20130137498A1 (en) 2011-11-30 2011-11-30 Electronic Gaming Machine Automated Testing

Publications (1)

Publication Number Publication Date
US20130137498A1 true US20130137498A1 (en) 2013-05-30

Family

ID=48467366

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/307,498 Abandoned US20130137498A1 (en) 2011-11-30 2011-11-30 Electronic Gaming Machine Automated Testing

Country Status (1)

Country Link
US (1) US20130137498A1 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140213368A1 (en) * 2013-01-30 2014-07-31 Wms Gaming, Inc. Emulator for production software outcome validation
WO2015046790A1 (en) * 2013-09-27 2015-04-02 Samsung Electronics Co., Ltd. Electronic device and method of operating the same
US9152541B1 (en) * 2012-03-22 2015-10-06 Amazon Technologies, Inc. Automated mobile application verification
US9240099B2 (en) 2013-11-11 2016-01-19 Bally Gaming, Inc. Game outcome validator
US20160158647A1 (en) * 2012-12-06 2016-06-09 Steelseries Aps Method and apparatus for presenting information associated with a game
CN108076094A (en) * 2016-11-15 2018-05-25 烟台蓝洋电子科技有限责任公司 Dictionary protocol terminal equipment
KR20200108628A (en) * 2019-03-11 2020-09-21 아주큐엠에스 주식회사 Device and Method for Testing Game Using Script Based on Object
US20220121561A1 (en) * 2019-04-12 2022-04-21 GameDriver, Inc. Video game testing and automation framework
US11436125B2 (en) * 2017-08-16 2022-09-06 Netmarble Corporation Game test automation device and method
US11636726B2 (en) * 2020-05-08 2023-04-25 Aristocrat Technologies, Inc. Systems and methods for gaming machine diagnostic analysis
US11651651B2 (en) 2019-05-31 2023-05-16 Aristocrat Technologies, Inc. Ticketing systems on a distributed ledger
US11741783B2 (en) 2019-01-23 2023-08-29 Aristocrat Technologies Australia Pty Limited Gaming machine security devices and methods
US11756375B2 (en) 2019-05-31 2023-09-12 Aristocrat Technologies, Inc. Securely storing machine data on a non-volatile memory device
US11756377B2 (en) 2019-12-04 2023-09-12 Aristocrat Technologies, Inc. Preparation and installation of gaming devices using blockchain
US11783669B2 (en) 2018-08-22 2023-10-10 Aristocrat Technologies Australia Pty Limited Gaming machine and method for evaluating player reactions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4513439A (en) * 1982-07-12 1985-04-23 Ardac, Inc. Security validator
US4660833A (en) * 1985-01-02 1987-04-28 Igt Reel monitoring and diagnostic device for an amusement machine
US5467856A (en) * 1992-07-08 1995-11-21 Kabushiki Kaisha Universal Gaming machine and method of detecting fraud in the same
US20090149245A1 (en) * 2005-08-17 2009-06-11 Igt Scan based configuration control in a gaming environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4513439A (en) * 1982-07-12 1985-04-23 Ardac, Inc. Security validator
US4660833A (en) * 1985-01-02 1987-04-28 Igt Reel monitoring and diagnostic device for an amusement machine
US5467856A (en) * 1992-07-08 1995-11-21 Kabushiki Kaisha Universal Gaming machine and method of detecting fraud in the same
US20090149245A1 (en) * 2005-08-17 2009-06-11 Igt Scan based configuration control in a gaming environment

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152541B1 (en) * 2012-03-22 2015-10-06 Amazon Technologies, Inc. Automated mobile application verification
US10013330B2 (en) 2012-03-22 2018-07-03 Amazon Technologies, Inc. Automated mobile application verification
US20160158647A1 (en) * 2012-12-06 2016-06-09 Steelseries Aps Method and apparatus for presenting information associated with a game
US9053607B2 (en) * 2013-01-30 2015-06-09 Wms Gaming, Inc. Emulator for production software outcome validation
US20140213368A1 (en) * 2013-01-30 2014-07-31 Wms Gaming, Inc. Emulator for production software outcome validation
WO2015046790A1 (en) * 2013-09-27 2015-04-02 Samsung Electronics Co., Ltd. Electronic device and method of operating the same
US9240099B2 (en) 2013-11-11 2016-01-19 Bally Gaming, Inc. Game outcome validator
CN108076094A (en) * 2016-11-15 2018-05-25 烟台蓝洋电子科技有限责任公司 Dictionary protocol terminal equipment
US11436125B2 (en) * 2017-08-16 2022-09-06 Netmarble Corporation Game test automation device and method
US11783669B2 (en) 2018-08-22 2023-10-10 Aristocrat Technologies Australia Pty Limited Gaming machine and method for evaluating player reactions
US11741782B2 (en) 2019-01-23 2023-08-29 Aristocrat Technologies Australia Pty Limited Gaming machine security devices and methods
US11741783B2 (en) 2019-01-23 2023-08-29 Aristocrat Technologies Australia Pty Limited Gaming machine security devices and methods
KR102313845B1 (en) * 2019-03-11 2021-10-18 아주큐엠에스 주식회사 Device and Method for Testing Game Using Script Based on Object
KR20200108628A (en) * 2019-03-11 2020-09-21 아주큐엠에스 주식회사 Device and Method for Testing Game Using Script Based on Object
US20220121561A1 (en) * 2019-04-12 2022-04-21 GameDriver, Inc. Video game testing and automation framework
US11829286B2 (en) * 2019-04-12 2023-11-28 GameDriver, Inc. Video game testing and automation framework
US11651651B2 (en) 2019-05-31 2023-05-16 Aristocrat Technologies, Inc. Ticketing systems on a distributed ledger
US11756375B2 (en) 2019-05-31 2023-09-12 Aristocrat Technologies, Inc. Securely storing machine data on a non-volatile memory device
US11756377B2 (en) 2019-12-04 2023-09-12 Aristocrat Technologies, Inc. Preparation and installation of gaming devices using blockchain
US11636726B2 (en) * 2020-05-08 2023-04-25 Aristocrat Technologies, Inc. Systems and methods for gaming machine diagnostic analysis

Similar Documents

Publication Publication Date Title
US20130137498A1 (en) Electronic Gaming Machine Automated Testing
US9378025B2 (en) Booting a set of embedded computer modules in a wagering game machine by selecting a portion of bios
US7988559B2 (en) Computerized gaming system, method and apparatus
US7618317B2 (en) Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
AU2001245529B2 (en) Computerized gaming system, method and apparatus
US20110177867A1 (en) Computerized gaming system, method and apparatus
US7104889B2 (en) Method of using a rule based script to describe gaming machine payout
US20120172135A1 (en) Gaming System
US20080045298A1 (en) Gaming machine and gaming method thereof
US20080085750A1 (en) Gaming machine and gaming method thereof
US20080108418A1 (en) Gaming Machine and Gaming Method Thereof
US20080032774A1 (en) Gaming machine and gaming method thereof
US20080032775A1 (en) Gaming machine and gaming method thereof
US20080045313A1 (en) Gaming machine and gaming method thereof
US9378616B2 (en) Device security in a gaming machine
US8221207B2 (en) Gaming machine with selection state repetition between stages
US20080051183A1 (en) Gaming machine and gaming method thereof
AU2016201896B2 (en) Gaming system
US20080058076A1 (en) Gaming Machine and Gaming Method Thereof
US20080254855A1 (en) Gaming Machine and Gaming Method Thereof
AU2013201511B2 (en) Gaming system
AU2012200531B2 (en) A method of processing a user data card, an interface module and a gaming system
US20080058077A1 (en) Gaming Machine and Gaming Method Thereof
AU2012202332A1 (en) Wagering game machine bios configuration

Legal Events

Date Code Title Description
AS Assignment

Owner name: MULTIMEDIA GAMES, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WILLYARD, RODNEY LYNN;REEL/FRAME:027298/0501

Effective date: 20111116

AS Assignment

Owner name: COMERICA BANK, A TEXAS BANKING ASSOCIATION, MICHIG

Free format text: SECURITY AGREEMENT;ASSIGNOR:MULTIMEDIA GAMES, INC.;REEL/FRAME:029017/0511

Effective date: 20120921

XAS Not any more in us assignment database

Free format text: SECURITY AGREEMENT;ASSIGNOR:MULTIMEDIA GAMES, INC.;REEL/FRAME:029075/0119

XAS Not any more in us assignment database

Free format text: SECURITY AGREEMENT;ASSIGNOR:MULTIMEDIA GAMES, INC.;REEL/FRAME:029191/0120

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MULTIMEDIA GAMES HOLDING COMPANY, INC., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COMERICA BANK;REEL/FRAME:034680/0086

Effective date: 20141219

Owner name: MEGABINGO INTERNATIONAL, LLC, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COMERICA BANK;REEL/FRAME:034680/0086

Effective date: 20141219

Owner name: MULTIMEDIA GAMES, INC., TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COMERICA BANK;REEL/FRAME:034680/0086

Effective date: 20141219

Owner name: MGAM TECHNOLOGIES, LLC, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COMERICA BANK;REEL/FRAME:034680/0086

Effective date: 20141219

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, TEXAS

Free format text: SECURITY INTEREST;ASSIGNORS:GLOBAL CASH ACCESS, INC.;MULTIMEDIA GAMES, INC.;REEL/FRAME:034692/0667

Effective date: 20141219

AS Assignment

Owner name: EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.), N

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042438/0640

Effective date: 20170509

Owner name: EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042438/0640

Effective date: 20170509

Owner name: EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042440/0076

Effective date: 20170509

Owner name: EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.), N

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042440/0076

Effective date: 20170509

Owner name: EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.), NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042438/0640

Effective date: 20170509

Owner name: EVERI GAMES INC. (F/K/A MULTIMEDIA GAMES, INC.), NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042440/0076

Effective date: 20170509

Owner name: EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC.), NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042440/0076

Effective date: 20170509

Owner name: EVERI PAYMENTS INC. (F/K/A GLOBAL CASH ACCESS, INC.), NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:042438/0640

Effective date: 20170509

AS Assignment

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:EVERI HOLDINGS INC.;EVERI PAYMENTS INC.;GCA MTL, LLC;AND OTHERS;REEL/FRAME:052494/0463

Effective date: 20200421

AS Assignment

Owner name: EVERY PAYMENTS INC., NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

Owner name: EVERI HOLDINGS INC., NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

Owner name: EVERI GAMES HOLDING INC., NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

Owner name: GCA MTL, LLC, NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

Owner name: CENTRAL CREDIT, LLC, NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

Owner name: EVERI INTERACTIVE LLC, NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

Owner name: EVERI GAMES INC., NEVADA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JEFFERIES FIANANCE LLC;REEL/FRAME:057111/0001

Effective date: 20210803

AS Assignment

Owner name: EVERI PAYMENTS INC., NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

Owner name: EVERI HOLDINGS INC., NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

Owner name: EVERI GAMES HOLDING INC., NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

Owner name: GCA MTL, LLC, NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

Owner name: CENTRAL CREDIT, LLC, NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

Owner name: EVERI INTERACTIVE LLC, NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

Owner name: EVERI GAMES INC., NEVADA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME AND THE FIRST ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 057111 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:057184/0244

Effective date: 20210803

AS Assignment

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK

Free format text: PATENT SECURITY AGREEMENT (SHORT-FORM);ASSIGNOR:EVERI HOLDINGS INC.;REEL/FRAME:058948/0265

Effective date: 20210803