SlideShare ist ein Scribd-Unternehmen logo
1 von 116
Downloaden Sie, um offline zu lesen
Тестируем мобильное приложение в
суровых реалиях интернета
Усов Андрей
a.usov@2gis.ru    usovand@gmail.com    techno.2gis.ru
•  2 года в тестировании
О себе
•  2 года в тестировании
•  Автоматизирую тестирование бекендов
О себе
•  2 года в тестировании
•  Автоматизирую тестирование бекендов
•  Разрабатываю инстументы для
тестирования
О себе
Мобильное приложение 2ГИС v4
•  iOS, Widows Phone, Android (beta)
Мобильное приложение 2ГИС v4
•  iOS, Widows Phone, Android (beta)
•  3 млн. пользователей
Мобильное приложение 2ГИС v4
•  iOS, Widows Phone, Android (beta)
•  3 млн. пользователей
•  9 стран
•  288 городов
Мобильное приложение 2ГИС v4
•  iOS, Widows Phone, Android (beta)
•  3 млн. пользователей
•  9 стран
•  288 городов
•  Работает офлайн
Ищи 2ГИС в любом магазине приложений
Доставка
данных
Нагрузка
•  Пиковый трафик 4 Gbps
Нагрузка
•  Пиковый трафик 4 Gbps
•  Максимум 400 rps
Нагрузка
•  Пиковый трафик 4 Gbps
•  Максимум 400 rps
•  Объем данных 512 Tb в месяц
Нагрузка
•  Пиковый трафик 4 Gbps
•  Максимум 400 rps
•  Объем данных 512 Tb в месяц
Но ещё не вышло обновление для Android (65% пользователей)
Критичность
•  Всегда актуальные данные
Критичность
•  Всегда актуальные данные
•  Обязательства перед партнерами
Критичность
•  Всегда актуальные данные
•  Обязательства перед партнерами
•  Доставка фич
Технология
доставки
Устройство
Приложение
Сеть
Серверы
Nginx
Хранилище
Связь
Выбирает клиент
Требования
•  Выбор стабильных серверов для загрузки
Требования
•  Выбор стабильных серверов для загрузки
•  Устойчивость к отказам даже в процессе закачки
Требования
•  Выбор стабильных серверов для загрузки
•  Устойчивость к отказам даже в процессе закачки
•  Нативные методы фоновой загрузки (iOS, Windows Phone)
Требования
•  Выбор стабильных серверов для загрузки
•  Устойчивость к отказам даже в процессе закачки
•  Нативные методы фоновой загрузки (iOS, Windows Phone)
Оказалось, что эти пункты плохо уживаются
Точки отказа
Нет доступа к сети
Нет связи с сервером
Встроенная реклама
Кончился Интернет
Сервер упал
Нет связи с хранилищем
Хранилище упало
Плохая связь
Обрывы
Сломалось все
И еще
•  Перегрузки на сервере
И еще
•  Перегрузки на сервере
•  Редиректы от провайдера
И еще
•  Перегрузки на сервере
•  Редиректы от провайдера
•  Ошибки DNS
И еще
•  Перегрузки на сервере
•  Редиректы от провайдера
•  Ошибки DNS
•  Баги в самом web-сервере
И еще
•  Перегрузки на сервере
•  Редиректы от провайдера
•  Ошибки DNS
•  Баги в самом web-сервере
Все эти сценарии необходимо проверить
Проблемы
Сложная настройка окружения
•  Изменение конфигурации web-сервера (Nginx, Apache)
Сложная настройка окружения
•  Изменение конфигурации web-сервера (Nginx, Apache)
•  Выполнение команд в хост-системе
Сложная настройка окружения
•  Изменение конфигурации web-сервера (Nginx, Apache)
•  Выполнение команд в хост-системе
•  Запуск произвольного скрипта на сервере
Большое количество работы
•  Серверов несколько
Большое количество работы
•  Серверов несколько
•  Платформы три
Большое количество работы
•  Серверов несколько
•  Платформы три
•  Релизов много
Ограничение по ресурсам
•  Времени мало
Ограничение по ресурсам
•  Времени мало
•  Людей мало
Ограничение по ресурсам
•  Времени мало
•  Людей мало
•  Людей с экспертизой очень мало
Ограничение по ресурсам
•  Времени мало
•  Людей мало
•  Людей с экспертизой очень мало
Но тестировать все равно надо
Решение
Требования к инструменту
•  Минимум операций
Требования к инструменту
•  Минимум операций
•  Простота использования
Требования к инструменту
•  Минимум операций
•  Простота использования
•  Простота реализации
Требования к инструменту
•  Минимум операций
•  Простота использования
•  Простота реализации
•  Надежность
Декомпозиция задачи
•  Копирование файлов на сервер
Декомпозиция задачи
•  Копирование файлов на сервер
•  Конфигурационный файл
Декомпозиция задачи
•  Копирование файлов на сервер
•  Конфигурационный файл
•  Скрипт
Декомпозиция задачи
•  Копирование файлов на сервер
•  Конфигурационный файл
•  Скрипт
•  Выполнение команд на сервере
Декомпозиция задачи
•  Копирование файлов на сервер
•  Конфигурационный файл
•  Скрипт
•  Выполнение команд на сервере
•  Перезапуск сервера
Декомпозиция задачи
•  Копирование файлов на сервер
•  Конфигурационный файл
•  Скрипт
•  Выполнение команд на сервере
•  Перезапуск сервера
•  Запуск скрипта
Ansible
Аналоги
Ansible
Почему Ansible?
Почему Ansible?
Почему Ansible?
Про Ansible
Про Ansible
Про Ansible
Про Ansible
Про Ansible
Про Ansible
Примеры
Inventory. Список серверов
[hosts]
host1 ansible_ssh_host=127.0.0.1
ansible_ssh_user=user ansible_ssh_pass=123
host2 ansible_ssh_host=127.0.0.2
ansible_ssh_user=user ansible_ssh_pass=456
Inventory. Задаем переменные
[hosts:vars]
return_for_files=502
limit_rate=256K
upstream=root.domain.name
nginx_apply_method=restarted
Playbook. Запускаем команду
- name: run-script | Run script
command: tc --help
async: 2678400
poll: 0
Playbook. Копируем файлы
- name: configure-nginx | Configure nginx
template: src=../resources/config.j2
dest=./your-server.conf
owner=root group=root mode=0644
Шаблоны
#содержимое config.j2
...
return {{return_for_files}};
...
Эта переменная в inventory
[hosts:vars]
return_for_files=502
limit_rate=256K
upstream=root.domain.name
nginx_apply_method=restarted
Вернемся в playbook
- name: configure-nginx | Configure nginx
template: src=../resources/config.j2
dest=./your-server.conf
owner=root group=root mode=0644
Полученный файл
#содержимое your-server.conf
...
return 502;
...
Playbook. Перезапускаем сервер
- name: restart-nginx | Restart nginx
service: name=nginx state=restarted
when: nginx_apply_method == "restarted"
Та самая переменная в inventory
[hosts:vars]
return_for_files=502
limit_rate=256K
upstream=root.domain.name
nginx_apply_method=restarted
Реализация
•  Разбиваем на классы конфигураций
Реализация
•  Разбиваем на классы конфигураций
•  Коды состояния HTTP
Реализация
•  Разбиваем на классы конфигураций
•  Коды состояния HTTP
•  Лимиты скорости
Реализация
•  Разбиваем на классы конфигураций
•  Коды состояния HTTP
•  Лимиты скорости
•  Определяем набор параметров для каждого класса
Реализация
•  Разбиваем на классы конфигураций
•  Коды состояния HTTP
•  Лимиты скорости
•  Определяем набор параметров для каждого класса
•  Пишем playbook'и
Важные моменты
•  Каждая операция должна быть обратима
Важные моменты
•  Каждая операция должна быть обратима
•  Нужно уметь приводить серверы в исходное состояние
Важные моменты
•  Каждая операция должна быть обратима
•  Нужно уметь приводить серверы в исходное состояние
•  Пишем мониторинг состояния
Профит
Ранее
•  Подлючаемся к каждому серверу
Ранее
•  Подлючаемся к каждому серверу
•  Копируем файлы
Ранее
•  Подлючаемся к каждому серверу
•  Копируем файлы
•  Редактируем конфигурацию
Ранее
•  Подлючаемся к каждому серверу
•  Копируем файлы
•  Редактируем конфигурацию
•  Запускаем команды
Ранее
•  Подлючаемся к каждому серверу
•  Копируем файлы
•  Редактируем конфигурацию
•  Запускаем команды
И так каждый раз
Сейчас
•  Меняем пару параметров в inventory
Сейчас
•  Меняем пару параметров в inventory
•  Запускаем нужный playbook
Сейчас
•  Меняем пару параметров в inventory
•  Запускаем нужный playbook
И всё
Интерфейс
Делаем web интерфейс
•  Интегрируем в Jenkins
Делаем web интерфейс
•  Интегрируем в Jenkins
•  Используем стандартные средства SCM
Делаем web интерфейс
•  Интегрируем в Jenkins
•  Используем стандартные средства SCM
•  Пишем что-то своё
Результаты
Результаты
•  Тестирование обновления данных стало простым
Результаты
•  Тестирование обновления данных стало простым
•  Найдено большое количество дефектов
Результаты
•  Тестирование обновления данных стало простым
•  Найдено большое количество дефектов
•  Изучено поведение мобильных платформ
Ссылки
•  http://www.ansible.com/ - Ansible
•  http://habrahabr.ru/post/211306/ - "Обзор: Puppet, Chef, Ansible, Salt"
•  https://jenkins-ci.org/ - Jenkins
Вопросы?
Усов Андрей
a.usov@2gis.ru
usovand@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхBadoo Development
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Ontico
 
Александр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsАлександр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsBadoo Development
 
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)Ontico
 
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Ontico
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис ПаясьCodeFest
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разTimur Batyrshin
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...Ontico
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyVsevolod Polyakov
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноBadoo Development
 
Путь мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsПуть мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsVsevolod Polyakov
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр АфеновCodeFest
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевPositive Hack Days
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 

Was ist angesagt? (20)

Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данных
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
 
Александр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsАлександр Зобнин, Grafana Labs
Александр Зобнин, Grafana Labs
 
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
 
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
Sivko
SivkoSivko
Sivko
 
Путь мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsПуть мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devops
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 

Andere mochten auch

«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...2ГИС Технологии
 
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС2ГИС Технологии
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...2ГИС Технологии
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияSQALab
 
«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС
«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС
«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС2ГИС Технологии
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил ИльиныхDevDay
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС2ГИС Технологии
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС2ГИС Технологии
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС 2ГИС Технологии
 
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИСПартицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС2ГИС Технологии
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья ТаратухинDevDay
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис РечкуновDevDay
 
Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...
Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...
Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...2ГИС Технологии
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneCodeFest
 
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС2ГИС Технологии
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьCodeFest
 
Опыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервисаОпыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервисаIlya Chesnokov
 
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...2ГИС Технологии
 

Andere mochten auch (20)

«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
«Девиации и патологии в отношениях с руководителями и подчинёнными» — Степан ...
 
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
 
«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС
«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС
«Частые релизы в Enterprise» – Алексей Чурбанов, 2ГИС
 
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
 
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИСTARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 
Article25
Article25Article25
Article25
 
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИСПартицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
Партицирование и миграции данных на примере PostgreSQL — Денис Иванов, 2ГИС
 
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
 
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
 
Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...
Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...
Особенности автоматизации тестирования: Single-page vs Multi-page (Seleniumca...
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows Phone
 
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
 
Опыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервисаОпыт разработки и тестирования RESTful JSON сервиса
Опыт разработки и тестирования RESTful JSON сервиса
 
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
Continuous Delivery, или волшебная кнопка для релизов по запросу — Денис Яков...
 

Ähnlich wie «Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Ontico
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Tanya Denisyuk
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Yandex
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
Continuous integration testing of mobile SDK
Continuous integration testing of mobile SDKContinuous integration testing of mobile SDK
Continuous integration testing of mobile SDKTestableapple
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)Ontico
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)Roman Dvornov
 
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Ontico
 
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10OdessaFrontend
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parseryalegko
 
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Yandex
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьDaria Oreshkina
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 

Ähnlich wie «Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС (20)

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Continuous integration testing of mobile SDK
Continuous integration testing of mobile SDKContinuous integration testing of mobile SDK
Continuous integration testing of mobile SDK
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
 
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
 
Continuousdelivery
ContinuousdeliveryContinuousdelivery
Continuousdelivery
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 

«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС