SlideShare a Scribd company logo
АВТОМАТИЗИРОВАННОЕ
ТЕСТИРОВАНИЕ ИГРОВЫХ
ПРИЛОЖЕНИЙ
Сергей Парамонов
компания «Тортуга»
Зачем?
Игровые приложения
Есть же люди!
Есть же люди
• 4 проекта в активной разработки
• 9 платформ(социальные сети, AppStore, Android
Store)
• 10 языков
Есть же люди
• 117 регрессионных тестов
• Среднее время теста прогона всех
тестов 4 часа
• Среднее время таска 3 часа
• Цена исправления
Мечты
• Тестировать на каждый коммит
• Тестировать на всех устройствах
• Тестировать каждую ночь
• Нефункциональное тестирование
Особенности наших приложений
• Клиент-серверная архитектура
• Многопользовательность
• «Толстый» клиент написанный на разных
языках
Уровни тестирования
• Модульное
• Компонентное
• Системное
• Приемочное
Уровни тестирования
• Модульное
• Приемочное
Проблемы модульного тестирования
• Писать тесты надо уметь
• Тесты пишут разработчики
• Код должен быть тестируемый
Модульное тестирование
• Inverse of Control
• Создание фейковых служб и сервисов
• Нет тестов нет таска(драконовские методы по
внедрению)
Проблемы приемочного тестирования
• Отсутствие инструментов
• Сложность написание и поддержки тестов
• Хрупкость
• Долгое прохождение тестов
Кто эти люди?
Кто эти люди?
• Разработчики
• Тестировщики
• Автоматизаторы
• Директора
Как помочь тестировщикам?
Инструменты
• Appium
• Espresso
• Selenium
• WebDriver
• Homebrew
Конвейер развертывания
• Мaven
• Jenkins
• Nexus
• Пакетный менеджер
Тестовое окружение
• Тестовое окружение должно быть максимально
похоже на боевое(OC, База Данных и т.д.)
• Разделение сборки(кода) и конфигурации
• Автоматизированные способы установки
(скрипты, пакетные менеджеры)
• Эмуляторы и виртуалки
Фикстуры
• Плейсхолдеры в конфигах
• Не работать с источниками данных напрямую
• Использовать то же api что и разработчики
• Не использовать в качестве фикстуры другой тест
Adept ACT
• Интеграция с TestNg
• Язык тестов - Java
• Клиент-серверная архитектура
• Легкая кастомизация
Adept ACT - возможности
• Запуск приложения на разных платформах
• Нахождение видимых элементов по пути / тегу
• Эмулирование клика на объекте
• Эмулирование жестов
• Парсинг логов
• Проверка публичных свойств объектов
Пример кода
Octotpusik
• Загрузка новых
сборок
• Запуск приложений
• Управление пулом
Octotpusik
Планы на будущее
• Параллельный запуск тестов
• Клиентская часть для Flash
• Тестирование производительности
• Сравнение изображений
Вопросы?
Сергей Парамонов
Технический директор
ООО «Тортуга»
http://tortuga.games/
sergey.paramonov@tortugasocial.com

More Related Content

More from SECON

SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON
 
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON
 
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON
 
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON
 
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#
SECON
 
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON
 
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON
 
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON
 
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON
 
SECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализации
SECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализацииSECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализации
SECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализации
SECON
 
SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...
SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...
SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...
SECON
 
SECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторы
SECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторыSECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторы
SECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторы
SECON
 
SECON'2017, Кардава Звиад, Android Things + Google Weave
SECON'2017, Кардава Звиад, Android Things + Google WeaveSECON'2017, Кардава Звиад, Android Things + Google Weave
SECON'2017, Кардава Звиад, Android Things + Google Weave
SECON
 
SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...
SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...
SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...
SECON
 
SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...
SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...
SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...
SECON
 
SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»
SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»
SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»
SECON
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON
 

More from SECON (20)

SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
 
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
 
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
 
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практике
 
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#
 
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
 
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
 
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
 
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
 
SECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализации
SECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализацииSECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализации
SECON'2017, Кошак Павел, Покажи миру язык. Пять секретов грамотной локализации
 
SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...
SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...
SECON'2017, Каплинский Константин, Продажа российского IT-продукта на глобаль...
 
SECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторы
SECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторыSECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторы
SECON'2017, Матросов Михаил. Matrosov, Повседневный С++: алгоритмы и интераторы
 
SECON'2017, Кардава Звиад, Android Things + Google Weave
SECON'2017, Кардава Звиад, Android Things + Google WeaveSECON'2017, Кардава Звиад, Android Things + Google Weave
SECON'2017, Кардава Звиад, Android Things + Google Weave
 
SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...
SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...
SECON'2017, Реуцкий Вадим, О чем мечтают современные андройды: особенности ра...
 
SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...
SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...
SECON'2017, Власенко Олег, Производственная практика ИТ студентов - как компа...
 
SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»
SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»
SECON'2017, Панельная дискуссия «Роль вуза в становлении программиста»
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
 

SECON'2017, Парамонов Сергей, Автоматизированное тестирование игровых приложений