SlideShare uma empresa Scribd logo
1 de 116
Baixar para ler offline
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в
суровых реалиях интернета
Усов Андрей
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

Mais conteúdo relacionado

Mais procurados

UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиSQALab
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiYandex
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевPositive Hack Days
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...COMAQA.BY
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web apiIgor Lyubin
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooSQALab
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС2ГИС Технологии
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрокаSQALab
 
Free Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testingFree Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testingAlexandr Zinovyev
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 

Mais procurados (20)

UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестами
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в Badoo
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Free Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testingFree Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testing
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 

Semelhante a Тестируем мобильное приложение в суровых реалиях Интернета

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)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
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Yandex
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь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
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьDaria Oreshkina
 

Semelhante a Тестируем мобильное приложение в суровых реалиях Интернета (20)

Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
Переход с Objective-C на Swift — все ли так просто? / Олег Алексеенко (SuperJob)
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
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
 
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
Continuousdelivery
ContinuousdeliveryContinuousdelivery
Continuousdelivery
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
 

Mais de SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Mais de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Тестируем мобильное приложение в суровых реалиях Интернета