Как научить роботов играть в игры?

advertisement
Как научить роботов
играть в игры?
Филипп Кекс
Creative Mobile
Нужны ли играм автоматические
тесты?
Условия разработки
●
●
●
●
Unity3D
Mono (.Net 2.0 API)
NGUI
Android, iOS, Windows Phone, Desktop
Требования к тестам
●
●
●
●
UI и Unit
Запуск на любой платформе
Изолированность
Скорость
Правила облегчающие разработку
●
●
●
●
Бегут внутри приложения
Написаны на языке приложения
Пишутся самими разработчиками
Содержатся во всех сборках
Проблемы
●
●
●
●
●
Кастомный UI
Online приложение
Нет библиотек для тестирования
Нет потоков
Методы ввода (сенсорный экран,
акселерометр, джойстик)
● Интерактивность в реальном времени
Инструменты
● NUnit
● Jenkins
UI
Сцена
Контроллер
Контроллер
Логический
Компонент
Логический
Компонент
Клиент
Сервер
UI
Сцена
Контроллер
Контроллер
Mock
Mock
UI Тест
Логический
компонент
Unit Тест
Mock
Замена компонентов на Mock
● Самодельный фреймворк внедрения
зависимостей
● Минимальный функцианал
● <150 строк кода
Управление UI и сцен
● Самодельная автоматизация UI
● ~400 строк кода
Unit тесты
● NUnit
● Самодельный запуск внутри приложения
Пора кодить!
{\_/}
{#_#}
{} {}
Достоинства
● Гибкость
● Простота
Недостатки
● Отсутствие “красивых” репортов
● Отсутствие “красивых” инструментов
запуска
Запуск
● Jenkins сервер
● Полный прогон всех тестов на платформе
сервера в каждом цикле сборки
● Периодический прогон на всевозможных
устройствах (Ктулху)
● Ручной запуск любой сборки (включая
релиз) в режиме тестирования
“Ктулху” - тестовый стенд
“Ктулху” - тестовый стенд
Самоделкин научил...
Спасибо!
filipp.keks@creative-mobile.com
Download