Всем привет,
Меня зовут Андрей Рыжкин, я CTO AGIMA.
Сегодня я расскажу о том, как мы тестируем приложения на Android, а также поделюсь нашим чек-листом.
Чек-лист от команды AGIMA
![](https://habrastorage.org/webt/3w/nn/nl/3wnnnlepixua172usu095c3n1bc.png)
В 2020 году количество приложений для Android вплотную приблизилось к трём миллионам (по данным Appbrain на 28 марта). И это число продолжает расти – каждый день появляются сотни новых программ для этой операционной системы. В том числе благодаря AGIMA. Мы создаем самые разные приложения для Android – простые и сложные, узкоспециализированные и «для всех». И можем немало рассказать о нюансах их разработки.
Конечно, главное в Android-приложении – его функционал. Недочеты вёрстки редко бросаются в глаза, но качество любого продукта – в мелочах. Поэтому мы всегда тщательно тестируем приложения перед запуском. А для того, чтобы тестирование занимало минимум времени и приносило максимум пользы, мы разработали специальный чек-лист, которым рады поделиться с вами!
Но сначала перечислим шесть наиболее распространенных проблем вёрстки, избежать которых поможет наш чек-лист.
1. Сдвиг элемента страницы
![](https://habrastorage.org/webt/ru/yd/oo/ruydoohrito8m8nd8lhmg67oaik.png)
При вёрстке страницы можно применить три вида выравнивания по вертикали (Align Top, Align Middle и Align Bottom) и три – по горизонтали (Align Left, Align Center, Align Right). Но если использовать их несогласованно, отдельные элементы страницы начинают «съезжать» со своих мест.
На рисунке слева всё хорошо, но стоит изменить разрешение – и заголовок сдвигается вправо.
2. Обрезка текста
![](https://habrastorage.org/webt/k3/vo/rw/k3vorwz_40jsuu4ltstsv4ffbny.png)
Проблема появляется, когда компоненты GUI пытаются сжать, чтобы «втиснуть» в маленький экран.
Слева всё в порядке, справа часть текста обрезана из-за изменения ориентации устройства.
3. Отсутствие элемента страницы
![](https://habrastorage.org/webt/oa/jn/c4/oajnc4zxsnmf0fkpx9w2ryfy7r8.png)
При снижении разрешения экрана элементы увеличиваются в размере. И при неправильной вёрстке некоторые из них могут просто «исчезнуть».
4. Пересечение элементов
![](https://habrastorage.org/webt/4o/ph/3c/4oph3causzojdd6hujhimctcnb0.png)
Иногда, также при снижении разрешения или уменьшении размера экрана, компоненты GUI «наезжают» друг на друга. В итоге на странице воцаряется полный хаос.
5. Выход элементов за границы экрана
![](https://habrastorage.org/webt/uo/4l/vp/uo4lvp2ds2-6tvjw6yl0zkufnis.png)
Причина всё та же – при изменении разрешения элементы страницы увеличиваются, и экрана банально «не хватает» для их отображения. В итоге страница ужасно выглядит (и это в лучшем случае, в худшем ей становится просто невозможно пользоваться).
6. Артефакты адаптивного дизайна
![](https://habrastorage.org/webt/9_/zd/at/9_zdatlbrmul-cafvekplz0t-lu.png)
При увеличении разрешения экрана может возникнуть «обратная» ситуация – компоненты GUI и текстовые символы могут уменьшиться до абсолютно нечитабельных размеров.
Согласно Material Design, размер любого элемента, с которым взаимодействует пользователь, будь то кнопка, чекбокс или радиобаттон, не должен составлять меньше 48 пикселей по любому измерению.
![](https://habrastorage.org/webt/nh/qq/4i/nhqq4iqczi7cdyjocbrlvbycpeo.png)
Гайдлайн не дает четких рекомендаций по размеру текста, однако по результатам исследования комфортным считается шрифт в 16 пикселей высотой, а приемлемым для чтения – 12-14 пикселей.
Перечисленные проблемы часто «наслаиваются» друг на друга – как известно, беда не приходит одна. И результаты таких сочетаний могут быть самыми непредсказуемыми. Но это – тема для отдельной статьи.
А теперь – обещанный чек-лист. Используйте его во время тестирования Android-приложения – и от вас не «ускользнет» ни одна ошибка!
Чек-лист
Установка:
- Установка из дистрибутива происходит без уведомлений об ошибках.
- Успешно выполняется установка из магазина приложений.
- Установка обновлений не вызывает ошибок.
- Отмена установки происходит корректно, с удалением всех следов приложения.
- Повторная установка после отмены возможна и выполняется успешно.
- При попытке установки на неподдерживаемое устройство/версию ОС появляется предупреждение о несовместимости, и установка корректно завершается.
Запуск и выход из приложения:
- Приложение запускается при клике по его иконке.
- Приложение запускается в режиме разделенного экрана.
- Приложение запускается при клике по уведомлению от него.
- Приложение запускается по ссылкам из других приложений.
- Приложение запускается по голосовой команде.
- Приложение запускается при автозагрузке.
- Приложение запускается при управлении жестами.
- Приложение запускается при открытии ассоциированных файлов.
- Приложение возобновляет работу после перевода в фоновый режим.
- Время запуска приложения не слишком велико.
- Возможен выход из приложения штатным способом.
- Возможен выход из приложения при нажатии на кнопку «домой» (приложение переходит в фоновый режим).
Удобство использования:
- Управление приложением интуитивно понятно.
- Навигация в приложении соответствует требованиям, предъявленным заказчиком
- Приложение корректно обрабатывает смену ориентации экрана.
- Приложение корректно обрабатывает изменение масштаба отображения.
- Приложение корректно обрабатывает жесты multitouch.
- Вызов клавиатуры происходит корректно, клавиатура не скрывает элемент страницы, в который вводится текст.
- Элементы управления соответствуют выполняемым функции.
- Расход заряда батареи соответствует нагрузке, создаваемой приложением.
- Задержки переходов и/или открытия не критичны.
- Приложение соответствует требованиям удобства использования для платформы
- Нет «вылетов» приложения и/или неожиданно возникающих всплывающих окон.
- (если заявлено в ТЗ) В приложении присутствует помощь для новых пользователей
Вёрстка (на всех заявленных в ограничениях устройствах и разрешениях):
- Отсутствуют сдвиги элементов страницы (расположение элементов соответствует заявленному в макете).
- На страницах нет обрезки текста.
- На страницах присутствуют все заявленные элементы.
- Элементы не пересекаются и не «наслаиваются» друг на друга.
- Ни один элемент не выходит за границы экрана.
- Отсутствуют артефакты адаптивного дизайна.
Обновления:
- Обновления устанавливаются корректно.
- При запуске происходит проверка обновлений, и пользователю выдается информация об ограничениях текущей версии.
- Появляются уведомления при нескольких пропущенных обновлениях.
- Появляются уведомления при пропущенных критических обновлениях, препятствующих эксплуатации приложения.
- Приложение работает после обновления ОС.
- Приложение работает после прерванной или отмененной установки обновления.
Прерывания:
- Прерывание работы приложения телефонным звонком обрабатывается корректно.
- Прерывание работы приложения получением СМС обрабатывается корректно.
- Прерывание работы приложения сменой ориентации экрана обрабатывается корректно
- Прерывание работы приложения блокировкой/разблокировкой экрана обрабатывается корректно.
- Прерывание работы приложения системными уведомлениями обрабатывается корректно.
- Прерывание работы приложения разрывом соединения с интернетом обрабатывается корректно.
- Возможна работа приложения при слабом/нестабильном соединении (в зависимости от требований).
- Возможна работа приложения в режиме энергосбережения.
- При смене сети работа приложения не прерывается.
- Работа приложения не зависит от процессов передачи данных в фоновом режиме.
Безопасность:
- В магазине приложений нет алертов на безопасность приложения.
- При запуске приложения на устройстве не возникает коллизий (при использовании наиболее популярных антивирусных систем).
- При установке и использовании приложение запрашивает и может использовать нужные разрешения.
- Приложение корректно работает с пользовательской сессией (согласно требованиям.
И напоследок важный вопрос для всех читателей. Какие пункты вы добавили бы к нашему чек-листу? Будем рады вашим идеям!
Статья написана с ex-head QA AGIMA Рамилем Усмановым.