Как научить роботов играть в игры? Филипп Кекс 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 сервер ● Полный прогон всех тестов на платформе сервера в каждом цикле сборки ● Периодический прогон на всевозможных устройствах (Ктулху) ● Ручной запуск любой сборки (включая релиз) в режиме тестирования “Ктулху” - тестовый стенд “Ктулху” - тестовый стенд Самоделкин научил... Спасибо! [email protected]