🎮🐢 Как QA научили Марио не прыгать в небеса
В классических автотестах всегда есть слабое место: они проверяют заранее заданные шаги, но не видят неожиданных “аномалий” поведения. А что если персонаж внезапно начнёт прыгать бесконечно? Или провалится сквозь землю? Обычный тест этого не заметит, потому что в сценарии таких шагов нет. 🔍 ПроблемаВ исследовании с Super Mario Bros. (open-source версия) разработчики хотели проверить стабильность геймплея.
Стандартные тесты ловили баги в скриптах,
но “игровые аномалии” (бесконечные прыжки, баги с физикой) часто ускользали.
🛠 Нестандартное решение — Runtime Monitoring QA-инженеры внедрили правила поведения прямо в игру:
«Марио не может прыгать дольше 2 секунд подряд».
«Высота прыжка не должна превышать 5 единиц».
«Скорость падения не может быть отрицательной».
Во время игры или автопрохождения система следила за выполнением этих правил.
Если правило нарушалось → фиксировался баг. Иногда система даже пыталась самостоятельно вернуть игру в консистентное состояние, чтобы продолжить тест.
💡 Пример В одном билде ошибка физики позволяла Марио “зависнуть” в воздухе. Обычный автотест не падал — ведь скрипт выполнялся. Но монитор зафиксировал нарушение:
«Высота прыжка превысила допустимое значение → ошибка физики».
Баг задокументировали и исправили на раннем этапе.