Плакат 2.

реклама
Плакат 1.
Кто я. Сколько лет в тестировании
Плакат 2.
Какие приложения тестировал. Рассказать про приложения
Что такое
•
Ручное тестирование . Большинство ошибок отлавливаются ручным тестированием.
Автоматизированное тестирование не в состоянии отловить многие креши.
•
Тестирование на реальных устройствах. Тестирование симуляторе должно проверяться в
самую последнюю очередь, когда нет устройств. Большинство ошибок
•
Тестирование взаимодействия с пользовательским интерфейсом
Плакат 3.
Классификация мобильных приложений со стороны тестирования
•
С точки зрения взаимодействия с сетью –
Есть приложения, которые не требуют доступа в сеть. Есть такие, которые необходим
постоянный доступ в сеть для потокового проигрывания музыки, взаимодействия с
социальными сетями. Интеграция с социальными сетями предполагает использование API
социальной сети и предполагает сетевые запросы.
•
С точки зрения использования аппаратных возможностей.
Приложения, которые не используют различные возможности устройства – фотокамеру,
акселерометр, датчик освещенности и приближения.
•
С точки зрения функционала
1. Бизнес приложения – важна логика и функционал, точность расчетов и
представления данных. К таким приложениям можно отнести различные
приложения по учету финансов, каталоги, справочники
2. Мультимедиа приложения – работа с контентом(аудио, видео, звук, работа с
камерой). Приложения по проигрыванию музыки, видео, работы с фото,
социальные сети.
3. Игры
Плакат 4
Типовые ошибки в iOS приложениях
•
Ошибки верстки и дизайна. Ошибки локализации.
Ошибки верстки – когда элементы накладываются друг на друга, сделаны не в
соответствии с дизайном и имеют артефакты.
Ошибки локализации – все что связано с переводом.
•
Ошибки взаимодействия с сетью и геолокацией. В сетевых приложениях гораздо больше
ошибок, чем в приложениях без использования сети.
•
Тупики в пользовательских интерфейсах. Когда пользователь заходит на какой либо экран
приложения, а что делать дальше не знает или интерфейс не позволяет ему это сделать.
•
Креши или аварийное завершение работы.
•
Функционал
Плакат 5
Локализация и ошибки верстки.
Это не самые критичные ошибки. Данные ошибки ухудшают восприятие пользователем
приложение, его понятность.
До выпуска приложения
1. Слова на разных языках имеют разную длину. Отсюда нужно продумывать заранее
размер полей. Кое-где нужны будут сокращения. Их нужно запрашивать у переводчиков
заранее. Самому сокращать – получить ошибки локализации.
Также нужно постараться учесть форматы дат. 24 часа или 12 часов.
Если приложение отображает время, то время может не влезть.
2. Книжная и альбомная ориентация. Ориентация также влияет на отображение текста.
После смены ориентации текст может не влезать.
3. Переносы в словах для разных языков. Также нужно договариваться с переводчиком.
Самому сделать перенос не получится. Пример – китайский язык.
4. Языки с ориентацией слева справа налево(иврит). Для них нужно по идее переделывать
дизайн. Нужно задуматься заранее будет ли у вас поддержка таких языков
Во время выпуска приложения
1. Добавление локализаций – снова можно столкнуться с размером полей, переносами,
ориентацией текста.
2. Выпуск новых устройств – разные разрешения устройств – снова может поехать верстка
3. Промоэкраны и описание. Нужно предусмотреть заранее перевод на несколько языков
описания и промоэкранов.
Сказать, что была такая ошибка, которую переоткрывали 10 раз и с октября по май.
Тестировать нужно не на эмуляторе, а на реальных устойствах
Плакат 6
Ошибки взаимодействия с сетью и геолокацией.
Нужно учитывать, что поддержку обработки сетевых ошибок нужно делать заранее. Также
нужно задуматься заранее о локализации
Существует различные типы взаимодействия с сетью
1.
2.
3.
4.
5.
6.
Выполнение команд – API
Получение данных для просмотра и проигрывания
Upload and Download
Взаимодействие с социальными сетями(внешний API).
Сетевые оповещения
Синхронизация
Для каждого из сетевых взаимодействий должна быть обработка ошибок
Для 1-4 взаимодействия – проверка отсутствия сети пропадания и появления связи.
Для 1,2,4 – повторный запрос. Т.е. грубо говоря нажимаем быстро посделовательно на кнопку, по
которой идет запрос или выполняется действие. Последовательно несколько сетевых запросов
могут вызвать несколько popup сообщений – которые могут отразиться на разных формах. По
нажатию на сообщение приложение может упасть(сообщение на не том экране)
Экран 7
Тупики в пользовательских интерфейсах
•
Блокирование интерфейса. На указанном примере – сначала было показано окно с
сообщением, а потом появился календарь. В результате на кнопку в сообщении нельзя
нажать, на кнопку готово также. Пользователю придется перезапускать приложение
•
Ошибки дизайна интерфейса
Экран 9
Классификация крешей
По степени повторяемости
–
Слабо повторяемые
–
Стабильные креши
–
Сложно повторяемые
Пример слабо повторяемого креша – приложение упало при нажатии на вкладку «Расчет»
Что раньше делали – сказать сложно.
Стабильные креши – креш повторяется. Достаточно часто встречающийся креш –
формирование письма, когда почта не настроена.
Сложно повторяемые креши
Алгоритм повторения
Нужно добиться состояния когда остался номер кредита в поле ввода после сброса
Переключатель запрос сохранения перед сбросом должен быть включен
Работать нужно только на первой форме.
1. Ввести сумму, срок, ставку и нажать сохранить
2. Удалить значение из поля срок и нажать сброс - да. Закрыть сообщения
3. Снова ввести параметры кредита и нажать сохранить.- закрыть сообщение
4. Нажать сброс - да - номер кредита останется введенным
Нажать на вкладку настройки - приложение упало.
Далее креш повторяется постоянно.
По негативному воздействию на пользователя и важности
–
Потеря данных, дублирование данных – пользователь разочарован и ушел к
конкуренту. Довольно часто это бывает в финансовых приложениях. Пользователь
теряет данные, накопленные за несколько лет. Ему уже незачем эта программа и
он может попробывать другую
–
Креш нажатии на элемент интерфейса – просто однажды упало. Пользователь
перезапустит программу.
–
Стабильный креш при нажатии на частоиспользуемый элемент интерфейса –
негативная реакция пользователя. Просто повторяется у всех и часть функционала
программы блокируется. Пользователь пришет отрицательный отзыв.
Экран 11
•
Главное его поймать и записать(видео). Недавно была программка Display Recorder
для записи видео. Записывает не все, но иногда очень помогает.
Стабильные креши и креши с потерей данных желательно повторять
•
Тестировать мультитач и последовательные нажатия. Очень много крешей возникает
когда тестируешь последовательное нажатие на один и тот же элемент с выполнением
сетевой операции. Пример – выполнение долгого запроса и навигация на другой экран.
Нажатие Ок в Popup. Далее приложение падает. Потому что уже уничтожается объект,
который обрабатывает нажатие.
Мультитач – нажатие на 2 элемента одновременно – приложение может упасть или
заблокироваться.
•
Стресс тестирование(нехватка ресурса) – не настоена почта, твиттер аккаунт, ограниченная
сеть, пустые данные в ответном запросе.
•
Анализировать креши из App Store. Тут нам поможет соответствующая вкладка в
айтюнсконнект. Нужно разбирать логи и просить разработчиков указывать место креша.
Далее нужно попытаться повторить.
•
TestFlight – как источник крешлогов. На этапе выпуска приложения – подключать
библиотеки с тестфлайт и анализировать креши из тестфлайта.
•
Автотестирование(утечки памяти и проверка на множестве данных). 3 года занимался
автотестов. Автотесты нужны для финансовых приложений(Unit Tests). Автотесты
пользовательского интерфейса – нужны для отлова крешей в зависимости от данных.
В приложении Флайтхиро был написан такой тест. Тест ходил по аэропортам и собирал
Но после 30 аэропортов тест падал. Разработчики так и не смогли исправить креш.
•
Многопользовательское тестирование перед выпуском продукта на разных устройствах и
версиях iOS. Нужно давать пользоваться продуктом наибольшему числу пользователей с
разными устройствами.
Экран 12. Ошибки функционала
•
Декларируемый и новый функционал – то что ждет пользователь. Если функционал
пропадает и начинает работать не правильно – отрицательный отзыв. Регрессионное
тестирование
•
Поддерживаемый функционал – то что пользователь воспринимает как должное – после
обновления все данные сохранились, покупки не слетели. Потеря данных – достаточно
частое явление при обновлении. Креши при запуске = достаточно часто после обновления.
Программу можно выкинуть
Экран 13
Ошибки везде!!!
•
Ошибки в дизайне интерфейса
•
Грамматические ошибки локализации интерфейса и скриншотов
•
Функциональные ошибки
•
Ошибки в сторонних библиотеках и сервисах.
Например API FB и Вконтакте не всегда работает корректно. Также на работу приложений.
Тестфлайт, статистика Flurry, сторонние сервисы, библиотеки для сканирования – падение
приложение при запуске.
•
Влияние сторонних приложений и самой iOS(см. видео)
Вместо фейсбука можно запустить что угодно.
•
Замыленный взгляд тестировщика. Нужно отдавать на тестирование нескольким людям
Скачать