Тестирование iOS и Android приложений

Практическое руководство
Кто о чем
Никифоров Олег
в компании
Android apps
iOS apps
UX/UI Design

http://stanfy.com

• Особенности
тестирования
мобильных
приложений
• Подготовка к процессу
тестирования
• Виды тестирования в
мобайл
• База для тестирования
• Полезные тулзы
Особенности тестирования
мобильных приложений
•
•
•
•
•
•
•
•
•

Форм факторы
Управление жестами
Разные типы соединения
Взаимодействие с соц. сетями
Достижения (achievements)
Уведомления (push notifications)
Работа с медиа
Привязка к локальным настройкам
Упор на визуальную составляющую
Форм факторы
Smartphone:
• Landscape
• Portrait
Tablet:
• 10 inch
• 7 inch

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

•
•
•
•
•

Edge

Переключение между 3g и wifi
Вес запросов/ответов
Upload/download - пауза, прерывание
Tайм ауты
Потеря связи

WiFi
Взаимодействие с соц. сетями
• Авторизация через соц сети
• Шаринг
• Постинг сообщений: картинки,
ссылки
• Комментарии
• Login/logout апп/браузер/настройки
девайса (iOS)
Achievements
• Привязанные к времени (пользовался 2 недели)
• Привязанные к действиям - как срабатывают
• Шаринг ачивок
Push notifications
• Получение
• Открытие соответствующей страницы
• Обработка ошибок (например объекта на который
ссылается уведомление больше не существует, пустое
уведомление, etc.)
Работа с медиа
Работа с медиа (фото, видео, звук) и
внешней периферией:
• Использование фото из
библиотеки/камеры использование
панорам
• Работа с микрофоном (в том числе
внешней гарнитурой)

• Воспроизведение аудио/видео
(пауза, обработка
входящих/исходящих
звонков, сообщений).
Привязка к локальным настройкам
• Привязка к времени/локализации/региону:
• Язык приложения в зависимости от настроек
девайса
• Время с привязкой к часовому поясу
• Язык получаемого контента в зависимости от
настроек девайса
• Формат даты/времени в зависимости от
региональных настроек
• Меры веса/объема/температуры в зависимости от
региональных настроек
Упор на визуальную составляющую
•
•
•
•
•

Размеры кнопок в зависимости от локали
Шрифты
Размытые картинки
Ресурсы соответствующие разрешению экрана
Анимации
Начало процесса

• Работа с
требованиями, прототипами, первоначальным
дизайном (mock-ups) - основной смысл - понять

flow приложения
• Ознакомление с API документацией
• Написание API тестов
• Создание mind maps по приложению
Типы тестирования
• Manual
• Automated ui:
o Calabash
o Frank
o Robotium
o UI Automation
o Appium
• Automated api:
o Soapui
o Loadui
База для тестирования
• Use cases которые относятся непосредственно к тестируемому
приложению 30% - 50%
• Specifications общие для системы - iOS/Android 10% - 20%
• Common cases - use cases которые общие для определенного
типа приложений, в том числе и для отдельных компонентов
приложения в определенной системе (списки, scrollview, alerts,
etc.) 5% - 15%
• Testing patterns - граничные значения, выборки, etc 5% - 10%
• Чуйка ;) 20% - ∞
iOS testing mind map
Android
• Проверять на разных девайсах:
o разный размер экранов > отображение контента
o разная плотность экранов (pixel density) > отображение графических
элементов (внешний вид иконок, кнопок, текста, etc.)
• Проверять на разных прошивках:
o Проигрывание медиа файлов;
o Action bar;
o Кастомные анимации;
o Web view.

• Проверка на работу приложения во время звонка:
o Если в приложении есть сервисы, которые работают в фоне со звуком
(воспроизведение музыки в фоне) > надо проверять, как приложение
себя ведет при поступлении звонка на девайс;
o Если в приложении нет сервисов, которые работают в фоне со звуком >
можно ограничиться проверкой перевода аппа в background.
Тулзы которые помогают при тестировании
мобильных приложений
• IDE:
o Eclipse + DDMS + Sim
o Xcode + Organizer + Sim
• Visual:
o Reflector
o Jing
o DDMS - capture android
device
• Network:
o Sniffers/proxy (Burp, tcp
catcher, charles, etc.)
o Network Link Conditioner

• Location:
o iOS Sim
o Fake Location (Android)
o Eclipse

• Other:
o iPhone Configuration Utility
- manage certs
o XMind
o Crashlytics
IDE
• Android:
o Eclipse https://www.eclipse.org
o DDMS
http://developer.android.com/tools/debugging/ddms.html
o Simulator
• iOS:
o Xcode
https://developer.apple.com/xcode/
o AppCode
http://www.jetbrains.com/objc/
o Simulator
Visual

•
•
•
•

Reflector http://www.airsquirrels.com/reflector/
Jing http://www.techsmith.com/jing.html
DDMS - capture android device
Droid-at-Screen
http://droid-at-screen.ribomation.com/
Network

• Sniffers/proxy:
o Burp Suite http://portswigger.net/burp/
o Tcp Catcher http://www.tcpcatcher.org/download.php
o Charles proxy http://www.charlesproxy.com/
• Network Link Conditioner
Location
• iOS Sim
• Fake GPS location (Android)
https://play.google.com/store/app
s/details?id=com.lexa.fakegps&hl=
en

• Eclipse
Other
• iPhone Configuration Utility
http://support.apple.com/downloads/#iphone configuration utility

• XMind http://www.xmind.net
• Crashlytics http://try.crashlytics.com
Tips and Tricks
• Апдейт приложения - сохранять данные
(мигрирование БД)
• Пользовательские данные и iCloud
• Crashlytics и смена бандла
• Crashlytics и дебаг
• Crashlytics и Hockeyapp
• Флури
• NSLog и время на обработку крэша
• Пересоздание активности в android при смене
ориентации
• Кэширование
• Auth token
• Обработка серверных ошибок
• Server error vs. no connection
navisnobilite
nikiphor@hotmail.com

Introduction to Mobile applications testing

  • 1.
    Тестирование iOS иAndroid приложений Практическое руководство
  • 2.
    Кто о чем НикифоровОлег в компании Android apps iOS apps UX/UI Design http://stanfy.com • Особенности тестирования мобильных приложений • Подготовка к процессу тестирования • Виды тестирования в мобайл • База для тестирования • Полезные тулзы
  • 3.
    Особенности тестирования мобильных приложений • • • • • • • • • Формфакторы Управление жестами Разные типы соединения Взаимодействие с соц. сетями Достижения (achievements) Уведомления (push notifications) Работа с медиа Привязка к локальным настройкам Упор на визуальную составляющую
  • 4.
    Форм факторы Smartphone: • Landscape •Portrait Tablet: • 10 inch • 7 inch Разный интерфейс, размер элементов, удобство их расположения
  • 5.
    Жесты • Стандартные действияк которым привыкли пользователи • Кастомные действия на стандартные жесты • Кастомные жесты • Несколько свайпов на одном экране
  • 6.
    Разные типы соединения 3G • • • • • Edge Переключениемежду 3g и wifi Вес запросов/ответов Upload/download - пауза, прерывание Tайм ауты Потеря связи WiFi
  • 7.
    Взаимодействие с соц.сетями • Авторизация через соц сети • Шаринг • Постинг сообщений: картинки, ссылки • Комментарии • Login/logout апп/браузер/настройки девайса (iOS)
  • 8.
    Achievements • Привязанные квремени (пользовался 2 недели) • Привязанные к действиям - как срабатывают • Шаринг ачивок
  • 9.
    Push notifications • Получение •Открытие соответствующей страницы • Обработка ошибок (например объекта на который ссылается уведомление больше не существует, пустое уведомление, etc.)
  • 10.
    Работа с медиа Работас медиа (фото, видео, звук) и внешней периферией: • Использование фото из библиотеки/камеры использование панорам • Работа с микрофоном (в том числе внешней гарнитурой) • Воспроизведение аудио/видео (пауза, обработка входящих/исходящих звонков, сообщений).
  • 11.
    Привязка к локальнымнастройкам • Привязка к времени/локализации/региону: • Язык приложения в зависимости от настроек девайса • Время с привязкой к часовому поясу • Язык получаемого контента в зависимости от настроек девайса • Формат даты/времени в зависимости от региональных настроек • Меры веса/объема/температуры в зависимости от региональных настроек
  • 12.
    Упор на визуальнуюсоставляющую • • • • • Размеры кнопок в зависимости от локали Шрифты Размытые картинки Ресурсы соответствующие разрешению экрана Анимации
  • 13.
    Начало процесса • Работас требованиями, прототипами, первоначальным дизайном (mock-ups) - основной смысл - понять flow приложения • Ознакомление с API документацией • Написание API тестов • Создание mind maps по приложению
  • 14.
    Типы тестирования • Manual •Automated ui: o Calabash o Frank o Robotium o UI Automation o Appium • Automated api: o Soapui o Loadui
  • 15.
    База для тестирования •Use cases которые относятся непосредственно к тестируемому приложению 30% - 50% • Specifications общие для системы - iOS/Android 10% - 20% • Common cases - use cases которые общие для определенного типа приложений, в том числе и для отдельных компонентов приложения в определенной системе (списки, scrollview, alerts, etc.) 5% - 15% • Testing patterns - граничные значения, выборки, etc 5% - 10% • Чуйка ;) 20% - ∞
  • 16.
  • 17.
    Android • Проверять наразных девайсах: o разный размер экранов > отображение контента o разная плотность экранов (pixel density) > отображение графических элементов (внешний вид иконок, кнопок, текста, etc.) • Проверять на разных прошивках: o Проигрывание медиа файлов; o Action bar; o Кастомные анимации; o Web view. • Проверка на работу приложения во время звонка: o Если в приложении есть сервисы, которые работают в фоне со звуком (воспроизведение музыки в фоне) > надо проверять, как приложение себя ведет при поступлении звонка на девайс; o Если в приложении нет сервисов, которые работают в фоне со звуком > можно ограничиться проверкой перевода аппа в background.
  • 18.
    Тулзы которые помогаютпри тестировании мобильных приложений • IDE: o Eclipse + DDMS + Sim o Xcode + Organizer + Sim • Visual: o Reflector o Jing o DDMS - capture android device • Network: o Sniffers/proxy (Burp, tcp catcher, charles, etc.) o Network Link Conditioner • Location: o iOS Sim o Fake Location (Android) o Eclipse • Other: o iPhone Configuration Utility - manage certs o XMind o Crashlytics
  • 19.
    IDE • Android: o Eclipsehttps://www.eclipse.org o DDMS http://developer.android.com/tools/debugging/ddms.html o Simulator • iOS: o Xcode https://developer.apple.com/xcode/ o AppCode http://www.jetbrains.com/objc/ o Simulator
  • 20.
  • 21.
    Network • Sniffers/proxy: o BurpSuite http://portswigger.net/burp/ o Tcp Catcher http://www.tcpcatcher.org/download.php o Charles proxy http://www.charlesproxy.com/ • Network Link Conditioner
  • 22.
    Location • iOS Sim •Fake GPS location (Android) https://play.google.com/store/app s/details?id=com.lexa.fakegps&hl= en • Eclipse
  • 23.
    Other • iPhone ConfigurationUtility http://support.apple.com/downloads/#iphone configuration utility • XMind http://www.xmind.net • Crashlytics http://try.crashlytics.com
  • 26.
    Tips and Tricks •Апдейт приложения - сохранять данные (мигрирование БД) • Пользовательские данные и iCloud • Crashlytics и смена бандла • Crashlytics и дебаг • Crashlytics и Hockeyapp • Флури • NSLog и время на обработку крэша • Пересоздание активности в android при смене ориентации • Кэширование • Auth token • Обработка серверных ошибок • Server error vs. no connection
  • 27.