In the area of Massively Multplayer Online games (MMoG) – for example, online Poker – the server plays a very important role, if not the most. 10,000 to 12000 simultaneously logged in players, is quite usual in this world of MMoGs (and is a conservative figure). The server is required to enforce game rules on the players, retain and propagate game-state, interact with other servers (e.g., payment, lobby etc.) and database and implement business rules (e.g., a player can’t continue if her wallet contains less-than-threshold amount of money), among other things.
Dictated by the need to support such a set of functionality while being highly resilient and scalable, the server lends itself easily to a design based upon multitude of asynchronous messages processed by thousands of short-lived tasks. These messages may originate from game clients, server’s internal components and other servers participating in the whole application (e.g., Game Administrator) and they access/update components and data-structures in a largely indeterminate way.
Moreover, the betting games are legally required to be driven by truly random behaviour. Thus, it is almost impossible to assure that the trace of execution path of a given message in the server, can be easily retraced. The resulting unpredictability of behaviour poses a real challenge to the effort of building an automated testsuite for such applications to verify the correctness of the server’s behaviour and establish its reliability.
The session will look at background of the application, the design, testability challenges and their mitigation and lessons learnt
Takeaways for the audience:
- An understanding of issues in testing a highly-threaded, low-latency/high-throughput system
- An understanding of the importance of Test-Robots in development and testing of MMoG and similar applications