Меня зовут Андрей Рыжкин, я CTO AGIMA.
Сегодня я расскажу о том, как мы тестируем приложения на Android, а также поделюсь нашим чек-листом.
Чек-лист от команды AGIMA
В 2020 году количество приложений для Android вплотную приблизилось к трём миллионам (по данным Appbrain на 28 марта). И это число продолжает расти — каждый день появляются сотни новых программ для этой операционной системы. В том числе благодаря AGIMA. Мы создаем самые разные приложения для Android — простые и сложные, узкоспециализированные и «для всех». И можем немало рассказать о нюансах их разработки.
Конечно, главное в Android-приложении — его функционал. Недочеты вёрстки редко бросаются в глаза, но качество любого продукта — в мелочах. Поэтому мы всегда тщательно тестируем приложения перед запуском. А для того, чтобы тестирование занимало минимум времени и приносило максимум пользы, мы разработали специальный чек-лист, которым рады поделиться с вами!
Но сначала перечислим шесть наиболее распространенных проблем вёрстки, избежать которых поможет наш чек-лист.
1. Сдвиг элемента страницы
![tabl.png](https://www.agima.ru/img/тестирование%201.png)
При вёрстке страницы можно применить три вида выравнивания по вертикали (Align Top, Align Middle и Align Bottom) и три — по горизонтали (Align Left, Align Center, Align Right). Но если использовать их несогласованно, отдельные элементы страницы начинают «съезжать» со своих мест.
На рисунке слева всё хорошо, но стоит изменить разрешение — и заголовок сдвигается вправо.
2. Обрезка текста
![tabl.png](https://www.agima.ru/img/тестирование%202.png)
Проблема появляется, когда компоненты GUI пытаются сжать, чтобы «втиснуть» в маленький экран.
Слева всё в порядке, справа часть текста обрезана из-за изменения ориентации устройства.
3. Отсутствие элемента страницы
![tabl.png](https://www.agima.ru/img/тестирование%203.png)
При снижении разрешения экрана элементы увеличиваются в размере. И при неправильной вёрстке некоторые из них могут просто «исчезнуть».
4. Пересечение элементов
![tabl.png](https://www.agima.ru/img/тестирование%204.png)
Иногда, также при снижении разрешения или уменьшении размера экрана, компоненты GUI «наезжают» друг на друга. В итоге на странице воцаряется полный хаос.
5. Выход элементов за границы экрана
![tabl.png](https://www.agima.ru/img/тестирование%206.png)
Причина всё та же — при изменении разрешения элементы страницы увеличиваются, и экрана банально «не хватает» для их отображения. В итоге страница ужасно выглядит (и это в лучшем случае, в худшем ей становится просто невозможно пользоваться).
6. Артефакты адаптивного дизайна
![tabl.png](https://www.agima.ru/img/тестирование%207.png)
Согласно Material Design, размер любого элемента, с которым взаимодействует пользователь, будь то кнопка, чекбокс или радиобаттон, не должен составлять меньше 48 пикселей по любому измерению.
![tabl.png](https://www.agima.ru/img/тетсирование%208.png)
Гайдлайн не дает четких рекомендаций по размеру текста, однако по результатам исследования комфортным считается шрифт в 16 пикселей высотой, а приемлемым для чтения — 12-14 пикселей.
Перечисленные проблемы часто «наслаиваются» друг на друга — как известно, беда не приходит одна. И результаты таких сочетаний могут быть самыми непредсказуемыми. Но это — тема для отдельной статьи.
А теперь — обещанный чек-лист. Используйте его во время тестирования Android-приложения — и от вас не «ускользнет» ни одна ошибка!
Чек-лист
Установка:
- Установка из дистрибутива происходит без уведомлений об ошибках.
- Успешно выполняется установка из магазина приложений.
- Установка обновлений не вызывает ошибок.
- Отмена установки происходит корректно, с удалением всех следов приложения.
- Повторная установка после отмены возможна и выполняется успешно.
- При попытке установки на неподдерживаемое устройство/версию ОС появляется предупреждение о несовместимости, и установка корректно завершается.
Запуск и выход из приложения:
- Приложение запускается при клике по его иконке.
- Приложение запускается в режиме разделенного экрана.
- Приложение запускается при клике по уведомлению от него.
- Приложение запускается по ссылкам из других приложений.
- Приложение запускается по голосовой команде.
- Приложение запускается при автозагрузке.
- Приложение запускается при управлении жестами.
- Приложение запускается при открытии ассоциированных файлов.
- Приложение возобновляет работу после перевода в фоновый режим.
- Время запуска приложения не слишком велико.
- Возможен выход из приложения штатным способом.
- Возможен выход из приложения при нажатии на кнопку «домой» (приложение переходит в фоновый режим).
Удобство использования:
- Управление приложением интуитивно понятно.
- Навигация в приложении соответствует требованиям, предъявленным заказчиком.
- Приложение корректно обрабатывает смену ориентации экрана.
- Приложение корректно обрабатывает изменение масштаба отображения.
- Приложение корректно обрабатывает жесты multitouch.
- Вызов клавиатуры происходит корректно, клавиатура не скрывает элемент страницы, в который вводится текст.
- Элементы управления соответствуют выполняемым функции.
- Расход заряда батареи соответствует нагрузке, создаваемой приложением.
- Задержки переходов и/или открытия не критичны.
- Приложение соответствует требованиям удобства использования для платформы.
- Нет «вылетов» приложения и/или неожиданно возникающих всплывающих окон.
- (если заявлено в ТЗ) В приложении присутствует помощь для новых пользователей.
Вёрстка (на всех заявленных в ограничениях устройствах и разрешениях):
- Отсутствуют сдвиги элементов страницы (расположение элементов соответствует заявленному в макете).
- На страницах нет обрезки текста.
- На страницах присутствуют все заявленные элементы.
- Элементы не пересекаются и не «наслаиваются» друг на друга.
- Ни один элемент не выходит за границы экрана.
- Отсутствуют артефакты адаптивного дизайна.
Обновления:
- Обновления устанавливаются корректно.
- При запуске происходит проверка обновлений, и пользователю выдается информация об ограничениях текущей версии.
- Появляются уведомления при нескольких пропущенных обновлениях.
- Появляются уведомления при пропущенных критических обновлениях, препятствующих эксплуатации приложения.
- Приложение работает после обновления ОС.
- Приложение работает после прерванной или отмененной установки обновления.
Прерывания:
- Прерывание работы приложения телефонным звонком обрабатывается корректно.
- Прерывание работы приложения получением СМС обрабатывается корректно.
- Прерывание работы приложения сменой ориентации экрана обрабатывается корректно.
- Прерывание работы приложения блокировкой/разблокировкой экрана обрабатывается корректно.
- Прерывание работы приложения системными уведомлениями обрабатывается корректно.
- Прерывание работы приложения разрывом соединения с интернетом обрабатывается корректно.
- Возможна работа приложения при слабом/нестабильном соединении (в зависимости от требований).
- Возможна работа приложения в режиме энергосбережения.
- При смене сети работа приложения не прерывается.
- Работа приложения не зависит от процессов передачи данных в фоновом режиме.
Безопасность:
- В магазине приложений нет алертов на безопасность приложения.
- При запуске приложения на устройстве не возникает коллизий (при использовании наиболее популярных антивирусных систем).
- При установке и использовании приложение запрашивает и может использовать нужные разрешения.
- Приложение корректно работает с пользовательской сессией (согласно требованиям).
Статья написана с ex-head QA AGIMA Рамилем Усмановым.