Odziedziczyłem internetową grę edukacyjną. W ciągu ostatniego roku pracowałem nad ustabilizowaniem kodu i dodaniem nowych funkcji. Większość logiki znajduje się w interfejsie, więc testy jednostek zaplecza, choć pomocne, obejmują niewielki procent kodu.
Gra osiągnęła punkt, w którym zaczyna się komplikować. Istnieją dwie różne tryby dla każdej gry, a gra zachowuje się inaczej w zależności od trybu. Istnieją również różne flagi, które wpływają na grę.
Jestem programistą aplikacji od ponad 10 lat i to mnie niepokoi. W świecie korporacyjnym algorytm zawsze działa w ten sam sposób. Napiszę test jednostkowy algorytmu, spodziewam się wartości 42 i błąd, jeśli nie otrzymam tej wartości.
Jeśli chodzi o gry, jestem zagubiony. Jak je przetestować? Mam do dyspozycji testerów. Potrafię spędzać czas na pisaniu testów jednostkowych.
Testerzy są ... zawodni. Nie są najlepsi w eliminowaniu problemów i nie dałem im najlepszego kierunku. Jak spędzić mnóstwo czasu w każdym cyklu wydawniczym na testowaniu każdej permutacji i kombinacji gry, jak powinienem wykorzystać je jako zasób?
Testy jednostkowe wydają się ograniczone. Ponieważ większość logiki to javascript (i odziedziczyłem kod spaghetti), mogę użyć pakietu front-end, takiego jak Cucumber lub selen, aby upewnić się, że pewne funkcje działają.
Czy to najlepsza strategia? Jak firmy produkujące gry testują gry?
Przeczytałem pytanie „ Test Driven Development for Complex Games ” (między innymi na stronie), ale nie dotyczy tego, czego szukam. Proszę o strategie, a nie konkretne przykłady testowania.