Типовые ошибки в iOS приложениях Тачков Дмитрий OZON.RU В тестировании более 5 лет В тестировании мобильных приложений – 3 года. Платформы iOS, Android, Windows Phone 7-8 Контакты: [email protected], [email protected] Какие приложения я тестировал Ozon.ru FlightHero inTaxi ShopPoints Кредитный калькулятор Fidel.ru Мои адреса Тестирование iOS приложений это - … • Ручное тестирование • Тестирование на реальных устройствах • Тестирование взаимодействия с пользовательским интерфейсом и операционной системой Классификация мобильных приложений cо т.з. тестирования • С точки зрения взаимодействия с сетью • С точки зрения использования аппаратных возможностей. С точки зрения функционала Бизнес приложения Мультимедиа приложения Игры Типовые ошибки в iOS приложениях. • Ошибки верстки и дизайна. Ошибки локализации • Ошибки взаимодействия с сетью и геолокацией • Тупики в пользовательских интерфейсах и зависания • Креши или аварийное завершение работы • Ошибки функционала Локализация и ошибки верстки 1. 2. 3. 4. 1. 2. 3. Слова на разных языках имеют разную длину Книжная и альбомная ориентация Переносы в словах для разных языков Языки с ориентацией справа налево(иврит) Добавление локализаций Разные разрешения устройств Промоэкраны и описание Заранее договориться с переводчиком о сокращениях и прописать длину слов и сокращений Заранее делать дизайн под разные разрешения и языки Ошибки взаимодействия с сетью Типы сетевого взаимодействия 1.Выполнение команд – API 2.Получение данных для просмотра и проигрывания 3.Upload and Download 4.Взаимодействие с социальными сетями. 5.Сетевые оповещения 6.Синхронизация 7.Определение координат Тупики в пользовательских интерфейсах • Блокирование интерфейса в результате показа нескольких элементов одновременно. • Ошибки дизайна интерфейса Пример блокировок Классификация крешей По степени повторяемости – Слабо повторяемые – Стабильные креши – Трудно повторяемые По воздействию на пользователя и важности – Потеря данных – пользователь разочарован и ушел к конкуренту – Без последствий – негативная реакция пользователя – Ограничение части функционала в результате креша Пример трудно повторяемого креша Ввести сумму, срок, ставку и нажать сохранить Удалить значение из поля срок и нажать сброс - да. Закрыть сообщения Снова ввести параметры кредита и нажать сохранить- закрыть сообщение Нажать сброс – далее в нажать да - номер кредита останется введенным Нажать на вкладку настройки - приложение крешнуло Приложение крешится всегда при переходе на вкладку настройки Как предотвратить креши? • Главное его поймать и записать(видео). • Тестировать мультитач и последовательные нажатия • Стресс тестирование(нехватка ресурса) • Анализировать креши из App Store и TestFlight • Автотестирование(утечки памяти и проверка на множестве данных) • Многопользовательское тестирование перед выпуском продукта на разных устройствах и версиях iOS.(4, 5 и 6 версии отличаются) Ошибки функционала (регрессионное тестирование) • Декларируемый и новый функционал – то, что ожидает пользователь. • Поддерживаемый функционал – то что пользователь воспринимает как должное(обновление, синхронизация) Ошибки везде!!!!! • Ошибки в дизайне интерфейса • Грамматические ошибки локализации интерфейса и скриншотов • Функциональные ошибки • Ошибки в сторонних библиотеках. • Влияние сторонних приложений(см. видео) • Замыленный взгляд тестировщика. • Прислушиваться к пользователям