I've inherited a web-based educational game. Over the past year I've worked towards stabilizing the code and adding new features. Most of the logic is in the front-end, so back-end unit tests, while helpful, cover a small percent of the code.
The game has gotten to the point where it's starting to get complex. There are two different modes for each game and the game behaves differently depending on the mode. There are also various flags that affect game play.
I've been an application developer for 10+ years now and this perplexes me. In the enterprise world, an algorithm always functions the same way. I'll write a unit test for an algorithm, I'll expect the value 42 and it'll error if I don't get that value.
When it comes to games, I'm lost. How do I test them? I have testers available to me. I can spend time writing unit tests.
Testers are ... unreliable. They aren't the best at rooting out issues and I haven't given them the best direction. Short of spending a ton of time every release cycle testing every permutation and combination of the game, how should I use them as a resource?
Unit tests seem limited. Since most of the logic is javascript (and I inherited spaghetti code), I can use a front-end suite like Cucumber or selenium to ensure certain features are working.
Is that the best strategy? How do game companies test games?
I have read the question "Test Driven Development for Complex Games" (among others on the site), but it doesn't address what I'm looking for. I'm asking for strategies, not specific examples of how to test.