5. AppStore
Рынок по девайсам (iPad и iPhone)
Рынок по категориям (игры, музыка, видео,
утилиты и т.п.)
Рынок по аудитории (страны)
6. Виды приложений
iOS apps
Web content
Web apps
Optimized webpages
Compatible webpages
Hybrid apps
7. Стадии процесса разработки iOS
Apps
В AppStore
До • In Sale
AppStore..
Релиз=Заливк • Waiting for Review (5-
14 дней)
ав • In Review (от 30
iTunesConnect минут до недель)
• Metadata Rejected
Разработка •Бинарники • Rejected
•Описание версии -
нам метаданные (What’s
• Approved
привычная New, какие языки и • Waiting for Developer
версии Release
•Анализ
поддерживаются,
•Дизайн какая категория и
Заключение •Кодирование т.п.)
договора с Apple: •Тестирование •Иконки приложения
•… и скриншоты (для
•Регистрация iPad, iPhone)
компании-паблишера
•..
•Заключение договора
•Получение лицензии
на разработку
8. Особенности тестирования мобильных приложений (iOS)
WEB Desktop Mobile (iOS)
Функциональное +Жесты
Для аудио и видео: lock screen, работа в background, управление из
панели мультизадачности
Интерфейса/UI Альбомный и портретный режимы
Retina и не retina display
Внешние сообщения (алерты)
Удобства использования/Usability Element Usage Guideline + Жесты
Локализационное Есть такие же настройки по языку, региону.
Очень важен размер текста и место под него
Производительности
Нагрузочное 10000 объектов на экран? (по юзабилити вообще не желательно, но если
надо по требованиям, то тестируем)
Важно то, что мы не сервер здесь тестируем, а функции клиентского
приложения
Стресс Пропал интернет
Позвонили
Села батарейка
Залочили девайс/ Ушли в другое приложение и т.п.
Стабильности Тестируем на самом не производительном девайсе
Следим за памятью /Simulate Memory Warning
Security Privacy settings
Passwords storage
Если есть пароль, то как приходим в приложение (жесты
мультизадачности/Notification center/панель мультизидачн.)
Совместимости По версиям iOS
По девайсам
С внешними устройствами и их версиями
Инталяции и обновления 1:1 1:n Инсталяция на разных ОС и девайсах
(Installation/Update) + сам процесс установки Обновление: 1 новая версия на n старых
(функц/ui,local etc) Процесса установки с множеством настроек нет.
Тестирование документации
Platform Features
Тестирование покупок (In-App n/a n/a Нет реальных платежей
Purchase)
Тестирование целостности данных n/a n/a Два варианта использования iCloud: для синхронизации и для
(iCloud storage) создания бэкапа данных
Взаимодействие с AirPlay Rcvr/Tv- n/a n/a
Out/Bluetooth и т.д.
9. Стресс тесты – это матрица:
«Возможное неожиданное событие» x «Совершаемое
действие пользователя в приложении»
10. Совместимость по девайсам
Retina vs не-Retina?
2048 х 1536 vs 1024 х 768
iPad vs iPhone?
iPod vs iPhone?
iPad 2 vs iPad 3?
Экран и процессор
iPad 3 vs iPad 4?
Процессор, камера, связь (LTE)
iPad Mini?
Процессор и экран из iPad 2
Камера и связь из iPad 4
iPhone 3gs vs iPhone 4/4s?
Совсем разные..
Эмулятор vs устройство?
Устройство и только!
12. Чему нужно уделять внимание при
переходе приложения на 4.x -> 5.x -> 6.x
версию iOS?
iOS 4.3 to iOS 5.0 API Differences
iOS 5.1 to iOS 6.0 API Differences
iOS Release Notes
Вывод: уточняйте у программистов.
13. Какие девайсы выбрать?*
DeviceOS 4.3.3 5.1.1 6.x
iPad 1
iPad 2
iPad 3 или iPad 4
iPad mini
iPhone 3gs
iPhone 4 или 4s
iPhone 5 или iPod5
iPod 4
must have
желательно
*При условии, что вам не критичны специфические характеристики девайса (процессор, тип
сети, …)
** Из iPod 4 и iPod 3 в нашем варианте был выбран iPod 4 специально, т.к. процент наших
пользователей с iPod 4 намного больше iPod 3.
14. Какие девайсы выбрать?
Сравнивать характеристики можно прямо на
сайте Apple:
Сравнение iPhones
Сравнение iPads
Сравнение iPods
Но мне нравится wiki:
Список iOS девайсов и их сравнительная
характеристика
Можно прочитать ещё здесь мнение:
о том, какие девайсы выбрать для своего
"зоопарка"
15. Тестировать.. Как организовать
процесс?
Зависит от процесса разработки на проекте
Лично я не верю в нормальный Scrum на
проектах для AppStore при разработке своих
собственных продуктов
16. Тестировать.. Как установить билд?
Через программиста, но не вариант
Приложение iTunes, нужно только, чтобы
компьютер был авторизирован и *.ipa файл
i-FunBox
TestFlight либо подобный ему ресурс
(HockeyApp)
18. Альфа тестирование
Объем/что включать Как часто запускать? На каких девайсах?
Smoke Как и для остальных проектов, только Каждый билд/раз в неделю или Меняем девайс, язык, операционку при
помним, что функционал уже будет работать две/автоматизированно если у вас новом запуске (выбираем из
не только по нажатию на кнопочки, но и по CI.. В общем, по обстоятельствам на поддерживаемых)
жестам вашем проекте.
Соц. Сети!
New Features Вспоминаем все виды тестирования и если В зависимости от того как идет Основное тестирование на самой
уместно, то проверяем именно их. Особенно процесс на проекте последней операционке
важно учесть особенности OS или типа
девайса
Regression Testing Как и для других типов проектов - Как всегда, за несколько дней до На тех, что могли быть задеты
анализируйте, что изменено и планируйте, релиза старайтесь выделить дни на изменениями
что регрессить. регресионное тестирование
Acceptance Функциональные, UI, стресс.. любые другие Один раз перед релизом/заливкой Уровень acceptance - на основном
тесты, которые важны именно вашему девайсе.
бизнесу. Их прогоняем на основном девайсе.
Не забываем включить взаимодействие с Уровень installation - желательно на
внешними устройствами, если есть. каждом из тех, что есть в наличии
In-app purchases! (минимум - пройти все
поддерживаемые ОС)
Важно иметь в наличии набор тестов
(installation), которые акцентированы на Update testing - на всех
особенностях ОС или девайса и можно быстро поддерживаемых ОС (минимум на
пройти, на каждом из самых важных самой приоритетной)
девайсов.
Инфраструктура - чаще всего
Update testing - проверка обновления версии достаточно одного девайса с любой ОС.
(здесь стоит обсудить с командой сколько Но может быть особенность проекта.
старых версий вы поддерживаете)
К этому всему добавляем проверку
инфраструктуры - ссылки на appstore,
социальные сети, логику попапов на ревью,
help/faq, flurry и др. библиотеки
19. Бета тестирование
Нельзя приложениям в AppStore давать имена
содержащие слова Beta, Trial и т.п.
Нужны бета-тестировщики – ищите тех, что с
iPhone/iPad/iPod, узнавайте UDID, добавляйте
его в провижн файл, заливайте билд на
TestFlight (либо аналог) и приглашайте
тестировать..
20. Тестирование.. Планирование
Подводные камни при тестировании приложений под iOS
Не~ или тяжелая воспроизводимость багов
Зависимость сроков от настроения пользователей и Apple ревьюверов
Competition
Время
Acceptance test последнего нашего релиза (один проект для iPhone и iPad) без
тестирования новых фич/регрессии занял ~8 часов. Это:
Acceptance level на основном девайсе (самом приоритетном)
Install level на всех поддерживаемых ОС и первоприоритетных девайсах (3 девайса)
Update testing на всех поддерживаемых ОС
Проверка инфраструктуры
Люди
0-1-4 человека в зависимости от ситуации и сроков
Метрики. У нас никаких особых правил:
Smoke по модулям. Зафейлился модуль – для него тестирование не продолжаем.
Acceptance начинаем, когда есть релиз кандидат, и в нём нет критических
ошибок
Есть критические ошибки – не релизимся
Можем залить раньше, чем завершили тесты, если риск ошибки небольшой, но
тестирование запланированное продолжаем
21. Тестовая документация. Сами как
думаете?
Быть ей или не быть?
Если быть, то тест кейсы или чеклисты?
Хранить ли результаты тестирования?
22. Тестовая документация
Быть ей или не быть?
Быть , иначе будет голова как на картинке
Если быть, то тест кейсы или чеклисты?
Чеклисты, если у вас клиенты не требуют тест-кейсов,
а ещё потому что:
Слишком много ресурсов на тест-кейсы будет потрачено, а
проекты слишком короткие
Слишком быстро всё может измениться
Всё равно все варианты не сможете описать, слишком их
много
Хранить ли результаты тестирования?
Если очень много проектов, то хранить хотя бы
частично (например, acceptance), иначе будет голова
как на картинке
23. Пример
Мы храним и обновляем чеклисты по уровням
(installation, smoke, acceptance)
Чеклисты для стресс тестирования
Чеклисты для тестирования накатов
(обновления версии)
Кое-какие функциональные тесты (от
специфики приложения)
24. Баги
Каких багов больше - UI или функционала?
Usability =)
Критерии определения критичности бага в мобильном приложении?
Вот точно как в книжках пишут
Какие основные причины падений приложений?
Некорректно реализованная логика
Социальные сети! Особенно facebook.
Не достаточно оперативной памяти
Нет интернета, если приложение с интернетом работает
Закончилось место на девайсе
Работа с внешними устройствами (AirPlay, TVOut, Bluetooth,…)
Позвонили..
Как описывать?
Как всегда – подробно.
Там, где был креш, – атачьте креш репорт, он хранится на девайсе (Settings > General > About
> Diagnostic & Usage > Data ). Чтобы его достать с девайса нужно через iTunes
синхронизироваться с компьютером и зайти в нужную папочку -
C:Users<USERNAME>AppDataRoamingApple
computerLogsCrashReporter/MobileDevice/<DEVICE_NAME>.
А еще можно делать вырезку из Debug Console
Там, где ошибка по UI – атачьте скриншот
Там, где ошибка по локализации (тексту) – атачьте скриншот
26. Инструменты
AICharger – заряжаем iPad от компьютера
Как сделать скриншот?
Как записать видео? - DispRecorder
Лог приложения (console)
Win XP – iPhone Configuration Utility
Mac OS – iPhone Confuguration Utlity, xCode
iPhone/iPad/iPod – куча программ по запросу в AppStore “console”. Например, Console ,
iConsole, Debug Assist, Log Police etc.)
App/File Manager для девайсов:
i-FunBox
iExplorer
iTunes, но в нём отображается только папка Documents.
Следим за памятью и запущенными процессами:
Sys Activity Manager (платный)
CPU на девайсе – тоже куча приложений в AppStore (ищем по “CPU”)
Как пример - iPhoneOptimizer
Есть лишь Win7 и только, спасает ли какая VMware? Другими
словами - Windows или Mac OS?
Ответьте сначала на вопрос - зачем вам Mac OS?
XCode
27. Автоматизация
UI Automation (Apple Tool)
Fone Monkey
Squish
Test Studio (прямо на девайсе)
http://habrahabr.ru/post/123026/
28. Как быть "в тренде"?
AppStore и отзывы пользователей (баг
репорты/предложения). Дайте пользователям
возможность сообщить об ошибке прямо из
вашего приложения.
Flurry.com – огромная машина по сбору
статистики конкретно по вашим приложениям
– языки, возраст, какие фичи используют,
сколько крешей, какая длительность сессии и
т.п.
Appannie.com – статистика по продвижению в
AppStore Вас и Ваших конкурентов.
30. Путь от падавана к гуру..
Как его пройти правильно, с мин. кол-вом
шишек (что и в какой последовательности
изучать, рекомендуемые источники и
материалы)
Хочу стать тестировщиком "мобилок", куда
пойти, куда податься? ;)
Люди, что тестируют у вас, каким был их путь?
31. Так с чего же начать?
Просто про iOS
Просмотреть стандартный приложение и начать использовать девайс, в особенности разобраться в
AppStore
Пока изучаем - следим за консолью
Выбрать любое приложение и изучить из “чего оно состоит” через iFunBox или iExplorer или аналог
Изучите настройки девайса и чем они отличаются переходя от ОС к ОС
UI Element Usage Guidelines – изучите как называть элементы, какие бывают жесты, ожидания
пользователя о том, как определенные контролы будут себя вести.
User Experience Guidelines
Чего-нибудь протестировать (функционально с учётом жестов, UI+Usability, составить матрицу по стресс
тестам и пройти их, проверить локализацию).
Словить креш, найти креш-репорт, записать баг.. Дальше всё пойдет по накатанной.
Только не забудьте изучить чем отличаются девайсы
Ну а потом уж как карты вашего проекта лягут:
iCloud
AirPlay
Bluetooth
TV-Out
Утечки памяти
Скорость работы приложения (время отклика на действия, нагрузка на процессор и т.п.)
Автоматизация
34. Руководствуясь UI Element Usage
Guideline:
• На iPhone в ActionSheet кнопка
Cancel должна быть всегда нижней.
• На iPad в ActionSheet кнопки Cancel
не должно быть.
38. Проблемы UI на iOS=4.3.3, которых
нет в iOS=6.0.1
Фон поста должен быть не
Прогресс должен отображаться чёрным, а белым. Кроме того в
«бегущей» серой строкой контроле нет текста поста.