Video games testing is not all fun and, well, games as you are probably aware by now. Many practices of “traditional” software testing cannot be applied to game testing, that is true, however are there no ways of automating the process? Do people need to constantly play through a game over and over to determine possible flaws?
Why invent other types of tests?
There are astonishing practices like, let’s say, Unit testing in QA that assist in achieving hardcore quality of software. However such methodologies are not common among game testers. Why? Well, mostly because game functionality is tied together and rendering is directly connected to game mechanics. This leads to hellishly difficult Unit tests that are
- overly time-consuming to be written and maintained.
If the only rational conclusion is to make someone play a game why not create an actual player? Thus AI bots are created that run through a game performing numerous tasks end determining whether all works as it should.
As easy as that?
Well, of course AI test bots are far from top human performance, however they should do just fine in saving loads of ma0hours of testing. This is like making any NPC one of main characters. Such solutions tend to prove valuable, however have several challenges and pitfalls. Here are few examples:
- Automated AI’s are great for such aspects as character creation and other possibly scriptable UI tests. This way expected behavior is tested in fast, efficient manners with a tiny bit of planned randomness. Sure characters end up looking a bit funky but rest assured – all possible options have been tried out and verified. And lots of bugs are caught at this stage as well with remarkable speed.
- Bizarrely acting players are great means of testing. A bot that runs around, shoots at objects, jumps, swims or does whatever else random activities is a great test of physics in the game and determines infrastructure issues.
- Server infrastructure. This is a bit off topic, but is nevertheless a great place for automation if various transactions are being simulated. This is a great mean in terms of both performance and security.
When automation’s not an option?
- Actual combat and NPC interaction. You can automate dialog option testing in terms of whether all lines are being open and visualized correctly. However AI behavior is unpredictable and cannot justify or verify something beyond those simple activities.