SlideShare a Scribd company logo
1 of 27
Тестирование мобильных API:
Behind The Scenes
Павлов Андрей
T-Systems CIS, Санкт-Петербург
About me
• Ex-Developer
• В IT более 10 лет
• 4 из них в тестировании
• Senior QA @ T-Systems CIS
linkedin.com/in/qapavlov
ru.apavlov@gmail.com
Что такое API?
API (application programming interface) — набор готовых классов, процедур,
функций, структур и констант, предоставляемых приложением
(библиотекой, сервисом) для использования во внешних программных
продуктах.
А если нормально?..
Если программу рассматривать как чёрный ящик, то API — это множество
«ручек», которые доступны пользователю данного ящика и которые он
может вертеть и дёргать.
Высокоуровневые компоненты используют API низкоуровневых
компонентов, а те, в свою очередь, используют API ещё более
низкоуровневых компонентов.
Пример структуры API
APIs everywhere
Зачем API вообще нужны?
Давным-давно - Data Scraping.
Результатом было:
• Неверное истолкование данных
• Неудобный формат данных
• Компании теряли клиентов, если приложение предоставляло
неправильную информацию
Тогда компании задумались о реализации получения доступа к данным на
своей стороне.
Зачем API вообще нужны?
API предоставляет компаниям:
• Больше контроля над данными
• Контроль над использованием данных:
o Для использования API необходима авторизация
o Разработчик приложения должен доказать, что это приложение
корректно работает на тестовых данных прежде, чем получит
доступ к API
Так же API дают возможности:
• Масштабирования разработки
o Возможность увеличивать объем данных приложения, без
изменения самого приложения
• Преобразования конкурентов в партнеров
o Возможность позволить конкурентам надстраивать что-то сверху
вашего продукта
• Дополнительные полномочия для пользователей
o Возможность людям использовать продукт для вещей,
для которых он не был разработан
• Открытие нового рынка
Использование API
API включает в себя:
• Разделение данных и их представление
• Точка входа (изначальный URL, http или https),
• Навигация
• Представление вида командной строки
• Иерархия
• Ресурсы
• Структура
• Конфиденциальные данные (private API)
Тестирование мобильных API
С чего все начиналось
Что нужно учитывать при создании
стратегии
• Архитектура
o REST vs. SOAP
o Stateless vs. Session
o Media types vs. WSDL
• text/xml или application/vendor specific
o Verbs (RESTful API) и другие специфичные вещи
o Headers и кеширование запросов
• Tools
o SoapUI, Fiddler, аддоны для браузера (Postman, etc.)
Внимательно!
Особенно стоит уделить внимание особенностям протокола, например,
Verbs в RESTful API, заголовкам и кешированию.
К примеру, в случае с кэшами, нужно быть готовым к таким вещам, как:
– Старые данные
– Не относящиеся к происходящему ошибки (закешированные ранее)
– Многослойное кэширование (приложение – API – сервер)
Основные риски при создании стратегии
• Неясный процесс интеграции
• Огромное количество данных
• Невозможность тестирования end-to-end сценариев
• Неизвестная нагрузка
• Возможное неправильное понимание API
• Динамический скоуп
Стратегия тестирования мобильных API
Что же должно быть в самой стратегии?
• Как можно раньше должен быть проведен тест на интеграцию с
максимально полной инфраструктурой
• Тест на интеграцию c использованием кастомных фреймворков во
время разработки и систеста
• Многократные фазы интеграции
• Тестирования прототипа на реальных устройствах (acceptance testing)
Нужно больше фреймворков
Какие фазы мы должны выделить в нашей
стратегии?
1. Development (включая фреймворк для тестирования)
2. System testing (используя моки)
3. Integration testing (API с бэкэндом)
4. Acceptance testing (API на прототипе)
5. Production integration (пофазно)
6. Regression testing (автоматизация)
Использование моков
Личный опыт
Максимально полное тестирования
Главный Challenge мобильного
тестирования: девайсы
Тестирование в реальной сети
Рекомендации
Используйте эмулятор устройств
Используйте краудтестинг
Автоматизируйте, по мере возможности
Вопросы
linkedin.com/in/qapavlov
ru.apavlov@gmail.com

More Related Content

What's hot

Провокации автоматического тестирования
Провокации автоматического тестированияПровокации автоматического тестирования
Провокации автоматического тестирования
Igor Lyubin
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
UA Mobile
 

What's hot (20)

Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
 
Подходы к тестированию андроид приложений
Подходы к тестированию андроид приложенийПодходы к тестированию андроид приложений
Подходы к тестированию андроид приложений
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)
 
Использование Fiddler для эмуляции различных сетевых условий в автотестах
Использование Fiddler для эмуляции различных сетевых условий в автотестахИспользование Fiddler для эмуляции различных сетевых условий в автотестах
Использование Fiddler для эмуляции различных сетевых условий в автотестах
 
Тестируем мобильные приложения в облаках с appium
Тестируем мобильные приложения в облаках с appiumТестируем мобильные приложения в облаках с appium
Тестируем мобильные приложения в облаках с appium
 
Джентельменский набор тест-лида
Джентельменский набор тест-лидаДжентельменский набор тест-лида
Джентельменский набор тест-лида
 
До зеленых человечков: исследовательское тестирование мобильных приложений
До зеленых человечков: исследовательское тестирование мобильных приложенийДо зеленых человечков: исследовательское тестирование мобильных приложений
До зеленых человечков: исследовательское тестирование мобильных приложений
 
Провокации автоматического тестирования
Провокации автоматического тестированияПровокации автоматического тестирования
Провокации автоматического тестирования
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотов
 
Виртуализация и автоматизация тестирования мобильных приложений
Виртуализация и автоматизация тестирования мобильных приложенийВиртуализация и автоматизация тестирования мобильных приложений
Виртуализация и автоматизация тестирования мобильных приложений
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Автоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQLАвтоматизация тестирования базы на примере PostgreSQL
Автоматизация тестирования базы на примере PostgreSQL
 
Подготовка апдейта мобильного приложения "Одноклассники"
Подготовка апдейта мобильного приложения "Одноклассники"Подготовка апдейта мобильного приложения "Одноклассники"
Подготовка апдейта мобильного приложения "Одноклассники"
 
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
 
Тестирование трафика мобильных приложений: кейсы и инструменты
Тестирование трафика мобильных приложений: кейсы и инструментыТестирование трафика мобильных приложений: кейсы и инструменты
Тестирование трафика мобильных приложений: кейсы и инструменты
 
Эффективное тестирование сайта на мобильных устройствах
Эффективное тестирование сайта на мобильных устройствахЭффективное тестирование сайта на мобильных устройствах
Эффективное тестирование сайта на мобильных устройствах
 
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Локализационное тестирование носителями языков
Локализационное тестирование носителями языковЛокализационное тестирование носителями языков
Локализационное тестирование носителями языков
 

Similar to Тестирование мобильных API: Behind The Scenes

[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
OWASP Russia
 
Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5
rit2010
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
Ontico
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
Roman Pavlushko
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
Media Gorod
 

Similar to Тестирование мобильных API: Behind The Scenes (20)

Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
 
RESTful API development with Symfony2
RESTful API development with Symfony2RESTful API development with Symfony2
RESTful API development with Symfony2
 
Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важно
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
 
3 ibm bdw2015
3 ibm bdw20153 ibm bdw2015
3 ibm bdw2015
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 
Автоматизированный подход к локализации корпоративных приложений
Автоматизированный подход к локализации корпоративных приложенийАвтоматизированный подход к локализации корпоративных приложений
Автоматизированный подход к локализации корпоративных приложений
 
SECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой APISECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой API
 
Yii rit 2010
Yii rit 2010Yii rit 2010
Yii rit 2010
 
Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
Sivko
SivkoSivko
Sivko
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 

More from SQALab

More from 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 или как тест-менеджеру перекроить внут...
 

Тестирование мобильных API: Behind The Scenes

  • 1. Тестирование мобильных API: Behind The Scenes Павлов Андрей T-Systems CIS, Санкт-Петербург
  • 2. About me • Ex-Developer • В IT более 10 лет • 4 из них в тестировании • Senior QA @ T-Systems CIS linkedin.com/in/qapavlov ru.apavlov@gmail.com
  • 3. Что такое API? API (application programming interface) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.
  • 4. А если нормально?.. Если программу рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать. Высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.
  • 7. Зачем API вообще нужны? Давным-давно - Data Scraping. Результатом было: • Неверное истолкование данных • Неудобный формат данных • Компании теряли клиентов, если приложение предоставляло неправильную информацию Тогда компании задумались о реализации получения доступа к данным на своей стороне.
  • 8. Зачем API вообще нужны? API предоставляет компаниям: • Больше контроля над данными • Контроль над использованием данных: o Для использования API необходима авторизация o Разработчик приложения должен доказать, что это приложение корректно работает на тестовых данных прежде, чем получит доступ к API Так же API дают возможности: • Масштабирования разработки o Возможность увеличивать объем данных приложения, без изменения самого приложения • Преобразования конкурентов в партнеров o Возможность позволить конкурентам надстраивать что-то сверху вашего продукта • Дополнительные полномочия для пользователей o Возможность людям использовать продукт для вещей, для которых он не был разработан • Открытие нового рынка
  • 9. Использование API API включает в себя: • Разделение данных и их представление • Точка входа (изначальный URL, http или https), • Навигация • Представление вида командной строки • Иерархия • Ресурсы • Структура • Конфиденциальные данные (private API)
  • 11. С чего все начиналось
  • 12. Что нужно учитывать при создании стратегии • Архитектура o REST vs. SOAP o Stateless vs. Session o Media types vs. WSDL • text/xml или application/vendor specific o Verbs (RESTful API) и другие специфичные вещи o Headers и кеширование запросов • Tools o SoapUI, Fiddler, аддоны для браузера (Postman, etc.)
  • 13. Внимательно! Особенно стоит уделить внимание особенностям протокола, например, Verbs в RESTful API, заголовкам и кешированию. К примеру, в случае с кэшами, нужно быть готовым к таким вещам, как: – Старые данные – Не относящиеся к происходящему ошибки (закешированные ранее) – Многослойное кэширование (приложение – API – сервер)
  • 14. Основные риски при создании стратегии • Неясный процесс интеграции • Огромное количество данных • Невозможность тестирования end-to-end сценариев • Неизвестная нагрузка • Возможное неправильное понимание API • Динамический скоуп
  • 15. Стратегия тестирования мобильных API Что же должно быть в самой стратегии? • Как можно раньше должен быть проведен тест на интеграцию с максимально полной инфраструктурой • Тест на интеграцию c использованием кастомных фреймворков во время разработки и систеста • Многократные фазы интеграции • Тестирования прототипа на реальных устройствах (acceptance testing)
  • 17. Какие фазы мы должны выделить в нашей стратегии? 1. Development (включая фреймворк для тестирования) 2. System testing (используя моки) 3. Integration testing (API с бэкэндом) 4. Acceptance testing (API на прототипе) 5. Production integration (пофазно) 6. Regression testing (автоматизация)