27
Тестирование мобильных API: Behind The Scenes Павлов Андрей T-Systems CIS, Санкт-Петербург

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

  • Upload
    sqalab

  • View
    15.135

  • Download
    4

Embed Size (px)

Citation preview

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

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

Павлов АндрейT-Systems CIS, Санкт-Петербург

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

About me

• Ex-Developer

• В IT более 10 лет

• 4 из них в тестировании

• Senior QA @ T-Systems CIS

linkedin.com/in/qapavlov

[email protected]

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

Что такое API?

API (application programming interface) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.

NO WAY!

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

А если нормально?..Если программу рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать.

Высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

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

Пример структуры API

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

APIs everywhere

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

Зачем API вообще нужны?Давным-давно - Data Scraping.

Результатом было:• Неверное истолкование данных• Неудобный формат данных• Компании теряли клиентов, если приложение предоставляло

неправильную информацию

Тогда компании задумались о реализации получения доступа к данным на своей стороне.

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

Зачем API вообще нужны?API предоставляет компаниям:• Больше контроля над данными• Контроль над использованием данных:

o Для использования API необходима авторизацияo Разработчик приложения должен доказать, что это приложение

корректно работает на тестовых данных прежде, чем получит доступ к API

Так же API дают возможности:• Масштабирования разработки

o Возможность увеличивать объем данных приложения, без изменения самого приложения

• Преобразования конкурентов в партнеровo Возможность позволить конкурентам надстраивать что-то сверху

вашего продукта• Дополнительные полномочия для пользователей

o Возможность людям использовать продукт для вещей, для которых он не был разработан

• Открытие нового рынка

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

Использование APIAPI включает в себя:• Разделение данных и их представление• Точка входа (изначальный URL, http или https),• Навигация• Представление вида командной строки• Иерархия• Ресурсы• Структура• Конфиденциальные данные (private API)

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

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

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

С чего все начиналось

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

Что нужно учитывать при создании стратегии

• Архитектураo REST vs. SOAPo Stateless vs. Sessiono Media types vs. WSDL

• text/xml или application/vendor specifico Verbs (RESTful API) и другие специфичные вещиo Headers и кеширование запросов

• Toolso SoapUI, Fiddler, аддоны для браузера (Postman, etc.)

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

Внимательно!Особенно стоит уделить внимание особенностям протокола, например, Verbs в RESTful API, заголовкам и кешированию.

К примеру, в случае с кэшами, нужно быть готовым к таким вещам, как:

– Старые данные

– Не относящиеся к происходящему ошибки (закешированные ранее)

– Многослойное кэширование (приложение – API – сервер)

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

Основные риски при создании стратегии• Неясный процесс интеграции

• Огромное количество данных

• Невозможность тестирования end-to-end сценариев

• Неизвестная нагрузка

• Возможное неправильное понимание API

• Динамический скоуп

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

Стратегия тестирования мобильных APIЧто же должно быть в самой стратегии?

• Как можно раньше должен быть проведен тест на интеграцию с максимально полной инфраструктурой

• Тест на интеграцию c использованием кастомных фреймворков во время разработки и систеста

• Многократные фазы интеграции

• Тестирования прототипа на реальных устройствах (acceptance testing)

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

Нужно больше фреймворков

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

Какие фазы мы должны выделить в нашей стратегии?

1. Development (включая фреймворк для тестирования)

2. System testing (используя моки)

3. Integration testing (API с бэкэндом)

4. Acceptance testing (API на прототипе)

5. Production integration (пофазно)

6. Regression testing (автоматизация)

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

Использование моков

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

Личный опыт

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

Максимально полное тестирования

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

Главный Challenge мобильного тестирования: девайсы

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

Тестирование в реальной сети

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

Рекомендации

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

Используйте эмулятор устройств

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

Используйте краудтестинг

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

Автоматизируйте, по мере возможности