GDC is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

View, browse and sort the ever-growing list of sessions by pass type, topic, and format. With this Session Scheduler, you can build your schedule in advance and access it during the show via export or with the GDC Mobile App, once live. Sessions do fill up so please arrive early to sessions that you would like to attend. Adding a session to your schedule does not guarantee you a seat.

Procedural Test Generation: Content for Developers

Tom Thompson (Senior Software Engineer, WB Games Boston)

Pass Type: All Access Pass, Core+Summits Pass, Core Pass - Get your pass now!

Topic: Programming

Format: Session

Vault Recording: TBD

Audience Level: Intermediate

Automated testing is gaining both recognition and traction in the industry. Still, games lags the broader technology industry in both approach and practice. This session introduces property based testing specifically and generative testing more broadly. Traditionally, automated testing consists of enumerating some number of examples and thinking about potential edge cases. In property based testing, instead of enumerating examples the developer describes the qualities of a function. These qualities can then each be validated against the function's domain, allowing for a more fully explored problem space. The session contains a number of examples; showing both the use of property based tests as well as their difficulties.


Attendees will learn how to integrate property testing into their code and how generative testing can help them produce better software. Examples given target Unity, but the methods transfer to other environments.

Intended Audience

Programmers, managers of programmers, and anyone interested in delivering more correct software. Attendees should be comfortable looking at code and understand how they could enumerate the requirements of the software. Some knowledge of unit testing is assumed.