Как писать тесты для андроид

Тестируем Android-приложение правильно

Меня зовут Андрей Рыжкин, я CTO AGIMA.

Сегодня я расскажу о том, как мы тестируем приложения на Android, а также поделюсь нашим чек-листом.

Чек-лист от команды AGIMA

В 2020 году количество приложений для Android вплотную приблизилось к трём миллионам (по данным Appbrain на 28 марта). И это число продолжает расти – каждый день появляются сотни новых программ для этой операционной системы. В том числе благодаря AGIMA. Мы создаем самые разные приложения для Android – простые и сложные, узкоспециализированные и «для всех». И можем немало рассказать о нюансах их разработки.

Конечно, главное в Android-приложении – его функционал. Недочеты вёрстки редко бросаются в глаза, но качество любого продукта – в мелочах. Поэтому мы всегда тщательно тестируем приложения перед запуском. А для того, чтобы тестирование занимало минимум времени и приносило максимум пользы, мы разработали специальный чек-лист, которым рады поделиться с вами!

Но сначала перечислим шесть наиболее распространенных проблем вёрстки, избежать которых поможет наш чек-лист.

1. Сдвиг элемента страницы

При вёрстке страницы можно применить три вида выравнивания по вертикали (Align Top, Align Middle и Align Bottom) и три – по горизонтали (Align Left, Align Center, Align Right). Но если использовать их несогласованно, отдельные элементы страницы начинают «съезжать» со своих мест.

На рисунке слева всё хорошо, но стоит изменить разрешение – и заголовок сдвигается вправо.

2. Обрезка текста

Проблема появляется, когда компоненты GUI пытаются сжать, чтобы «втиснуть» в маленький экран.

Слева всё в порядке, справа часть текста обрезана из-за изменения ориентации устройства.

3. Отсутствие элемента страницы

При снижении разрешения экрана элементы увеличиваются в размере. И при неправильной вёрстке некоторые из них могут просто «исчезнуть».

4. Пересечение элементов

Иногда, также при снижении разрешения или уменьшении размера экрана, компоненты GUI «наезжают» друг на друга. В итоге на странице воцаряется полный хаос.

5. Выход элементов за границы экрана

Причина всё та же – при изменении разрешения элементы страницы увеличиваются, и экрана банально «не хватает» для их отображения. В итоге страница ужасно выглядит (и это в лучшем случае, в худшем ей становится просто невозможно пользоваться).

6. Артефакты адаптивного дизайна

При увеличении разрешения экрана может возникнуть «обратная» ситуация – компоненты GUI и текстовые символы могут уменьшиться до абсолютно нечитабельных размеров.

Согласно Material Design, размер любого элемента, с которым взаимодействует пользователь, будь то кнопка, чекбокс или радиобаттон, не должен составлять меньше 48 пикселей по любому измерению.

Читайте также:  Android приставки с netflix

Гайдлайн не дает четких рекомендаций по размеру текста, однако по результатам исследования комфортным считается шрифт в 16 пикселей высотой, а приемлемым для чтения – 12-14 пикселей.

Перечисленные проблемы часто «наслаиваются» друг на друга – как известно, беда не приходит одна. И результаты таких сочетаний могут быть самыми непредсказуемыми. Но это – тема для отдельной статьи.

А теперь – обещанный чек-лист. Используйте его во время тестирования Android-приложения – и от вас не «ускользнет» ни одна ошибка!

Чек-лист

  • Установка из дистрибутива происходит без уведомлений об ошибках.

  • Успешно выполняется установка из магазина приложений.

  • Установка обновлений не вызывает ошибок.

  • Отмена установки происходит корректно, с удалением всех следов приложения.

  • Повторная установка после отмены возможна и выполняется успешно.

  • При попытке установки на неподдерживаемое устройство/версию ОС появляется предупреждение о несовместимости, и установка корректно завершается.

Запуск и выход из приложения:

  • Приложение запускается при клике по его иконке.

  • Приложение запускается в режиме разделенного экрана.

  • Приложение запускается при клике по уведомлению от него.

  • Приложение запускается по ссылкам из других приложений.

  • Приложение запускается по голосовой команде.

  • Приложение запускается при автозагрузке.

  • Приложение запускается при управлении жестами.

  • Приложение запускается при открытии ассоциированных файлов.

  • Приложение возобновляет работу после перевода в фоновый режим.

  • Время запуска приложения не слишком велико.

  • Возможен выход из приложения штатным способом.

  • Возможен выход из приложения при нажатии на кнопку «домой» (приложение переходит в фоновый режим).

  • Управление приложением интуитивно понятно.

  • Навигация в приложении соответствует требованиям, предъявленным заказчиком

  • Приложение корректно обрабатывает смену ориентации экрана.

  • Приложение корректно обрабатывает изменение масштаба отображения.

  • Приложение корректно обрабатывает жесты multitouch.

  • Вызов клавиатуры происходит корректно, клавиатура не скрывает элемент страницы, в который вводится текст.

  • Элементы управления соответствуют выполняемым функции.

  • Расход заряда батареи соответствует нагрузке, создаваемой приложением.

  • Задержки переходов и/или открытия не критичны.

  • Приложение соответствует требованиям удобства использования для платформы

  • Нет «вылетов» приложения и/или неожиданно возникающих всплывающих окон.

  • (если заявлено в ТЗ) В приложении присутствует помощь для новых пользователей

Вёрстка (на всех заявленных в ограничениях устройствах и разрешениях):

  • Отсутствуют сдвиги элементов страницы (расположение элементов соответствует заявленному в макете).

  • На страницах нет обрезки текста.

  • На страницах присутствуют все заявленные элементы.

  • Элементы не пересекаются и не «наслаиваются» друг на друга.

  • Ни один элемент не выходит за границы экрана.

  • Отсутствуют артефакты адаптивного дизайна.

  • Обновления устанавливаются корректно.

  • При запуске происходит проверка обновлений, и пользователю выдается информация об ограничениях текущей версии.

  • Появляются уведомления при нескольких пропущенных обновлениях.

  • Появляются уведомления при пропущенных критических обновлениях, препятствующих эксплуатации приложения.

  • Приложение работает после обновления ОС.

  • Приложение работает после прерванной или отмененной установки обновления.

  • Прерывание работы приложения телефонным звонком обрабатывается корректно.

  • Прерывание работы приложения получением СМС обрабатывается корректно.

  • Прерывание работы приложения сменой ориентации экрана обрабатывается корректно

  • Прерывание работы приложения блокировкой/разблокировкой экрана обрабатывается корректно.

  • Прерывание работы приложения системными уведомлениями обрабатывается корректно.
Читайте также:  Com samsung android app sd card extension

  • Прерывание работы приложения разрывом соединения с интернетом обрабатывается корректно.

  • Возможна работа приложения при слабом/нестабильном соединении (в зависимости от требований).

  • Возможна работа приложения в режиме энергосбережения.

  • При смене сети работа приложения не прерывается.

  • Работа приложения не зависит от процессов передачи данных в фоновом режиме.

  • В магазине приложений нет алертов на безопасность приложения.

  • При запуске приложения на устройстве не возникает коллизий (при использовании наиболее популярных антивирусных систем).

  • При установке и использовании приложение запрашивает и может использовать нужные разрешения.

  • Приложение корректно работает с пользовательской сессией (согласно требованиям.

И напоследок важный вопрос для всех читателей. Какие пункты вы добавили бы к нашему чек-листу? Будем рады вашим идеям!

Статья написана с ex-head QA AGIMA Рамилем Усмановым.

Источник

Чек-лист тестирования мобильных приложений

У многих начинающих специалистов в области тестирования возникает вопрос: «А как же протестировать мобильное приложение. С чего начать, какие проверки стоит осуществить?» Данный вопрос актуален, когда они приходят в компанию, где нет документации на проекте, либо это только что появившийся стартап. Чтобы ответить на эти вопросы была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого приложения.

В данный чек-лист вошли только общие характеристики. Естественно, в тестируемом приложении может быть функциональность, для которой нужно применять отдельный подход и создать отдельные сценарии. То же самое верно для производительности, удобства использования, безопасности и прочего тестирования, которое необходимо вашему приложению.

Чек-лист для тестирования мобильных приложений состоит из восьми разделов:

Функциональное тестирование

В данном пункте нам важно убедиться, что наш продукт соответствует нужной функциональной спецификации, упомянутой в документации по разработке.

Что проверяем?

1. Установка/удаление/накатка версий
2. Запуск приложения (отображение Splash Screen)
3. Работоспособность основного функционала приложения
3.1 Авторизация (по номеру телефона/через соц. сети/e-mail)
3.2 Регистрация (по номеру телефона/через соц. сети/e-mail)
3.3 Онбординг новых пользователей
3.4 Валидация обязательных полей
3.5 Навигация между разделами приложения
3.6 Редактирование данных в профиле пользователя
3.7 Проверка оплаты
3.8 Тестирование фильтров
3.9 Бонусы
4. Корректное отображение ошибок
5. Работа с файлами (отправка/получение/просмотр)
6. Тестирование тайм-аутов
7. Тестирование заглушек (не соединения с интернетом/нет, например, товаров и т.д)
8. Тестирование pop-up, алертов
9. Тестирование WebView
10. Скролл/свайп элементов
11. Тестирование PUSH уведомлений
12. Сворачивание/разворачивание приложения
13. Разные типы подключений (сотовая связь/Wi-Fi)
14. Ориентация экрана (альбомная/портретная)
15. Темная/светлая темы
16. Реклама в приложении
17. Шаринг контента в соц. сети
18. Работа приложения в фоне
19. Пагинация страниц
20. Политики конфиденциальности и прочие ссылки на документы

Тестирование совместимости

Тестирование совместимости используется, чтобы убедиться, что ваше приложение совместимо с другими версиями ОС, различными оболочками и сторонними сервисами, а также аппаратным обеспечением устройства.

Что проверяем?

1. Корректное отображение гео
2. Информации об операциях (чеки и т.д.)
3. Различные способы оплаты (Google Pay, Apple Pay)
4. Тестирование датчиков (освещенности, температуры устройства, гироскоп и т.д.)
5. Тестирование прерываний (входящий звонок/смс/push/будильник/режим «Не беспокоить» и т.д.)
6. Подключение внешних устройств (карта памяти/наушники и т.д.)

Читайте также:  Тысяча одно для андроида

Тестирование безопасности

Данная проверка нацелена на поиск недостатков и пробелов с точки зрения безопасности приложения.

Что проверяем?

1. Тестирование разрешений (доступ к камере/микрофону/галерее/и т.д.)
2. Данные пользователя (пароли) не передаются в открытом виде
3. В полях, с вводом пароля и подтверждением пароля, данные скрываются астерисками

Тестирование локализации и глобализации

Тестирование интернационализации/глобализации приложения включает тестирование приложения для различных местоположений, форматов дат, чисел и валют, а также замену фактических строк псевдостроками. Тестирование локализации включает тестирование приложения с локализованными строками, изображениями и рабочими процессами для определенного региона.

Что проверяем?

1. Все элементы в приложении переведены на соответствующий язык
2. Тексты зашиты внутри приложения и пользователь в настройках приложения может выставить необходимый язык
3. Тексты зависят от языка в системных настройках
4. Тексты приходят с сервера
5. Корректное отображение форматов дат (ГОД — МЕСЯЦ — ДЕНЬ или ДЕНЬ — МЕСЯЦ — ГОД.)
6. Корректное отображение времени в зависимости от часового пояса

Тестирование удобства использования

Тестирование удобства использования помогает удостовериться в простоте и эффективности использования продукта пользователем, с целью достижения поставленных целей. Иными словами, это не что иное, как тестирование дружелюбности приложения для пользователя.

Что проверяем?

1. Корректное отображение элементов на устройствах с различными разрешениями экранов
2. Все шрифты соответствуют требованиям
3. Все тексты правильно выровнены
4. Все сообщения об ошибках верные, без орфографических и грамматических ошибок
5. Корректные заголовки экранов
6. В поисковых строках присутствуют плейсхолдеры
7. Неактивные элементы отображаются серым
8. Ссылки на документы ведут на соответствующий раздел на сайте
9. Анимация между переходами
10. Корректный возврат на предыдущий экран
11. Поддерживаются основные жесты при работе с сенсорными экранами (swipe back и т.д.)
12. Пиксель-перфект

Стрессовое тестирование

Стрессовое тестирование направлено на определение эффективности производительности приложения в условиях повышенной нагрузки. Стресс-тест в этом контексте ориентирован только на мобильные устройства.

Что проверяем?

1. Высокая загрузка центрального процессора
2. Нехватка памяти
3. Загрузка батареи
4. Отказы
5. Низкая пропускная способность сети
6. Большое количество взаимодействий пользователя с приложением (для этого может понадобиться имитация реальных условий состояния сети)

Кросс-платформенное тестирование

Важный вид тестирования, который необходимо проводить для понимания того, будет ли должным образом отображаться тестируемый продукт на различных платформах, используемых целевой аудиторией.

Что проверяем?

— Работоспособность приложения на различных устройствах разных производителей

Тестирование производительности

Если пользователь устанавливает приложение, и оно не отображается достаточно быстро (например, в течение трех секунд), оно может быть удалено в пользу другого приложения. Аспекты потребления времени и ресурсов являются важными факторами успеха для приложения, и для измерения этих аспектов проводится тестирование производительности.

Что проверяем?

1. Время загрузки приложения
2. Обработка запросов
3. Кэширование данных
4. Потребление ресурсов приложением (например расход заряда батареи)

Источник

Оцените статью