# US 2017/0286279 A1 · Game Stream Fuzz Testing and Automation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286279 A1
- Document ID: US20170286279A1
- Status: Published application
- Kind: A1
- Application number: 15/088,624
- Filed: 2016-04-01
- Published: 2017-10-05
- Earliest claimed: 2016-04-01
- Assignees: Sony Interactive Entertainment America LLC
- Applicants: Sony Interactive Entertainment America LLC
- Inventors: Tylor Allison; Geoffrey Poer
- Web page: https://patentgrep.com/patent/US20170286279A1

## CPC

- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- A63F 13/31: Communication aspects specific to video games, e.g. between several handheld game devices at close range
- A63F 13/352: involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
- A63F 13/355: Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
- A63F 13/70: Game security or game management aspects
- G06F 11/3684: {for test design, e.g. generating new test cases}
- H04L 65/60: Network streaming of media packets
- H04L 65/765: {intermediate}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method of fuzz testing an on-line gaming system includes a host test bench system capable of generating a protocol template that can be used for identifying primitives in the data communications between a client device and the online gaming servers. The protocol template can then be used to identify primitives in initial communications between the client device and the online gaming servers and perform generation fuzz testing of those initial communications. The system also includes a game stream interceptor that can intercept streaming online gaming data in both directions between the client device and the online gaming system. The intercepted streaming online gaming data can be mutated to test the client device and the servers in the online gaming system.

## Claims

### Claim 1

System for testing an on-line gaming system comprising:
a host test bench system including:
a fuzz testing client;
a generation decoding library;
a generation fuzz testing module operable to generate generation fuzz test data for the on-line gaming system;
a game stream interceptor
a mutation fuzz testing module operable to generate mutation fuzz test data for the on-line gaming system; and
a game stream decoding library; and
a data communication network coupling the host test bench system to the on-line gaming system via a fuzz testing application programming interface, the game stream interceptor for intercepting data communications between the on-line gaming system and a client device.

### Claim 2 (depends on 1)

The system of claim 1, wherein the generation fuzz testing module includes a protocol template.

### Claim 3 (depends on 1)

The system of claim 1, wherein the generation fuzz testing module is capable of generating a protocol template from an intercepted communication data stream between the on-line gaming system and the client device, the intercepted communication data stream being intercepted by the game stream interceptor.

### Claim 4 (depends on 1)

The system of claim 1, wherein the generation fuzz testing module fuzz is capable of generating a protocol template from an intercepted communication data stream between the on-line gaming system and the client device when a network protocol is changed, the intercepted communication data stream being intercepted by the game stream interceptor.

### Claim 5 (depends on 1)

The system of claim 1, wherein the client device includes a virtual streaming client device instantiated on the host test bench system.

### Claim 6

A method of testing an on-line gaming system comprising:
initiating a fuzz testing session on a host test bench system using a fuzz testing client;
obtaining a protocol template;
activating a streaming client device;
initiating an on-line gaming session with the on-line gaming system;
testing an initial set-up communications between the streaming client device and the on-line gaming system using an generation fuzz testing module included in the host test bench system; and
testing intercepted streaming data between a client device and the on-line gaming system using a game stream interceptor.

### Claim 7 (depends on 6)

The method of claim 6, wherein obtaining the protocol template includes automatically generating the protocol template including:
capturing an initial communication exchange between a client device and the on-line gaming system and identifying the initial communication exchange as a captured initial communication exchange;
identifying a plurality of primitives in the captured initial communication exchange to produce an identified plurality of primitives; and
generating the protocol template from the identified plurality of primitives and saving the generated protocol template.

### Claim 8 (depends on 7)

The method of claim 7, further comprising, receiving a change in a network protocol of a network coupling the client device and the on-line gaming system and initiating automatically generating the protocol template.

### Claim 9 (depends on 6)

The method of claim 6, wherein testing the initial set-up communications between the streaming client device and the on-line gaming system using the generation fuzz testing module included in the host test bench system includes:
capturing an initialization message exchange between the online gaming system and the client device in the game stream interceptor as a captured initialization message;
selecting a primitive in the captured initialization message as a selected primitive;
performing a generation fuzz test of the selected primitive;
determining a current status after performing the generation fuzz test of the selected primitive and saving the current status; and
analyzing the current status to identify a generation fuzz test failure and a root cause of the generation fuzz test failure.

### Claim 10 (depends on 9)

The method of claim 9, further comprising selecting a subsequent primitive in the captured initialization message and performing the generation fuzz test of the subsequent primitive.

### Claim 11 (depends on 9)

The method of claim 9, wherein selecting the primitive from the captured initialization message further includes selecting a permutation for the generation fuzz test of the selected primitive.

### Claim 12 (depends on 9)

The method of claim 9, wherein determining the current status after performing the generation fuzz test includes requesting a server status via a fuzz testing server application programming interface.

### Claim 13 (depends on 9)

The method of claim 9, wherein selecting the primitive in the captured initialization message as the selected primitive includes analyzing the captured initialization message in a generation fuzz testing module including comparing a protocol template to the captured initialization message to identify a plurality of primitives in the captured initialization message, wherein the selected primitive is one of the plurality of primitives in the captured initialization message.

### Claim 14 (depends on 6)

The method of claim 6, wherein testing the intercepted data communications between the client device and the on-line gaming system using the game stream interceptor includes:
inserting the game stream interceptor in a streaming data between the streaming server and the client device;
capturing a portion of the streaming data between the streaming server and the client device as a captured portion of the streaming data;
selecting a primitive in the captured portion of the streaming data as a selected mutation primitive;
performing a mutation fuzz test of the selected mutation primitive;
determining a current mutation fuzz test status after performing the mutation fuzz test of the selected mutation primitive and saving the current mutation fuzz test status; and
analyzing the current mutation fuzz test status to identify a mutation fuzz test failure and a root cause of the mutation fuzz test failure.

### Claim 15 (depends on 14)

The method of claim 14, further comprising selecting a subsequent mutation primitive in the captured streaming data and performing the mutation fuzz test of the subsequent mutation primitive.

### Claim 16 (depends on 14)

The method of claim 14, wherein selecting the mutation primitive from the captured streaming data further includes selecting a mutation for the mutation fuzz test of the selected mutation primitive.

### Claim 17 (depends on 14)

The method of claim 14, wherein determining the current mutation fuzz test status after performing the mutation fuzz test includes requesting a server status via a fuzz testing server application programming interface and requesting a status of the client device via a streaming client application programming interface.
