Heredé un juego educativo basado en la web. Durante el año pasado trabajé para estabilizar el código y agregar nuevas características. La mayor parte de la lógica está en el front-end, por lo que las pruebas unitarias de back-end, aunque útiles, cubren un pequeño porcentaje del código.
El juego ha llegado al punto en que comienza a complicarse. Hay dos modos diferentes para cada juego y el juego se comporta de manera diferente según el modo. También hay varias banderas que afectan el juego.
He sido desarrollador de aplicaciones durante más de 10 años y esto me deja perplejo. En el mundo empresarial, un algoritmo siempre funciona de la misma manera. Escribiré una prueba unitaria para un algoritmo, esperaré el valor 42 y producirá un error si no obtengo ese valor.
Cuando se trata de juegos, estoy perdido. ¿Cómo los pruebo? Tengo probadores disponibles para mí. Puedo pasar tiempo escribiendo pruebas unitarias.
Los probadores son ... poco confiables. No son los mejores para solucionar los problemas y no les he dado la mejor dirección. A menos que gaste una tonelada de tiempo en cada ciclo de lanzamiento probando cada permutación y combinación del juego, ¿cómo debo usarlos como recurso?
Las pruebas unitarias parecen limitadas. Dado que la mayor parte de la lógica es javascript (y heredé el código spaghetti), puedo usar una suite de aplicaciones para usuario como Cucumber o selenium para asegurar que ciertas funciones funcionen.
¿Es esa la mejor estrategia? ¿Cómo prueban los juegos las compañías de juegos?
He leído la pregunta " Desarrollo impulsado por pruebas para juegos complejos " (entre otros en el sitio), pero no aborda lo que estoy buscando. Estoy pidiendo estrategias, no ejemplos específicos de cómo evaluar.